-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
142 lines (117 loc) · 4.2 KB
/
app.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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
const arrayTags = []
function adicionarItem() {
let item = document.getElementById("item").value;
let deadline = document.getElementById("deadline").value;
let data = geradorData();
let tags = document.getElementById('tag').value;
tagsFormatadas = tratamentoTags(tags);
let status = '';
if(tratamentoInput(item, deadline)) {
salvarDadosLocalStorage(status, item, deadline, data, tagsFormatadas);
limpaLista();
} 0
}
function tratamentoInput(input1, input2) {
if(input1 == '' && input2 == ''){
alert('Fill in all fields that are blank');
} else if (input1 == '') {
alert('The tasks field are empty.');
} else if(input2 == '') {
alert('The deadline field are empty.');
} else {
return true;
}
}
document.querySelector('.todo__new-item').addEventListener('keypress', function (e) {
if (e.key === 'Enter') {
e.preventDefault();
document.querySelector(".add-btn").click();
}
});
function tratamentoTags(tags){
let temp = tags.split(/\s*,\s*/).map(function(a){return a.trim()});
return temp;
}
function limpaLista(){
document.getElementById('item').value='';
document.getElementById('deadline').value='';
document.getElementById('tag').value='';
location.reload();
}
function geradorData(){
let data = new Date(),
dia = data.getDate().toString(),
diaF = (dia.length == 1) ? '0'+dia : dia,
mes = (data.getMonth()+1).toString(),
mesF = (mes.length == 1) ? '0'+mes : mes,
anoF = data.getFullYear();
return `${anoF}-${mesF}-${diaF}`;
}
function atualizarStatus(item){
let arrayTasks = JSON.parse(window.localStorage.getItem('tasks'));
arrayTasks[item].status = arrayTasks[item].status === '' ? 'checked' : '';
storage('tasks', arrayTasks);
}
function deletarItem(item){
let arrayTasks = JSON.parse(window.localStorage.getItem('tasks'));
if(confirm("Do you really want to delete this task?")){
for(let i=0; i<arrayTasks.length;i++){
if(arrayTasks[i].description == item){
arrayTasks.splice(i, 1);
}
}
location.reload();
storage('tasks', arrayTasks);
}
}
function storage(key, value){
window.localStorage.setItem(key, JSON.stringify(value));
}
function deletarTodos(){
let arrayTasks = JSON.parse(window.localStorage.getItem('tasks'));
if(confirm("Do you really want to delete all tasks?")){
arrayTasks.splice(0, arrayTasks.length);
}
location.reload();
storage('tasks', arrayTasks);
}
function salvarDadosLocalStorage(status, description, deadline, data, tags){
let arrayTasks = JSON.parse(window.localStorage.getItem('tasks'));
if(!arrayTasks) arrayTasks = []; //Inicializando o vetor se ele vier vazio do local Storage
let objTask = {
status,
description,
deadline,
data,
tags
};
arrayTasks.push(objTask);
storage('tasks', arrayTasks);
}
function recuperarDadosLocalStorage(){
let arrayTasks = JSON.parse(window.localStorage.getItem('tasks'));
for(i in arrayTasks){
let temp = atualizarTags(arrayTasks[i].tags)
let lista = document.getElementById("lista");
let row = lista.insertRow(0);
let cell1 = row.insertCell(0);
let cell2 = row.insertCell(1);
let cell3 = row.insertCell(2);
let cell4 = row.insertCell(3);
let cell5 = row.insertCell(4);
let cell6 = row.insertCell(5);
cell1.innerHTML = `<input type='checkbox' ${arrayTasks[i].status} onclick="atualizarStatus(${i})">`;
cell2.innerHTML = arrayTasks[i].description;
cell3.innerHTML = temp;
cell4.innerHTML = arrayTasks[i].deadline;
cell5.innerHTML = arrayTasks[i].data;
cell6.innerHTML = '<input type="button" value="×" class="btn-delete" onclick="deletarItem(\'' + arrayTasks[i].description + '\')"/>';
}
}
function atualizarTags(tags){
soma = tags.map((e) => {
return `<i class='tag'>${e}</i>`
});
return soma.join(' ');
}
recuperarDadosLocalStorage();