-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproiect.js
106 lines (95 loc) · 3.38 KB
/
proiect.js
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const taskForm = document.getElementById("task-form");
const taskList = document.getElementById("task-list");
let tasks = [];
function renderTasks() {
taskList.innerHTML = "";
tasks.forEach((task, index) => {
const listItem = document.createElement("li");
listItem.classList.add("task-item");
if (task.completed) {
listItem.classList.add("completed");
}
listItem.innerHTML =
`<div class="date">${task.date}</div>
<div class="priority ${task.priority}"> ${task.priority} </div>
<div class="name">${task.name}</div>
<button class="complete-btn" data-index="${index}"> ${task.completed ? "Undo" : "Complete"} </button>
<button class="delete-btn" data-index="${index}"> Delete </button>`;
taskList.appendChild(listItem);
});
localStorage.setItem("tasks", JSON.stringify(tasks));
}
function sortTasksByPriority(tasks) {
return tasks.sort(function(a, b) {
var priorityA = a.priority;
var priorityB = b.priority;
if (priorityA === "low") {
priorityA = 3;
} else if (priorityA === "medium") {
priorityA = 2;
} else if (priorityA === "high") {
priorityA = 1;
}
if (priorityB === "low") {
priorityB = 3;
} else if (priorityB === "medium") {
priorityB = 2;
} else if (priorityB === "high") {
priorityB = 1;
}
return priorityA - priorityB;
});
}
function addTask(event) {
event.preventDefault();
const taskNameInput = document.getElementById("task-name");
const taskPriorityInput = document.getElementById("task-priority");
const taskName = taskNameInput.value;
const taskPriority = taskPriorityInput.value;
if (taskName.trim() === "") {
alert("Please enter a task name");
return;
}
const date = new Date();
const formattedDate = `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;
const newTask = {
name: taskName,
priority: taskPriority,
completed: false,
date: formattedDate
};
tasks.push(newTask);
taskNameInput.value = "";
taskPriorityInput.selectedIndex = 0;
tasks = sortTasksByPriority(tasks);
renderTasks();
}
function completeTask(event) {
const button = event.target;
const index = button.dataset.index;
tasks[index].completed = !tasks[index].completed;
renderTasks();
}
function deleteTask(event) {
const button = event.target;
const index = button.dataset.index;
tasks.splice(index, 1);
renderTasks();
setTimeout(() => { alert("Task deleted") } , 1000);
}
function init() {
const storedTasks = JSON.parse(localStorage.getItem("tasks"));
if (storedTasks) {
tasks = storedTasks;
renderTasks();
}
}
taskForm.addEventListener("submit", addTask);
taskList.addEventListener("click", event => {
if (event.target.classList.contains("complete-btn")) {
completeTask(event);
} else if (event.target.classList.contains("delete-btn")) {
deleteTask(event);
}
});
init();