Skip to content

Commit 4a5c98f

Browse files
committed
fix: espansione sottomenu
1 parent 30e3743 commit 4a5c98f

2 files changed

Lines changed: 46 additions & 10 deletions

File tree

assets/src/css/style.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2898,6 +2898,12 @@ nav .nav-sidebar:not(.search-results-list) > .nav-item:last-child {
28982898
/* Menu che sono solo contenitori (senza link) - cursore normale */
28992899
.nav-sidebar .nav-link[data-widget="treeview"]:not([data-has-submenu="true"]) {
29002900
cursor: default;
2901+
pointer-events: none; /* Disabilita completamente i click sui menu contenitori */
2902+
}
2903+
2904+
/* Riabilita i click solo sulla freccia per i menu contenitori */
2905+
.nav-sidebar .nav-link[data-widget="treeview"]:not([data-has-submenu="true"]) .fa-angle-left {
2906+
pointer-events: auto;
29012907
}
29022908

29032909
/* Aumenta l'area cliccabile della freccia */

assets/src/js/base/sidebar.js

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@
1717
*/
1818

1919
$(document).ready(function () {
20+
// Disabilita completamente il comportamento predefinito di AdminLTE per i treeview
21+
// Rimuove tutti gli event listener di AdminLTE sui menu treeview
22+
$(document).off('click.lte.treeview', '[data-widget="treeview"]');
23+
24+
// Disabilita anche eventuali gestori già attaccati
25+
$('.nav-sidebar [data-widget="treeview"]').off('click.lte.treeview');
26+
2027
// Menu ordinabile
2128
if (!globals.is_mobile) {
2229
const menu = sortable(".nav-sidebar", {
@@ -39,22 +46,33 @@ $(document).ready(function () {
3946
}
4047
}
4148

42-
// Gestione click sull'intero link del menu per navigare al modulo
43-
$(document).on('click', '.nav-sidebar .nav-link[data-has-submenu="true"]', function(e) {
44-
// Se il click è sulla freccia, non fare nulla (lascia che gestisca il toggle)
45-
if ($(e.target).hasClass('fa-angle-left')) {
49+
// Gestione generale per tutti i menu con sottomenu - previene l'espansione automatica
50+
// Usa event capturing per intercettare prima di AdminLTE
51+
document.addEventListener('click', function(e) {
52+
const target = e.target;
53+
const navLink = target.closest('.nav-sidebar .nav-link[data-widget="treeview"]');
54+
55+
if (!navLink) return;
56+
57+
// Se il click è sulla freccia, lascia che il gestore specifico gestisca il toggle
58+
if (target.classList.contains('fa-angle-left') || target.closest('.fa-angle-left')) {
4659
return;
4760
}
4861

62+
// Previeni sempre l'espansione automatica del menu
4963
e.preventDefault();
5064
e.stopPropagation();
51-
52-
const href = $(this).attr('href');
53-
54-
if (href && href !== 'javascript:;' && href !== '#') {
55-
window.location.href = href;
65+
e.stopImmediatePropagation();
66+
67+
// Se il menu ha un modulo associato (data-has-submenu="true"), naviga al modulo
68+
if (navLink.getAttribute('data-has-submenu') === 'true') {
69+
const href = navLink.getAttribute('href');
70+
if (href && href !== 'javascript:;' && href !== '#') {
71+
window.location.href = href;
72+
}
5673
}
57-
});
74+
// Per i menu contenitori (senza modulo), non fare nulla - solo la freccia può espanderli
75+
}, true); // true = usa event capturing
5876

5977
// Gestione click sull'icona freccia per toggle del menu
6078
$(document).on('click', '.nav-sidebar .nav-link[data-widget="treeview"] .fa-angle-left', function(e) {
@@ -140,6 +158,18 @@ $(document).ready(function () {
140158
}, 100);
141159
}
142160
});
161+
162+
// Disabilita definitivamente AdminLTE treeview dopo il caricamento
163+
setTimeout(function() {
164+
// Rimuove tutti i gestori di AdminLTE sui treeview
165+
$(document).off('click', '[data-widget="treeview"]');
166+
$('.nav-sidebar [data-widget="treeview"]').off('click');
167+
168+
// Disabilita anche il widget treeview di AdminLTE se presente
169+
if (typeof $.fn.Treeview !== 'undefined') {
170+
$('.nav-sidebar').off('click.lte.treeview');
171+
}
172+
}, 100);
143173
});
144174

145175
/**

0 commit comments

Comments
 (0)