netgescon-master/netgescon-laravel/docs/sidebar-modulare.md

4.6 KiB

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.

@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.

@if(canUserAccessAnyMenu(['contabilita', 'fiscale']))
    <div>Sezione Economica</div>
@endif

hasMinimumRole($requiredRole, $userRole = null)

Verifica se l'utente ha un ruolo minimo richiesto.

@if(hasMinimumRole('amministratore'))
    <div>Solo amministratori e superiori</div>
@endif

getCurrentUserRole()

Ottiene il ruolo dell'utente corrente.

<span>Ruolo: {{ ucfirst(getCurrentUserRole()) }}</span>

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:
@if(canUserAccessMenu('nuova-sezione'))
    @include('components.menu.sections.nuova-sezione')
@endif

Modificare Permessi

Editare l'array $permissions in menu-helpers.blade.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
  • 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