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