-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
116 lines (88 loc) · 2.06 KB
/
Copy pathscript.js
File metadata and controls
116 lines (88 loc) · 2.06 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
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
//Model
let todos;
//Retrieve localStorage
const savedTodos = JSON.parse(localStorage.getItem('todos'));
//Check if its an array
if (Array.isArray(savedTodos))
{
todos = savedTodos;
}
else
{
todos = [{
title:'Get groceries',
dueDate: '2021-10-04',
id: 'id1'
}, {
title:'Wash car',
dueDate: '2021-02-03',
id: 'id2'
},{
title:'Make dinner',
dueDate: '2021-03-04',
id: 'id3'
}];
}
//Creates a todo
function createTodo(title, dueDate)
{
const id = ''+ new Date().getTime();
todos.push({
title:title,
dueDate: dueDate,
id: id
});
saveTodos();
}
//Deletes a todo
function removeTodo(idToDelete)
{
todos = todos.filter(function (todo){
if(todo.id === idToDelete) {
return false;
} else{
return true;
}
});
saveTodos();
}
function saveTodos()
{
localStorage.setItem('todos',JSON.stringify(todos));
}
//Controller
function addTodo()
{
const textbox = document.getElementById('todo-title');
const title = textbox.value
const datePicker=document.getElementById('date-picker');
const dueDate = datePicker.value;
createTodo(title,dueDate);
render();
}
function deleteTodo(event)
{
const deleteButton = event.target;
const idToDelete = deleteButton.id;
removeTodo(idToDelete);
render();
}
//View
function render()
{
// reset our list
document.getElementById('todo-list').innerHTML = '';
todos.forEach(function (todo){
const element = document.createElement('div');
element.innerText = todo.title + ' ' + todo.dueDate;
const deleteButton = document.createElement('button');
deleteButton.innerText = 'Delete';
deleteButton.style = 'margin-left: 12px;'
deleteButton.onclick = deleteTodo;
deleteButton.id = todo.id;
element.appendChild(deleteButton);
const todoList = document.getElementById('todo-list');
todoList.appendChild(element);
});
}
render();