From 8218daaff7b928f830c15c33cf8bddaba4ac746c Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:35:47 -0500 Subject: [PATCH] Historial: abrir el detalle al hacer clic en cualquier parte de la fila MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Antes había que apuntarle a una flecha de pocos píxeles al final de la fila. Ahora sirve toda la fila, como ya funciona el listado de pacientes. Con dos resguardos, porque la fila lleva controles y datos que se copian: no abre si el clic cayó sobre un botón o un enlace —el de cambiar estado tiene lo suyo que hacer— ni si el usuario venía seleccionando texto, que en esta pantalla es frecuente para copiar un nombre o un código. La flecha se conserva: sigue siendo la señal visual de que la fila se abre. Co-Authored-By: Claude Opus 5 --- modules/turnero/views/historial.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/turnero/views/historial.php b/modules/turnero/views/historial.php index c067911..20fd54a 100644 --- a/modules/turnero/views/historial.php +++ b/modules/turnero/views/historial.php @@ -491,7 +491,8 @@ function renderTabla(turnos) { ` : ''; - return ` + return ` ${esc(fecha)} ${esc(t.codigo)} @@ -518,12 +519,12 @@ function renderTabla(turnos) { ${totMin} @@ -619,6 +620,22 @@ function renderDetalle(t) { `; } +/** + * Clic en cualquier parte de la fila: abre o cierra su detalle. + * + * Se ignora si el usuario estaba seleccionando texto —copiar un documento o un + * nombre es frecuente aquí y sería molesto que la fila se abriera al soltar— y + * si el clic cayó sobre un enlace o un botón, que tienen lo suyo que hacer. + */ +function filaDetalle(ev, rowId, turnoId) { + if (ev.target.closest('button, a, input, select')) return; + const sel = window.getSelection(); + if (sel && sel.toString().length > 0) return; + const fila = document.querySelector(`tr[data-id="${turnoId}"]`); + const btn = fila ? fila.querySelector('button[title="Ver detalles"]') : null; + if (btn) toggleDetalle(rowId, btn, turnoId); +} + function toggleDetalle(rowId, btn, turnoId) { const row = document.getElementById(rowId); const icon = btn.querySelector('i');