# Documentazione Sidebar Modulare NetGesCon ## Struttura Directory ``` resources/views/components/menu/ ├── sidebar.blade.php # File principale sidebar └── sections/ # Componenti modulari ├── header.blade.php # Header con logo, data, news ├── dashboard.blade.php # Menu Dashboard ├── stabili.blade.php # Menu Stabili (con sottomenu) ├── condomini.blade.php # Menu Condomini (con sottomenu) ├── contabilita.blade.php # Menu Contabilità (con sottomenu) ├── fiscale.blade.php # Menu Fiscale (con sottomenu) ├── menu-semplici.blade.php # Menu senza sottomenu ├── footer.blade.php # Footer con info utente e app ├── menu-helpers.blade.php # Helper per gestione permessi └── permissions.blade.php # Configurazione permessi ``` ## Sistema Permessi ### Ruoli Definiti - **super_admin**: Accesso completo a tutto - **admin**: Accesso quasi completo - **amministratore**: Gestione condomini standard - **collaboratore**: Operazioni base - **ragioniere**: Solo sezioni economiche - **condomino**: Solo comunicazioni e tickets - **guest**: Nessun accesso ### Funzioni Helper #### `canUserAccessMenu($menuSection, $userRole = null)` Verifica se l'utente può accedere a una specifica sezione. ```php @if(canUserAccessMenu('stabili')) @include('components.menu.sections.stabili') @endif ``` #### `canUserAccessAnyMenu($menuSections, $userRole = null)` Verifica se l'utente può accedere ad almeno una delle sezioni specificate. ```php @if(canUserAccessAnyMenu(['contabilita', 'fiscale']))
Sezione Economica
@endif ``` #### `hasMinimumRole($requiredRole, $userRole = null)` Verifica se l'utente ha un ruolo minimo richiesto. ```php @if(hasMinimumRole('amministratore'))
Solo amministratori e superiori
@endif ``` #### `getCurrentUserRole()` Ottiene il ruolo dell'utente corrente. ```php Ruolo: {{ ucfirst(getCurrentUserRole()) }} ``` ## Sezioni Menu Disponibili ### Sempre Incluse - **header**: Logo, data/ora, news ticker - **footer**: Info utente e applicazione ### Con Controllo Permessi - **dashboard**: Dashboard principale - **stabili**: Gestione stabili e unità immobiliari - **condomini**: Gestione anagrafica condomini - **contabilita**: Bilanci, movimenti, contabilità - **fiscale**: Adempimenti fiscali, F24, dichiarazioni - **assemblee**: Gestione assemblee condominiali - **risorse-economiche**: Gestione risorse economiche - **comunicazioni**: Sistema comunicazioni - **affitti**: Gestione contratti affitto - **pratiche**: Gestione pratiche burocratiche - **consumi**: Gestione consumi utenze - **tickets**: Sistema ticket supporto ## Personalizzazione ### Aggiungere Nuova Sezione 1. Creare file in `sections/nuova-sezione.blade.php` 2. Aggiungere la sezione ai permessi in `menu-helpers.blade.php` 3. Includere nel `sidebar.blade.php` con controllo permessi: ```php @if(canUserAccessMenu('nuova-sezione')) @include('components.menu.sections.nuova-sezione') @endif ``` ### Modificare Permessi Editare l'array `$permissions` in `menu-helpers.blade.php`: ```php $permissions = [ 'nuovo_ruolo' => [ 'dashboard', 'sezione1', 'sezione2' ], // ... ]; ``` ## Stili CSS ### Variabili Principali - Colore primario: `#fbbf24` (giallo NetGesCon) - Colore bordi: `#f59e0b` - Transizioni: `0.2s ease` ### Dark Mode Supporto completo per modalità scura con classe `.dark`. ### Responsive - Desktop: Sidebar fissa laterale - Mobile: Sidebar collassabile con overlay ## JavaScript Incluso ### Funzionalità Header - Aggiornamento automatico data/ora - News ticker con contenuti dinamici - Link a pagina news ### Funzionalità Menu - Toggle automatico sottomenu - Evidenziazione menu attivo - Gestione stati espansi/collassati ### Funzionalità Footer - Links supporto e contatti - Apertura sito web ## Note Implementazione 1. **Cache Laravel**: Dopo modifiche eseguire `php artisan optimize:clear` 2. **Permessi**: Il sistema è pronto per integrazione con Auth Laravel 3. **Ruoli**: Attualmente usa ruolo fisso, modificare per utilizzare `auth()->user()->role` 4. **Responsive**: Testare su dispositivi mobili 5. **Accessibilità**: Tutti i menu supportano navigazione da tastiera ## Roadmap Future - [ ] Integrazione con sistema autenticazione reale - [ ] Gestione permessi granulari per singole voci - [ ] Cache permessi per performance - [ ] Personalizzazione sidebar per utente - [ ] Temi personalizzabili - [ ] Menu contestuali - [ ] Breadcrumb automatici