Skip to content

Commit 0614d8e

Browse files
add logic to todolist
Signed-off-by: Arnav Gupta <[email protected]>
1 parent 087fd6d commit 0614d8e

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

Lecture07/todolist/index.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<!-- Our files -->
1616
<link rel="stylesheet" href="style.css">
17-
<script src="script.js"></script>
17+
<script defer src="script.js"></script>
1818

1919
</head>
2020
<body>
@@ -53,11 +53,6 @@ <h1 class="display-4 py-2" align="center">Todo List</h1>
5353

5454
<div class="row px-4">
5555
<ul class="list-group col-12" id="taskList">
56-
<li class="list-group-item">Cras justo odio</li>
57-
<li class="list-group-item">Dapibus ac facilisis in</li>
58-
<li class="list-group-item done">Morbi leo risus</li>
59-
<li class="list-group-item">Porta ac consectetur ac</li>
60-
<li class="list-group-item">Vestibulum at eros</li>
6156
</ul>
6257
</div>
6358

Lecture07/todolist/script.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
let inpNewTask = document.getElementById('inpNewTask')
2+
let btnAdd = document.getElementById('btnAdd')
3+
let taskList = document.getElementById('taskList')
4+
5+
// Code for managing model layer
6+
7+
let tasks = [{ title: 'first task', done: false }, { title: 'another task', done: true }]
8+
9+
function addItem(taskTitle) {
10+
tasks.push({ title: taskTitle, done: false })
11+
}
12+
13+
// Code for managing views
14+
15+
function renderList() {
16+
taskList.innerHTML = ''
17+
for (let i = 0; i < tasks.length; i++) {
18+
let item = document.createElement('li')
19+
item.innerText = tasks[i].title
20+
item.className = tasks[i].done ? 'list-group-item done' : 'list-group-item'
21+
taskList.appendChild(item)
22+
}
23+
}
24+
25+
function addItemFromInput() {
26+
if (inpNewTask.value) {
27+
addItem(inpNewTask.value)
28+
inpNewTask.value = ''
29+
}
30+
renderList()
31+
}
32+
33+
// Code for view <-> model interactions
34+
35+
btnAdd.addEventListener('click', addItemFromInput)
36+
inpNewTask.addEventListener('keypress', (event) => {
37+
if (event.keyCode == 13) addItemFromInput()
38+
})
39+
40+
// When page starts
41+
42+
renderList()

0 commit comments

Comments
 (0)