No constan incidencias activas ahora mismo en las principales carreteras de Álava.
';
return;
}
elList.innerHTML = incidencias.slice(0, 8).map(function (incidencia) {
const carretera = limpiar(incidencia.carretera) || "Carretera";
const tipoNormalizado = normalizarTipo(limpiar(incidencia.tipo) || "Incidencia", incidencia);
const tipo = tipoNormalizado.texto;
const tipoClase = tipoNormalizado.clase;
const municipio =
limpiar(incidencia.municipioCalculado) ||
limpiar(incidencia.municipio) ||
limpiar(incidencia.localizacion) ||
"Municipio no disponible";
const metodoMunicipio = textoMetodoMunicipio(incidencia.metodoMunicipio);
const localizacion = limpiar(incidencia.localizacion);
const descripcion = limpiar(incidencia.descripcion);
const detallePrincipal = crearDetallePrincipal(incidencia);
const secundario = crearTextoSecundario(incidencia);
const fechaInicio = limpiar(incidencia.fechaInicio);
const fechaFin = limpiar(incidencia.fechaFin);
const horaVisible = formatearHoraIncidencia(fechaInicio);
return (
'' +
'' +
'' + escaparHTML(carretera) + '' +
'' + escaparHTML(tipo) + '' +
'
' +
'' +
escaparHTML(municipio) +
(metodoMunicipio ? '' + escaparHTML(metodoMunicipio) + '' : '') +
'
' +
(horaVisible ? '' + escaparHTML(horaVisible) + '
' : '') +
(detallePrincipal ? '' + escaparHTML(detallePrincipal) + '
' : '') +
(localizacion && localizacion !== municipio ? '' + escaparHTML(localizacion) + '
' : '') +
(secundario ? '' + escaparHTML(secundario) + '
' : '') +
(descripcion ? '' + escaparHTML(descripcion) + '
' : '') +
(fechaInicio ? 'Inicio: ' + escaparHTML(fechaInicio) + (fechaFin ? ' · Fin previsto: ' + escaparHTML(fechaFin) : '') + '
' : '') +
''
);
}).join("");
}
async function cargarTrafico() {
try {
elStatus.textContent = "Actualizando";
elTotal.textContent = "--";
elUpdated.textContent = "Consultando datos";
const respuesta = await fetch(API_TRAFICO + "?t=" + Date.now(), {
method: "GET",
cache: "no-store"
});
const texto = await respuesta.text();
if (!respuesta.ok) {
throw new Error("HTTP " + respuesta.status + " - " + texto.slice(0, 120));
}
let data;
try {
data = JSON.parse(texto);
} catch (errorJSON) {
throw new Error("La respuesta no es JSON válido: " + texto.slice(0, 120));
}
if (!data || data.ok !== true) {
throw new Error(data && data.error ? data.error : "Respuesta no válida");
}
pintarIncidencias(data);
} catch (error) {
elStatus.textContent = "No disponible";
elTotal.textContent = "--";
elUpdated.textContent = "Error al cargar";
elList.innerHTML =
'