diff --git a/modules/turnero/views/configuracion.php b/modules/turnero/views/configuracion.php index 4d943eb..42c7425 100644 --- a/modules/turnero/views/configuracion.php +++ b/modules/turnero/views/configuracion.php @@ -466,7 +466,13 @@ $tab = $_GET['tab'] ?? 'lugares'; TAB 2 — EXÁMENES Y CONSENTIMIENTOS ════════════════════════════════════════ --> -
Tipos de examen y sus formularios de consentimiento
+Tipos de examen y sus formularios de consentimiento
+No hay tipos de examen configurados
@@ -1203,6 +1212,58 @@ async function eliminarExamen(id, nombre) { } catch (e) { toast('Error de conexión', 'error'); } } +// ───────────────────────────────────────────────────────────── +// BUSCADOR + PAGINADOR — Tab examenes +// ───────────────────────────────────────────────────────────── +(function () { + const PAGE = 15; + let page = 1, q = ''; + + function update() { + const lista = document.getElementById('exam-lista'); + if (!lista) return; + const rows = Array.from(lista.querySelectorAll('.item-row')); + const term = q.toLowerCase(); + const matched = rows.filter(r => r.textContent.toLowerCase().includes(term)); + + rows.forEach(r => r.hidden = true); + const start = (page - 1) * PAGE; + matched.slice(start, start + PAGE).forEach(r => r.hidden = false); + + // Ocultar categorías vacías + lista.querySelectorAll('.mb-3').forEach(cat => { + cat.hidden = Array.from(cat.querySelectorAll('.item-row')).every(r => r.hidden); + }); + + renderPager(matched.length); + } + + function renderPager(total) { + const el = document.getElementById('exam-pager'); + if (!el) return; + const pages = Math.ceil(total / PAGE); + if (pages <= 1) { el.innerHTML = total ? `${total} resultado${total!==1?'s':''}` : ''; return; } + const prev = ``; + const next = ``; + el.innerHTML = `