Skip to content

Commit 439a09b

Browse files
añadir alumno casi finalizado
1 parent fc77fb5 commit 439a09b

File tree

3 files changed

+85
-9
lines changed

3 files changed

+85
-9
lines changed

index.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ <h2 class="text-content-center">Workshop</h2>
1616
<div class="row">
1717
<div class="col" id="div-list">
1818
<h3 class="text-content-center">Lista de alumnos</h3>
19+
<div id="div-numberStudents">
20+
<h2 id="students-number" style="display: none"></h2>
21+
</div>
1922
<ul id="student-list"></ul>
23+
<ul id="no-student-list"></ul>
24+
<ul id="student-finded"></ul>
25+
2026
</div>
2127
<div class="col">
2228
<h3 class="text-content-center">Ingreso de datos</h3>
@@ -46,7 +52,8 @@ <h3 class="text-content-center">Ingreso de datos</h3>
4652
<input type="number" class="form-control input-margin" placeholder="DNI">
4753
</div>
4854
<div class="col">
49-
<button type="button" class="btn btn-success w-100" id="input-name-finder">Buscar alumno</button>
55+
<button type="button" class="btn btn-success w-100" id="input-name-finder" disabled>Buscar
56+
alumno</button>
5057
<button type="button" class="btn btn-danger w-100" disabled>Eliminar alumno</button>
5158
</div>
5259
</div>

script.js

