This commit is contained in:
KONE SOREL 2026-01-12 20:22:19 +00:00
parent 9f90d4a63a
commit c7afcfafe4

View File

@ -762,65 +762,22 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<script>
document.addEventListener("DOMContentLoaded", function () {
// 1. Gestion des clics sur les menus parents
// On initialise les menus SANS les forcer à s'ouvrir
document.querySelectorAll('[data-submenu-target]').forEach(link => {
link.addEventListener('click', function (e) {
e.preventDefault();
const targetId = this.getAttribute('data-submenu-target');
const targetEl = document.getElementById(targetId);
if (!targetEl) return;
// Si la sidebar est réduite, on l'ouvre
if (document.body.classList.contains("sidebar-collapsed")) {
document.body.classList.remove("sidebar-collapsed");
}
// Utilisation de l'instance unique Bootstrap
const instance = bootstrap.Collapse.getOrCreateInstance(targetEl, {
parent: '.nav-section', // Permet de fermer les autres menus
toggle: false
});
instance.toggle();
});
});
// 2. Événements Bootstrap pour le style et les flèches
document.querySelectorAll('.nav-submenu').forEach(submenu => {
submenu.addEventListener('show.bs.collapse', function () {
const btn = document.querySelector(`[data-submenu-target="${this.id}"]`);
if (btn) {
btn.classList.add('active');
btn.setAttribute('aria-expanded', 'true');
}
});
submenu.addEventListener('hide.bs.collapse', function () {
const btn = document.querySelector(`[data-submenu-target="${this.id}"]`);
if (btn) {
btn.classList.remove('active');
btn.setAttribute('aria-expanded', 'false');
}
});
});
// 3. Gestion du bouton de réduction de la sidebar
const toggleSidebarBtn = document.querySelector(".toggle-sidebar-btn");
if (toggleSidebarBtn) {
toggleSidebarBtn.addEventListener("click", function () {
const isCollapsed = document.body.classList.toggle("sidebar-collapsed");
if (isCollapsed) {
// On ferme proprement tous les sous-menus ouverts
document.querySelectorAll(".nav-submenu.show").forEach(openMenu => {
const inst = bootstrap.Collapse.getInstance(openMenu);
if (inst) inst.hide();
if (targetEl) {
const instance = bootstrap.Collapse.getOrCreateInstance(targetEl, {
parent: '.nav-section', // Ferme les autres quand on en ouvre un
toggle: false
});
instance.toggle();
}
});
}
});
});
</script>
</body>