4.6 KiB
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
- Creare file in
sections/nuova-sezione.blade.php - Aggiungere la sezione ai permessi in
menu-helpers.blade.php - Includere nel
sidebar.blade.phpcon 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
Funzionalità Footer
- Links supporto e contatti
- Apertura sito web
Note Implementazione
- Cache Laravel: Dopo modifiche eseguire
php artisan optimize:clear - Permessi: Il sistema è pronto per integrazione con Auth Laravel
- Ruoli: Attualmente usa ruolo fisso, modificare per utilizzare
auth()->user()->role - Responsive: Testare su dispositivi mobili
- 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