netgescon-master/_BACKUP_OLD_netgescon-laravel_INACTIVE/docs/sidebar-modulare.md

159 lines
4.6 KiB
Markdown

# 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']))
<div>Sezione Economica</div>
@endif
```
#### `hasMinimumRole($requiredRole, $userRole = null)`
Verifica se l'utente ha un ruolo minimo richiesto.
```php
@if(hasMinimumRole('amministratore'))
<div>Solo amministratori e superiori</div>
@endif
```
#### `getCurrentUserRole()`
Ottiene il ruolo dell'utente corrente.
```php
<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:
```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