Skip to content

Commit 3024319

Browse files
list filtering
Signed-off-by: Arnav Gupta <[email protected]>
1 parent cf101ea commit 3024319

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Lecture07/todolist/script.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
let inpNewTask = document.getElementById('inpNewTask')
22
let btnAdd = document.getElementById('btnAdd')
3+
let btnClearDone = document.getElementById('btnClearDone')
34
let taskList = document.getElementById('taskList')
45

56
// Code for managing model layer
@@ -10,6 +11,14 @@ function addItem(taskTitle) {
1011
tasks.push({ title: taskTitle, done: false })
1112
}
1213

14+
function toggleItemDone(itemId) {
15+
tasks[itemId].done = !tasks[itemId].done
16+
}
17+
18+
function clearDoneItems() {
19+
tasks = tasks.filter((x) => !x.done)
20+
}
21+
1322
// Code for managing views
1423

1524
function renderList() {
@@ -18,6 +27,10 @@ function renderList() {
1827
let item = document.createElement('li')
1928
item.innerText = tasks[i].title
2029
item.className = tasks[i].done ? 'list-group-item done' : 'list-group-item'
30+
item.onclick = () => {
31+
toggleItemDone(i)
32+
renderList()
33+
}
2134
taskList.appendChild(item)
2235
}
2336
}
@@ -36,6 +49,10 @@ btnAdd.addEventListener('click', addItemFromInput)
3649
inpNewTask.addEventListener('keypress', (event) => {
3750
if (event.keyCode == 13) addItemFromInput()
3851
})
52+
btnClearDone.addEventListener('click', () => {
53+
clearDoneItems()
54+
renderList()
55+
})
3956

4057
// When page starts
4158

0 commit comments

Comments
 (0)