-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
108 lines (88 loc) · 3.58 KB
/
script.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
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
var idItem=0;
var storage = localStorage;
var listItem = [{}];
function getList(storage){
console.log("Dados carregados.")
let listStored = JSON.parse(storage.getItem('list'));
if(listStored===null){
return [];
}
else{
return listStored;
}
}
function addList(storage, array){
storage.setItem('list', JSON.stringify(array));
return "Dados atualizados";
}
function firstLoad(storage){
listItem = getList(storage);
if (listItem.length > 0){
for(let i=0; i < listItem.length; i++){
addItemListFirstLoad(listItem[i].item);
}
}
return true;
}
function addItemListFirstLoad(content){
let listToDo = document.getElementById("todoList");
let checkboxName = `chkItem${idItem}`;
listToDo.insertAdjacentHTML("beforeend",`<div class="item animate__animated animate__bounceIn" id="item${idItem}"><input type="checkbox" name="${checkboxName}" id="${checkboxName}" class="todoCheckbox" onchange="remItem(${idItem})"><label for="${checkboxName}" id="label${idItem}">${content}</label></div>`);
// document.getElementById(checkboxName).addEventListener('change', remItem(idItem));
idItem++;
}
function addItemList(){
let content = document.getElementById("newListContent");
let listToDo = document.getElementById("todoList");
let checkboxName = `chkItem${idItem}`;
let item = {item: `${content.value}`};
let divEfeito = document.createElement('div');
let checkboxTarefa = document.createElement('input');
let labelCheckbox = document.createElement('label');
// Criação da div
divEfeito.classList.add("item", "animate__animated", "animate__bounceIn");
divEfeito.id = `item${idItem}`;
// Criação do checkbox
checkboxTarefa.type='checkbox';
checkboxTarefa.name=checkboxName;
checkboxTarefa.id=checkboxName;
checkboxTarefa.classList.add("todoCheckbox");
// Criação da label
labelCheckbox.htmlFor = checkboxName;
labelCheckbox.id = `label${idItem}`;
labelCheckbox.appendChild(document.createTextNode(content.value))
divEfeito.appendChild(checkboxTarefa);
divEfeito.appendChild(labelCheckbox);
listToDo.appendChild(divEfeito);
checkboxTarefa.addEventListener('change', () => remItem(idItem));
console.log(checkboxTarefa);
// listToDo.insertAdjacentHTML("beforeend",`<div class="item animate__animated animate__bounceIn" id="item${idItem}"><input type="checkbox" name="${checkboxName}" id="${checkboxName}" class="todoCheckbox" onchange="remItem(${idItem})" ><label for="${checkboxName}" id="label${idItem}">${content.value}</label></div>`);
content.value = '';
listItem.push(item);
console.log(listItem);
console.log(JSON.stringify(listItem));
addList(storage, listItem);
// document.getElementById(checkboxName).addEventListener('change', remItem(idItem));
idItem++;
return true;
}
function remItem(id){
let divId = "item"+id;
let checkbox = document.getElementById(`chkItem${id}`);
let labelValue = document.getElementById(`label${id}`).innerHTML;
let arrayCopy = listItem;
listItem = arrayCopy.filter((value) => {
return value.item !== labelValue;
})
addList(storage, listItem);
if(checkbox.checked == true){
let div = document.getElementById(divId);
div.classList.remove("animate__bounceIn");
div.classList.add("animate__bounceOut");
setTimeout(()=>{div.remove()}, 500);
}
return true;
}
var btn = document.getElementById("btnAddItem");
btn.addEventListener("click",function(idItem){addItemList(idItem)}, false);
firstLoad(storage);