From f83bc634a3d674dd926d81b4a2a1506f50ff5282 Mon Sep 17 00:00:00 2001 From: stephan Date: Wed, 27 May 2026 10:08:44 -0400 Subject: [PATCH] =?UTF-8?q?Clic=20sur=20un=20=C5=93il=20MSIN-4370?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc_footer_scripts.php | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/inc_footer_scripts.php b/inc_footer_scripts.php index 234adcc..62c64ec 100644 --- a/inc_footer_scripts.php +++ b/inc_footer_scripts.php @@ -2337,6 +2337,23 @@ if ($strLangue == 'fr') { let container = btnView.closest('.epr-block'); + // Vérifier si une vue est déjà ouverte + let existing = document.querySelector('.epr-row-view'); + + // Toggle : si c'est le même œil qui a ouvert la vue, on la ferme et on s'arrête + if (existing + && existing.dataset.eprId === epr_id + && existing.dataset.rangeId === range_id + ) { + existing.remove(); + return; + } + + // Un autre œil a été cliqué : fermer la vue précédente avant d'ouvrir la nouvelle + if (existing) { + existing.remove(); + } + fetch('/ajax_bib_range.php', { method: 'POST', headers: { @@ -2365,14 +2382,17 @@ if ($strLangue == 'fr') { let row = btnView.closest('.epr-row'); -// 1. Supprimer toute vue existante - let existing = document.querySelector('.epr-row-view'); - if (existing) { - existing.remove(); - } - -// 2. Injecter sous la bonne ligne + // Injecter la nouvelle vue sous la ligne du bouton cliqué, + // en mémorisant epr_id et range_id pour le toggle suivant row.insertAdjacentHTML('afterend', data.html); + + // Stocker les identifiants sur la vue injectée pour pouvoir détecter + // le 2e clic sur le même œil + let newView = row.nextElementSibling; + if (newView && newView.classList.contains('epr-row-view')) { + newView.dataset.eprId = epr_id; + newView.dataset.rangeId = range_id; + } }); return;