📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
159 lines
4.7 KiB
Markdown
159 lines
4.7 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
|