-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodolist.js
124 lines (100 loc) · 3.12 KB
/
todolist.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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
var listElement = document.querySelector('#app ul');
var inputElement = document.querySelector('#app input');
var buttonElement = document.querySelector('#app button');
window.onload = setInterval(clock,1000);
function clock()
{
var d = new Date();
var date = d.getDate();
var year = d.getFullYear();
var month = d.getMonth();
var monthArr = ["January", "February","March", "April", "May", "June", "July", "August", "September", "October", "November","December"];
month = monthArr[month];
document.getElementById("date").innerHTML= date+" "+month+", "+year;
}
var todos = JSON.parse(localStorage.getItem('list_todos')) || [];
function renderTodos() {
listElement.innerHTML = '';
for (todo of todos) {
var todoElement = document.createElement('li');
var todoText = document.createTextNode(todo);
var pos = todos.indexOf(todo);
var actions = document.createElement('div');
var deleteElement = document.createElement('i');
deleteElement.setAttribute("class","far fa-trash-alt delete");
deleteElement.setAttribute("aria-hidden","true");
deleteElement.setAttribute('onclick', 'deleteTodo('+ pos +')');
var editElement = document.createElement('i');
editElement.setAttribute("class", "far fa-edit")
editElement.setAttribute("aria-hidden","true");
editElement.setAttribute('onclick', 'editTodo('+ pos +')');
// linkElement.appendChild(deleteElement);
todoElement.appendChild(todoText);
todoElement.appendChild(actions);
actions.appendChild(editElement);
actions.appendChild(deleteElement);
listElement.appendChild(todoElement);
}
}
renderTodos();
var button = document.getElementById("button");
var todoText = document.getElementById("text");
var task = "new";
var posEdit = "";
button.addEventListener("click", function() {
if (task === "existent") {
replaceTodo()
} else if (todoText.value === "") {
swal("Please, enter the task description!");
} else {
addTodo();
}
});
function addTodo() {
var todoText = document.getElementById("text").value;
todos.push(todoText);
inputElement.value = '';
renderTodos()
saveToStorage();
}
function editTodo(pos) {
var todoText = document.getElementById("text");
todoText.value = todos[pos];
button.textContent = "Save";
task = "existent";
posEdit = pos;
}
function replaceTodo(){
var startIndex = posEdit;
var numberElements = 1;
todos.splice(startIndex, numberElements, todoText.value);
inputElement.value = '';
button.textContent = "+ Add new Task";
task = "new";
renderTodos()
saveToStorage();
}
function deleteTodo(pos) {
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this task!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
todos.splice(pos,1);
renderTodos();
saveToStorage();
swal("Your task has been deleted!", {
icon: "success",
});
} else {
swal("Your task is safe!");
}
});
}
function saveToStorage() {
localStorage.setItem('list_todos', JSON.stringify(todos));
}