# ποΈ PATTERN MENU E NAVIGAZIONE
## Template per menu e sub-menu standard
---
## ποΈ **PATTERN 1: MENU PRINCIPALE CON SUB-TABS**
### π― **Utilizzo**: Moduli principali (ContabilitΓ , Stabili, Condomini)
### **Template Menu Tabs**:
```blade
@section('menu-tabs')
Lista Principale
Nuovo Item
Reports
Configurazione
@endsection
```
### **Esempio Completo per Fornitori**:
```blade
@section('menu-tabs')
Lista Fornitori
Nuovo Fornitore
Categorie
Reports
@endsection
```
---
## ποΈ **PATTERN 2: SUB-MENU NAVIGAZIONE**
### π― **Utilizzo**: Pagine dettaglio con tabs (Show views)
### **Template Tabs Detail**:
```blade
Dati Generali
Dettagli
Documenti
@yield('tab-dati-generali')
@yield('tab-dettagli')
@yield('tab-documenti')
```
### **Esempio per Fornitore Detail**:
```blade
Anagrafica
Contatti
Documenti
Fatture
```
---
## π‘ **ICONE STANDARD PER MODULI**
### **Mapping Icone Consistency**:
```php
$moduleIcons = [
// Azioni Base
'list' => 'fas fa-list',
'create' => 'fas fa-plus',
'edit' => 'fas fa-edit',
'show' => 'fas fa-eye',
'delete' => 'fas fa-trash',
// Funzioni
'reports' => 'fas fa-chart-bar',
'config' => 'fas fa-cog',
'export' => 'fas fa-download',
'import' => 'fas fa-upload',
'search' => 'fas fa-search',
'filter' => 'fas fa-filter',
'print' => 'fas fa-print',
// Moduli Specifici
'fornitori' => 'fas fa-truck',
'contabilita' => 'fas fa-calculator',
'stabili' => 'fas fa-building',
'gestioni' => 'fas fa-calendar',
'documenti' => 'fas fa-file',
'anagrafica' => 'fas fa-user',
'fatture' => 'fas fa-euro-sign',
'categorie' => 'fas fa-tags',
// Stati
'attivo' => 'fas fa-check-circle',
'inattivo' => 'fas fa-times-circle',
'pending' => 'fas fa-clock',
'warning' => 'fas fa-exclamation-triangle',
'info' => 'fas fa-info-circle'
];
```
---
## π¨ **ACTIVE STATE MANAGEMENT**
### **Per Menu Principale (AdminLTE)**:
```blade
Lista Fornitori
```
### **Per Sub-Menu Detail (NetGescon)**:
```javascript
// JavaScript per tab switching (incluso in 05-css-javascript.md)
document.querySelectorAll('.netgescon-tab-btn').forEach(button => {
button.addEventListener('click', function() {
// Remove active from all
document.querySelectorAll('.netgescon-tab-btn').forEach(btn =>
btn.classList.remove('active')
);
document.querySelectorAll('.netgescon-tab-content').forEach(content =>
content.classList.remove('active')
);
// Add active to clicked
this.classList.add('active');
document.getElementById(this.dataset.tab).classList.add('active');
});
});
```
---
## π **TEMPLATE CONFIGURABILI**
### **Menu Standard 4 Tabs**:
```blade
@section('menu-tabs')
Lista
Nuovo
Reports
Config
@endsection
```
### **Menu Esteso 6 Tabs**:
```blade
@section('menu-tabs')
Lista
Nuovo
Categorie
Archivio
Reports
Config
@endsection
```
---
## π **IMPLEMENTAZIONE VELOCE**
### **Step by Step**:
1. **Copia template** menu dal pattern scelto
2. **Sostituisci MODULO** con nome del modulo
3. **Personalizza icone** in base alla funzione
4. **Configura routes** corrispondenti
5. **Testa navigazione** tra i tabs
6. **Applica CSS** (vedi file 05-css-javascript.md)
### **Routes da Creare**:
```php
// routes/admin.php
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('modulo', 'ModuloController');
Route::get('modulo/reports', ['ModuloController', 'reports'])->name('modulo.reports');
Route::get('modulo/config', ['ModuloController', 'config'])->name('modulo.config');
});
```
---
**π Prossimo file: `03-cards-statistiche.md`**