f
This commit is contained in:
parent
9f90d4a63a
commit
c7afcfafe4
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user