Lines changed: 74 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,17 @@ inputbutton1.addEventListener("click", function () {
139139
//Guardar el array en LocalStorage
140140
function guardarEnLocalStorage(key, array) {
141141
if (Array.isArray(array)) {
142+
nameValue = nameValue.toLowerCase()
143+
lastNameValue = lastNameValue.toLowerCase()
144+
function primeraLetraMayus(string) {
145+
return string.charAt(0).toUpperCase() + string.slice(1)
146+
}
147+
function noSpaceLetter(string) {
148+
var noSpaceLetter = string.indexOf(" ")
149+
return string.charAt(0).toUpperCase() + string.slice(1, noSpaceLetter) + " " + string.charAt(noSpaceLetter + 1).toUpperCase() + string.slice(noSpaceLetter + 2)
150+
}
151+
nameValue = (nameValue.indexOf(" ") == -1) ? primeraLetraMayus(nameValue) : noSpaceLetter(nameValue);
152+
lastNameValue = (lastNameValue.indexOf(" ") == -1) ? primeraLetraMayus(lastNameValue) : noSpaceLetter(lastNameValue)
142153
array.push({ nombre: nameValue, dni: dniValue, apellido: lastNameValue, email: passwordValue })
143154
var listaStorage = JSON.stringify(array)
144155
localStorage.setItem(key, listaStorage)
@@ -162,6 +173,8 @@ inputbutton1.addEventListener("click", function () {
162173
console.log(mostrarLocal)
163174
//Mostrar en el DOM los datos capturados desde LocalStorage
164175
function mostrarStudent(student) {
176+
noStudentList = document.querySelector("#no-student-list")
177+
noStudentList.innerText = ""
165178
var objectLength = JSON.parse(localStorage.getItem("studentInfo")).length - 1
166179
var studentlist = document.querySelector("#student-list");
167180
var studentDatos = document.createElement("li");
@@ -201,35 +214,88 @@ inputbutton1.addEventListener("click", function () {
201214
})
202215
var inputBuscar = document.querySelector("#input-buscar")
203216
var inputButton2 = document.querySelector("#input-name-finder")
204-
217+
inputBuscar.addEventListener("input", function validarInputBuscar() {
218+
if (inputBuscar.value && !(noNumberOnName(inputBuscar.value, numeros)) && inputBuscar.value.length >= 4) {
219+
inputBuscar.classList.add("is-valid")
220+
inputButton2.disabled = false
221+
if (inputBuscar.classList.contains("is-invalid")) {
222+
inputBuscar.classList.replace("is-invalid", "is-valid")
223+
}
224+
} else {
225+
inputBuscar.classList.add("is-invalid")
226+
inputButton2.disabled = true
227+
if (inputBuscar.classList.contains("is-valid")) {
228+
inputBuscar.classList.replace("is-valid", "is-invalid")
229+
}
230+
}
231+
})
232+
inputBuscar.addEventListener("blur", function(){
233+
if (inputBuscar.classList.contains("is-valid")) {
234+
inputBuscar.classList.remove("is-valid")
235+
} else if (inputBuscar.classList.contains("is-invalid")) {
236+
inputBuscar.classList.remove("is-invalid")
237+
}
238+
})
239+
function primeraLetraMayus(string) {
240+
return string.charAt(0).toUpperCase() + string.slice(1)
241+
}
242+
function noSpaceLetter(string) {
243+
var noSpaceLetter = string.indexOf(" ")
244+
return string.charAt(0).toUpperCase() + string.slice(1, noSpaceLetter) + " " + string.charAt(noSpaceLetter + 1).toUpperCase() + string.slice(noSpaceLetter + 2)
245+
}
205246
inputButton2.addEventListener("click", function () {
206-
var objectStudents = JSON.parse(localStorage.getItem("studentInfo"))
247+
inputBuscar = inputBuscar.value.toLowerCase();
248+
inputBuscar = (inputBuscar.indexOf(" ") == -1) ? primeraLetraMayus(inputBuscar) : noSpaceLetter(inputBuscar);
249+
var objectStudents = JSON.parse(localStorage.getItem("studentInfo"));
207250
function buscarAlumno() {
208251
if (objectStudents) {
209252
function includesText(strParcial, strComplete) {
210253
for (var ii = 0; ii < strComplete.length; ii++) {
211254
for (var i = 0; i < strParcial.length; i++) {
212255
if (strParcial[i] === strComplete[ii].nombre[i]) {
213256
if (strParcial[i] == strComplete[ii].nombre[strParcial.length - 1]) {
214-
console.log("Coincidencia")
257+
function mostrarStudent(student) {
258+
var studentlist = document.querySelector("#student-list");
259+
studentlist.innerText = ""
260+
var studentFinder = document.querySelector("#student-finded")
261+
var studentDatos = document.createElement("li");
262+
studentDatos.className = "list-group-item"
263+
studentDatos.id = student[ii].dni
264+
var nombreApellido = document.createElement("h2");
265+
nombreApellido.innerText = "Estudiante: " + student[ii].nombre + " " + ((student[ii].apellido == "") ? "" : student[ii].apellido)
266+
studentDatos.appendChild(nombreApellido)
267+
var dni = document.createElement("h3");
268+
dni.innerText = "DNI: " + student[ii].dni
269+
studentDatos.appendChild(dni)
270+
var email = document.createElement("h4");
271+
email.innerText = "Correo electrónico: " + student[ii].email
272+
studentDatos.appendChild(email)
273+
studentFinder.appendChild(studentDatos)
274+
inputButton2.disabled = true
275+
}
276+
var studentNode = mostrarStudent(objectStudents)
277+
console.log(studentNode)
215278
}
216279
} else {
217280
break
218281
}
219282
}
220283
}
284+
var divStudentsNumber = document.querySelector("#div-numberStudents")
285+
var studentEncontrado = document.querySelector("#students-number")
286+
studentEncontrado.className = "text-content-center show"
287+
studentEncontrado.innerText = "Alumnos encontrados: " + document.querySelectorAll("li").length
288+
divStudentsNumber.appendChild(studentEncontrado)
221289
}
222-
console.log(includesText(inputBuscar.value, objectStudents))
290+
console.log(includesText(inputBuscar, objectStudents))
223291
} else {
224-
studentlist = document.createElement("ul")
225-
studentlist.id = "student-list"
292+
noStudentList = document.querySelector("#no-student-list")
226293
var studentDatos = document.createElement("li");
227294
studentDatos.className = "list-group-item"
228295
var alumnoNoFinded = document.createElement("h2");
229296
alumnoNoFinded.innerText = "No hay alumnos que mostrar!"
230297
studentDatos.appendChild(alumnoNoFinded)
231-
studentlist.appendChild(studentDatos)
232-
document.querySelector("#div-list").appendChild(studentlist)
298+
noStudentList.appendChild(studentDatos)
233299
}
234300
}
235301
console.log(buscarAlumno())

style.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
.text-content-center {
22
text-align: center;
33
}
4+
.show {
5+
display: block !important;
6+
}
47
small {
58
margin-bottom: 12px !important;
69
}

0 commit comments

Comments
 (0)