diff --git a/modules/turnero/views/lugar.php b/modules/turnero/views/lugar.php index 4442734..e22ae0b 100644 --- a/modules/turnero/views/lugar.php +++ b/modules/turnero/views/lugar.php @@ -78,6 +78,7 @@ $adminNombre = $_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user'][' .cola-card.activo { border-color: #6366f1; box-shadow: 0 0 0 2px #c7d2fe; } .cola-card.en-servicio-card { border-color: #16a34a; background: #f0fdf4; } .cola-card.en-servicio-card.activo { border-color: #16a34a; box-shadow: 0 0 0 2px #bbf7d0; } + .cola-card.nav-selected { border-color: #3b82f6; background: #eff6ff; box-shadow: 0 0 0 2px #bfdbfe; } .prio-dot { width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; @@ -220,12 +221,9 @@ require_once __DIR__ . '/../../../shared/components/sidebar.php';
+ - -
@@ -235,12 +233,29 @@ require_once __DIR__ . '/../../../shared/components/sidebar.php';
-
+
EN ESPERA 0
+ + +
@@ -474,6 +489,7 @@ function renderCola(snap) { const items = snap.cola || []; const espera = items.filter(t => t.estado === 'en_espera_lugar'); document.getElementById('badge-count').textContent = espera.length; + _actualizarNavCola(items); const lista = document.getElementById('cola-items'); if (!items.length) { @@ -508,6 +524,52 @@ function enfocarFicha() { document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } +// ── Navegación entre turnos en espera ───────────────────────── +let _navItems = []; // lista de turnos en_espera_lugar actual +let _navIdx = -1; // índice seleccionado + +function _actualizarNavCola(items) { + _navItems = items.filter(t => t.estado === 'en_espera_lugar'); + // Mantener idx si el turno seleccionado sigue en lista + if (_navIdx >= _navItems.length) _navIdx = _navItems.length - 1; + const nav = document.getElementById('nav-cola'); + if (_navItems.length > 0) { + nav.style.removeProperty('display'); + if (_navIdx < 0) _navIdx = 0; + _renderNavPreview(); + } else { + nav.style.display = 'none'; + _navIdx = -1; + document.getElementById('nav-preview').innerHTML = + `— ninguno seleccionado —`; + } +} + +function _renderNavPreview() { + const t = _navItems[_navIdx]; + if (!t) return; + document.getElementById('nav-preview').innerHTML = + `${t.prioridad_codigo} + ${escHtml(t.codigo)} + ${escHtml(t.paciente_nombre || '')} + `; + // Resaltar la card en la lista + document.querySelectorAll('.cola-card').forEach(el => el.classList.remove('nav-selected')); + const cards = document.querySelectorAll('#cola-items .cola-card'); + if (cards[_navIdx]) cards[_navIdx].classList.add('nav-selected'); +} + +function navCola(dir) { + if (!_navItems.length) return; + _navIdx = (_navIdx + dir + _navItems.length) % _navItems.length; + _renderNavPreview(); +} + +async function llamarNavActual() { + if (_navIdx < 0 || !_navItems[_navIdx]) return; + await llamarTurnoEspecifico(_navItems[_navIdx].id); +} + // ── Llamar siguiente ────────────────────────────────────────── async function llamarSiguiente() { await _llamar({});