forked from maxifaxipaxi-new/tasksmanager
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
71 lines (56 loc) · 2.42 KB
/
script.js
File metadata and controls
71 lines (56 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function openDevIntern() {
window.open("dev", "_blank");
}
async function fetchTasks() {
let response = await fetch('tasks.php?action=get');
let tasks = await response.json();
let taskList = document.getElementById("taskList");
taskList.innerHTML = "";
tasks.sort((a, b) => {
const order = { "in_arbeit": 1, "gemeldet": 2, "erledigt": 3 };
return order[a.status] - order[b.status];
});
tasks.forEach(task => {
let taskDiv = document.createElement("div");
taskDiv.classList.add("task", task.category);
if (task.status === "in_arbeit") taskDiv.classList.add("in_arbeit");
if (task.status === "erledigt") taskDiv.classList.add("done");
taskDiv.innerHTML = `<strong>${task.title}</strong><p>${task.description}</p>`;
let statusDiv = document.createElement("div");
statusDiv.classList.add("status");
if (task.status !== "erledigt") {
let toggleInProgressBtn = document.createElement("button");
toggleInProgressBtn.innerText = task.status === "in_arbeit" ? "Nicht in Arbeit" : "In Arbeit";
toggleInProgressBtn.onclick = async () => {
let newStatus = task.status === "in_arbeit" ? "gemeldet" : "in_arbeit";
await fetch(`tasks.php?action=update&id=${task.id}&status=${newStatus}`);
fetchTasks();
};
let doneBtn = document.createElement("button");
doneBtn.innerText = "Erledigt";
doneBtn.onclick = async () => {
await fetch(`tasks.php?action=update&id=${task.id}&status=erledigt`);
fetchTasks();
};
statusDiv.appendChild(toggleInProgressBtn);
statusDiv.appendChild(doneBtn);
}
taskDiv.appendChild(statusDiv);
taskList.appendChild(taskDiv);
});
}
async function addTask() {
let title = document.getElementById("taskTitle").value;
let description = document.getElementById("taskDescription").value;
let category = document.getElementById("taskCategory").value;
if (!title) return;
await fetch('tasks.php?action=add', {
method: "POST",
body: JSON.stringify({ title, description, category }),
headers: { "Content-Type": "application/json" }
});
document.getElementById("taskTitle").value = "";
document.getElementById("taskDescription").value = "";
fetchTasks();
}
fetchTasks();