# πŸ—‚οΈ 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') @endsection ``` ### **Esempio Completo per Fornitori**: ```blade @section('menu-tabs') @endsection ``` --- ## πŸ—οΈ **PATTERN 2: SUB-MENU NAVIGAZIONE** ### 🎯 **Utilizzo**: Pagine dettaglio con tabs (Show views) ### **Template Tabs Detail**: ```blade
@yield('tab-dati-generali')
@yield('tab-dettagli')
@yield('tab-documenti')
``` ### **Esempio per Fornitore Detail**: ```blade ``` --- ## πŸ’‘ **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 ``` ### **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') @endsection ``` ### **Menu Esteso 6 Tabs**: ```blade @section('menu-tabs') @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`**