From 52d8bf1b6867d979dede0d10c9fbe241438b88f5 Mon Sep 17 00:00:00 2001 From: marsalva Date: Sat, 14 Mar 2026 14:05:12 +0000 Subject: [PATCH] Actualizar calendario.html --- calendario.html | 73 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/calendario.html b/calendario.html index 5938eff..31f59ea 100644 --- a/calendario.html +++ b/calendario.html @@ -513,28 +513,76 @@ 'purple': { text: 'text-purple-600', bg: 'bg-purple-50', border: 'border-purple-100' } }; - function renderServices() { + function renderServices() { const container = document.getElementById('servicesList'); + const dayTitle = document.getElementById('dayTitle'); const displayDate = selectedDateStr.split('-').reverse().join('/'); - document.getElementById('dayTitle').innerText = `DÍA ${displayDate}`; + + const queryInput = document.getElementById('searchInput'); + const query = queryInput ? queryInput.value.toLowerCase().trim() : ""; - const dayServices = localServices.filter(s => String(s.raw_data.scheduled_date || "").trim() === selectedDateStr); - dayServices.sort((a, b) => String(a.raw_data.scheduled_time || "23:59").localeCompare(String(b.raw_data.scheduled_time || "23:59"))); + let servicesToRender = []; - if (dayServices.length === 0) { - container.innerHTML = `

Día de Descanso

No tienes servicios para este día.

`; + // 🔥 MODO BÚSQUEDA GLOBAL O MODO DÍA NORMAL 🔥 + if (query === "") { + // Modo Normal: Solo mostramos el día seleccionado en el carrusel + dayTitle.innerText = `DÍA ${displayDate}`; + servicesToRender = localServices.filter(s => String(s.raw_data.scheduled_date || "").trim() === selectedDateStr); + + // Ordenar por hora + servicesToRender.sort((a, b) => String(a.raw_data.scheduled_time || "23:59").localeCompare(String(b.raw_data.scheduled_time || "23:59"))); + } else { + // Modo Búsqueda: Ignoramos el día y buscamos en TODA la agenda + dayTitle.innerText = `RESULTADOS DE BÚSQUEDA TOTA LES`; + servicesToRender = localServices.filter(s => { + const raw = s.raw_data || {}; + const searchString = ` + ${s.service_ref || ""} + ${raw["Nombre Cliente"] || raw["CLIENTE"] || ""} + ${raw["Dirección"] || raw["DOMICILIO"] || ""} + ${raw["Población"] || raw["POBLACION-PROVINCIA"] || ""} + ${raw["Descripción"] || raw["DESCRIPCION"] || raw["Averia"] || ""} + ${raw["Compañía"] || raw["Procedencia"] || ""} + `.toLowerCase(); + return searchString.includes(query); + }); + + // Ordenar por fecha y luego por hora + servicesToRender.sort((a, b) => { + const dateA = String(a.raw_data.scheduled_date || "9999-12-31"); + const dateB = String(b.raw_data.scheduled_date || "9999-12-31"); + if (dateA !== dateB) return dateA.localeCompare(dateB); + return String(a.raw_data.scheduled_time || "23:59").localeCompare(String(b.raw_data.scheduled_time || "23:59")); + }); + } + + // Si la lista final está vacía (ya sea por descanso o porque la búsqueda no coincide) + if (servicesToRender.length === 0) { + const isSearch = query !== ""; + container.innerHTML = ` +
+ +

${isSearch ? 'Sin resultados' : 'Día de Descanso'}

+

${isSearch ? 'No hay coincidencias en toda tu agenda.' : 'No tienes servicios para este día.'}

+
`; safeLoadIcons(); return; } - container.innerHTML = dayServices.map(s => { + container.innerHTML = servicesToRender.map(s => { const raw = s.raw_data || {}; - const time = raw.scheduled_time || "--:--"; + let time = raw.scheduled_time || "--:--"; + + // 🔥 DETALLE PRO: Si estamos buscando, mostramos el día de la cita en la tarjeta + if (query !== "" && raw.scheduled_date) { + const [y, m, d] = raw.scheduled_date.split('-'); + time = `${d}/${m}${time}`; + } // ¿Tiene este siniestro un mensaje nuevo? const hasNewMessage = activeNotifications.includes(s.id); if (s.provider === 'SYSTEM_BLOCK') { - return `
${time}

BLOQUEADO

${raw["Descripción"] || ""}

`; + return `
${time}

BLOQUEADO

${raw["Descripción"] || ""}

`; } const name = raw["Nombre Cliente"] || raw["CLIENTE"] || "Asegurado"; @@ -566,11 +614,12 @@ ` : ''} ${s.is_urgent ? '
Urgente
' : ''} -
-
+ +
+
- ${time} + ${time}