frontend pilotos
This commit is contained in:
parent
2f18e7cf8a
commit
5fdcf1154a
46
js/f1.js
46
js/f1.js
|
|
@ -85,47 +85,33 @@ async function cargarPilotos() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===============================
|
// ===============================
|
||||||
// EQUIPOS
|
// ESCUDERÍAS
|
||||||
// ===============================
|
// ===============================
|
||||||
async function cargarEquipos() {
|
async function cargarEscuderias() {
|
||||||
try {
|
try {
|
||||||
const response = await fetch('/f1/api/pilotos');
|
const response = await fetch('/f1/api/escuderias');
|
||||||
const pilotos = await response.json();
|
const escuderias = await response.json();
|
||||||
const tbody = document.querySelector('#equipos-table tbody');
|
const tbody = document.querySelector('#escuderias-table tbody');
|
||||||
|
|
||||||
tbody.innerHTML = ''; // Limpiamos tabla
|
tbody.innerHTML = ''; // Limpiamos tabla
|
||||||
|
|
||||||
// Agrupar pilotos por equipo
|
escuderias.forEach(e => {
|
||||||
const equiposMap = {};
|
|
||||||
pilotos.forEach(p => {
|
|
||||||
const eq = p.equipo || 'Sin equipo';
|
|
||||||
if (!equiposMap[eq]) equiposMap[eq] = [];
|
|
||||||
equiposMap[eq].push(p);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Crear filas por equipo
|
|
||||||
Object.keys(equiposMap).forEach(eq => {
|
|
||||||
const pilotosEq = equiposMap[eq];
|
|
||||||
const nacionalidades = [...new Set(pilotosEq.map(p => p.nacionalidad))].join(', ');
|
|
||||||
const codigos = pilotosEq.map(p => p.codigo).join(', ');
|
|
||||||
|
|
||||||
const fila = document.createElement('tr');
|
const fila = document.createElement('tr');
|
||||||
fila.innerHTML = `
|
fila.innerHTML = `
|
||||||
<td>${eq}</td>
|
<td>${e.nombre}</td>
|
||||||
<td>${pilotosEq.length}</td>
|
<td>${e.pais}</td>
|
||||||
<td>${nacionalidades}</td>
|
<td>${e.motor}</td>
|
||||||
<td>${codigos}</td>
|
|
||||||
`;
|
`;
|
||||||
tbody.appendChild(fila);
|
tbody.appendChild(fila);
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error cargando equipos:', error);
|
console.error('Error cargando escuderías:', error);
|
||||||
const tbody = document.querySelector('#equipos-table tbody');
|
const tbody = document.querySelector('#escuderias-table tbody');
|
||||||
tbody.innerHTML = `<tr><td colspan="4">No se pudieron cargar los equipos</td></tr>`;
|
tbody.innerHTML = `<tr><td colspan="4">No se pudieron cargar las escuderías</td></tr>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ===============================
|
// ===============================
|
||||||
// INIT PRINCIPAL
|
// INIT PRINCIPAL
|
||||||
// ===============================
|
// ===============================
|
||||||
|
|
@ -159,10 +145,10 @@ async function init() {
|
||||||
`Próxima sesión de ${proxima.raceName}`;
|
`Próxima sesión de ${proxima.raceName}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cargar pilotos y equipos al inicio y cada minuto
|
// Cargar pilotos y escuderías al inicio y cada minuto
|
||||||
cargarPilotos();
|
cargarPilotos();
|
||||||
cargarEquipos();
|
cargarEscuderias();
|
||||||
setInterval(() => { cargarPilotos(); cargarEquipos(); }, 60000);
|
setInterval(() => { cargarPilotos(); cargarEscuderias(); }, 60000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Arrancar todo al cargar la página
|
// Arrancar todo al cargar la página
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue