-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtableView.js
45 lines (36 loc) · 1.3 KB
/
tableView.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
export class TableView {
controller;
constructor() {
// Add add event to add button
const addButton = document.getElementById("tableViewContainerAddItemAdd");
addButton.onclick = () => this.addItem();
}
setController(c) {
this.controller = c;
}
update() {
const table = document.getElementById("todoTable");
table.innerHTML = "";
this.controller.getItems().forEach(todo => {
const row = table.insertRow();
const cellTodo = row.insertCell(0);
const cellDeleteButton = row.insertCell(1);
cellTodo.innerHTML = todo.todo;
const deleteButton = document.createElement("button");
deleteButton.textContent = "Delete";
deleteButton.classList.add("delete");
deleteButton.classList.add("is-medium");
deleteButton.onclick = () => this.deleteItem(todo.id);
cellDeleteButton.appendChild(deleteButton);
});
}
addItem() {
let todo = document.getElementById('tableViewContainerAddItemInput').value;
this.controller.addItem(todo);
document.getElementById('tableViewContainerAddItemInput').value = "";
}
deleteItem(id) {
this.controller.deleteItem(id);
this.update();
}
}