f
This commit is contained in:
parent
9f90d4a63a
commit
c7afcfafe4
|
|
@ -762,65 +762,22 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
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 => {
|
document.querySelectorAll('[data-submenu-target]').forEach(link => {
|
||||||
link.addEventListener('click', function (e) {
|
link.addEventListener('click', function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
const targetId = this.getAttribute('data-submenu-target');
|
const targetId = this.getAttribute('data-submenu-target');
|
||||||
const targetEl = document.getElementById(targetId);
|
const targetEl = document.getElementById(targetId);
|
||||||
|
|
||||||
if (!targetEl) return;
|
if (targetEl) {
|
||||||
|
const instance = bootstrap.Collapse.getOrCreateInstance(targetEl, {
|
||||||
// Si la sidebar est réduite, on l'ouvre
|
parent: '.nav-section', // Ferme les autres quand on en ouvre un
|
||||||
if (document.body.classList.contains("sidebar-collapsed")) {
|
toggle: false
|
||||||
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();
|
|
||||||
});
|
});
|
||||||
|
instance.toggle();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user