projPara/script.js

71 lines
2.1 KiB
JavaScript

$(document).ready(function(){
const apiUrl = 'http://localhost:3000';
// funkcja która dodaje zadania do listy
const appendTaskToList = (task) => {
$("#todoList").append("<li data-id='" + task.id + "'>" + task.task + " <button class='rmBtn'>Remove task</button></li>");
};
// funkcja która zwraca błąd gdy nie można dodać zadania
const handleAjaxError = (message) => () => alert(message);
// pobieranie zdań
const fetchTasks = () => {
$.ajax({
url: `${apiUrl}/tasks`,
method: 'GET',
success: function(tasks) {
tasks.forEach(appendTaskToList);
},
error: handleAjaxError("Error fetching tasks")
});
};
// funkcja która dodaje zadanie
const addTask = (task) => {
if (task !== "") {
$.ajax({
url: `${apiUrl}/addTask`,
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({ task: task }),
success: function(response) {
appendTaskToList(response);
$("#todoInput").val("");
},
error: handleAjaxError("Error adding task")
});
} else {
alert("Enter task");
}
};
// funkcja która usuwa zadanie
const deleteTask = (taskId, listItem) => {
$.ajax({
url: `${apiUrl}/deleteTask/${taskId}`,
method: 'DELETE',
success: function(response) {
listItem.remove();
},
error: handleAjaxError("Error deleting task")
});
};
// pobieranie i wyświetlanie zadań
fetchTasks();
// dodawanie nowego zadania
$("#addBtn").click(function(){
const task = $("#todoInput").val();
addTask(task);
});
// usuwanie zadania
$(document).on("click", ".rmBtn", function(){
const listItem = $(this).parent();
const taskId = listItem.data('id');
deleteTask(taskId, listItem);
});
});