feat(kiosko): salida admin con 7 toques en el logo

Toca el logo o el nombre del laboratorio 7 veces en 4 s para abrir
el overlay de salida: ir al ERP, recargar kiosko o cancelar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-23 10:59:30 -05:00
co-authored by Claude Sonnet 4.6
parent aaeb3567c2
commit e84c16f875
+47 -3
View File
@@ -401,17 +401,42 @@ unset($p);
<!-- ══ Top bar con logo ════════════════════════════════════════ -->
<header class="kiosko-topbar">
<?php if ($_kLogo): ?>
<img src="<?= htmlspecialchars($_kLogo) ?>" alt="Logo" class="logo-img">
<img src="<?= htmlspecialchars($_kLogo) ?>" alt="Logo" class="logo-img" id="kiosko-logo-tap">
<?php else: ?>
<div class="logo-fallback"><i class="fas fa-flask"></i></div>
<div class="logo-fallback" id="kiosko-logo-tap"><i class="fas fa-flask"></i></div>
<?php endif; ?>
<div class="lab-nombre"><?= $_kNombre ?></div>
<div class="lab-nombre" id="kiosko-logo-tap2"><?= $_kNombre ?></div>
<div class="turno-badge"><i class="fas fa-ticket-alt me-1"></i>Turnero</div>
<button class="btn-fullscreen" id="btn-fs" onclick="toggleFullscreen()" title="Pantalla completa">
<i class="fas fa-expand" id="fs-icon"></i>
</button>
</header>
<!-- ══ Overlay salida admin (toque logo 7×) ═══════════════════════ -->
<div id="overlay-salir" style="display:none;position:fixed;inset:0;z-index:9999;
background:rgba(0,0,0,.7);align-items:center;justify-content:center">
<div style="background:#fff;border-radius:20px;padding:2.5rem 3rem;text-align:center;
box-shadow:0 8px 40px rgba(0,0,0,.4);min-width:280px">
<div style="font-size:1.4rem;font-weight:700;margin-bottom:.5rem">Salir del kiosko</div>
<div style="color:#64748b;font-size:.95rem;margin-bottom:1.5rem">¿Qué desea hacer?</div>
<button onclick="window.location.href='<?= BASE_URL ?>erp.php'"
style="width:100%;padding:.9rem;background:#2563eb;color:#fff;border:none;
border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;margin-bottom:.7rem">
<i class="fas fa-sign-in-alt me-2"></i>Ir al ERP
</button>
<button onclick="location.reload()"
style="width:100%;padding:.9rem;background:#f1f5f9;color:#334155;border:none;
border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;margin-bottom:.7rem">
<i class="fas fa-sync me-2"></i>Recargar kiosko
</button>
<button onclick="document.getElementById('overlay-salir').style.display='none'"
style="width:100%;padding:.7rem;background:transparent;color:#94a3b8;border:1.5px solid #e2e8f0;
border-radius:12px;font-size:1rem;cursor:pointer">
Cancelar
</button>
</div>
</div>
<!-- ══ PASO 1: Selección de prioridad ══════════════════════════ -->
<div id="screen-prio" class="screen visible">
@@ -678,6 +703,25 @@ unset($p);
function setSpinner(on) { document.getElementById('spinner').classList.toggle('active', on); }
// ── Escape admin: tocar logo/nombre 7 veces en 4 s ───────────────
(function() {
let _taps = 0, _timer = null;
function _tap() {
_taps++;
clearTimeout(_timer);
if (_taps >= 7) {
_taps = 0;
document.getElementById('overlay-salir').style.display = 'flex';
} else {
_timer = setTimeout(() => { _taps = 0; }, 4000);
}
}
['kiosko-logo-tap','kiosko-logo-tap2'].forEach(id => {
const el = document.getElementById(id);
if (el) el.addEventListener('pointerup', _tap);
});
})();
function toggleFullscreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen().catch(() => {});