-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
109 lines (98 loc) · 2.89 KB
/
script.js
File metadata and controls
109 lines (98 loc) · 2.89 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
//Final Version [TodoList]
var todoList = {
todos:[],
addTodos: function(todoText){
this.todos.push({
todoText: todoText,
completed: false
});
},
changeTodos: function(position,todoText){
this.todos[position].todoText = todoText;
},
deleteTodos: function(position) {
this.todos.splice(position,1);
},
toggleCompleted: function(position){
var todo = this.todos[position];
todo.completed = !todo.completed;
},
toggleAll: function (){
var totalTodos = this.todos.length;
var completedTodos = 0;
//Get number of completed Todos
for (var i =0; i<totalTodos; i++){
if (this.todos[i].completed === true){
completedTodos++;
}
}
//Case 1: If everything is true, make all false
if (completedTodos === totalTodos){
for (i =0; i < totalTodos; i++){
this.todos[i].completed = false;
}
//Case 2: Otherwise make everything True
}else{
for (i =0; i < totalTodos; i++){
this.todos[i].completed = true;
}
}
}
};
var handlers= {
addTodos: function(){
var addTodoTextInput =document.getElementById('addTodoTextInput');
todoList.addTodos(addTodoTextInput.value);
addTodoTextInput.value = ' ';
views.displayTodos();
},
changeTodo: function() {
var changeTodoPositionInput =document.getElementById('changeTodoPositionInput');
var changeTodoTextInput = document.getElementById('changeTodoTextInput');
todoList.changeTodos(changeTodoPositionInput.valueAsNumber,changeTodoTextInput.value);
changeTodoPositionInput.value='';
changeTodoTextInput.value='';
views.displayTodos();
},
deleteTodos: function(){
var deletePositionInput = document.getElementById('deletePositionInput');
todoList.deleteTodos('deletePositionInput.valueAsNumber');
deletePositionInput.value='';
views.displayTodos();
},
toggleComplete: function(){
var toggleCompletedPositionInput = document.getElementById('toggleCompletedPositionInput');
todoList.toggleCompleted(toggleCompletedPositionInput.valueAsNumber);
toggleCompletedPositionInput.value='';
views.displayTodos();
},
toggleTodos: function(){
todoList.toggleAll();
views.displayTodos();
}
};
var views = {
displayTodos: function(){
//create a unordered bulleted list and clear content
var todosUl=document.querySelector('ul');
todosUl.innerHTML=" ";
for(var i =0; i <todoList.todos.length; i++){
var todosLi=document.createElement('li');
var todo =todoList.todos[i];
var todoTextWithCompletion ='';
if (todo.completed === true){
todoTextWithCompletion = '(x)' + todo.todoText;
}else{
todoTextWithCompletion = '( )' + todo.todoText;
}
todosLi.textContent = todoTextWithCompletion;
todosUl.appendChild(todosLi);
}
}
};
//Change todos
todos[0]="Big Time";
console.log(todos);
//Delete todos
todos.splice(0,1);
console.log(todos);