-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
144 lines (106 loc) · 3.55 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
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
142
143
144
const fecha = document.querySelector('#fecha')
const lista = document.querySelector('#lista')
const elemento = document.querySelector('#elemento')
const input = document.querySelector('#input')
const botonEnter = document.querySelector('#boton-enter')
const check = 'fa-check-circle'
const uncheck = 'fa-circle'
const lineThrough = 'line-through'
let LIST
let id // para que inicie en 0 cada tarea tendra un id diferente
//creacion de fecha actualizada
const FECHA = new Date ()
fecha.innerHTML = FECHA.toLocaleDateString('es-MX',{weekday: 'long', month: 'short', day:'numeric'})
// funcion de agregar tarea
function agregarTarea( tarea,id,realizado,eliminado) {
if(eliminado) {return} // si existe eliminado es true si no es false
const REALIZADO = realizado ? check : uncheck // si realizado es verdadero check si no uncheck
const LINE = realizado ? lineThrough : ''
const elemento = `
<li id="elemento">
<i class="far ${REALIZADO}" data="realizado" id="${id}"></i>
<p class="text ${LINE}">${tarea}</p>
<i class="fas fa-trash de" data="eliminado" id="${id}"></i>
</li>
`
lista.insertAdjacentHTML("beforeend",elemento)
}
// funcion de Tarea Realizada
function tareaRealizada(element) {
element.classList.toggle(check)
element.classList.toggle(uncheck)
element.parentNode.querySelector('.text').classList.toggle(lineThrough)
LIST[element.id].realizado = LIST[element.id].realizado ?false :true //Si
// console.log(LIST)
// console.log(LIST[element.id])
// console.log(LIST[element.id].realizado)
}
function tareaEliminada(element){
// console.log(element.parentNode)
// console.log(element.parentNode.parentNode)
element.parentNode.parentNode.removeChild(element.parentNode)
LIST[element.id].eliminado = true
console.log(LIST)
}
// crear un evento para escuchar el enter y para habilitar el boton
botonEnter.addEventListener('click', ()=> {
const tarea = input.value
if(tarea){
agregarTarea(tarea,id,false,false)
LIST.push({
nombre : tarea,
id : id,
realizado : false,
eliminado : false
})
localStorage.setItem('TODO',JSON.stringify(LIST))
id++
input.value = ''
}
})
document.addEventListener('keyup', function (event) {
if (event.key=='Enter'){
const tarea = input.value
if(tarea) {
agregarTarea(tarea,id,false,false)
LIST.push({
nombre : tarea,
id : id,
realizado : false,
eliminado : false
})
localStorage.setItem('TODO',JSON.stringify(LIST))
input.value = ''
id++
console.log(LIST)
}
}
})
lista.addEventListener('click',function(event){
const element = event.target
const elementData = element.attributes.data.value
console.log(elementData)
if(elementData == 'realizado') {
tareaRealizada(element)
}
else if(elementData == 'eliminado') {
tareaEliminada(element)
console.log("elimnado")
}
localStorage.setItem('TODO',JSON.stringify(LIST))
})
let data = localStorage.getItem('TODO')
if(data){
LIST = JSON.parse(data)
console.log(LIST)
id = LIST.length
cargarLista(LIST)
}else {
LIST = []
id = 0
}
function cargarLista(array) {
array.forEach(function(item){
agregarTarea(item.nombre,item.id,item.realizado,item.eliminado)
})
}