{{-- Nuovo menu sidebar completo e organizzato logicamente --}} @php $userRoles = auth()->check() ? auth()->user()->getRoleNames()->toArray() : []; $panelPrefix = ''; if (in_array('super-admin', $userRoles)) { $panelPrefix = 'superadmin.'; } elseif (in_array('admin', $userRoles) || in_array('amministratore', $userRoles)) { $panelPrefix = 'admin.'; } // MENU ORGANIZZATO IN CATEGORIE LOGICHE $mainMenu = [ // 1. DASHBOARD & OVERVIEW [ 'icon' => 'fa-solid fa-home', 'label' => __('menu.dashboard'), 'route' => $panelPrefix . 'dashboard', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore', 'condomino'], ], // 2. ANAGRAFICA (Dati di base) [ 'icon' => 'fa-solid fa-address-book', 'label' => __('menu.anagrafica'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], 'expandable' => true, 'id' => 'anagrafica-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-building', 'label' => __('menu.stabili'), 'route' => $panelPrefix . 'stabili.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-door-open', 'label' => __('menu.unita_immobiliari'), 'route' => $panelPrefix . 'unitaImmobiliari.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-users', 'label' => __('menu.soggetti'), 'route' => $panelPrefix . 'soggetti.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-id-card', 'label' => __('menu.anagrafica_condominiale'), 'route' => $panelPrefix . 'anagrafica-condominiale.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-key', 'label' => __('menu.diritti_reali'), 'route' => $panelPrefix . 'diritti-reali.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-table', 'label' => __('menu.tabelle_millesimali'), 'route' => $panelPrefix . 'tabelle-millesimali.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-address-book', 'label' => __('menu.rubrica'), 'route' => $panelPrefix . 'rubrica.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-truck', 'label' => __('menu.fornitori'), 'route' => $panelPrefix . 'fornitori.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], ] ], // 3. CONTRATTI & LOCAZIONI [ 'icon' => 'fa-solid fa-file-contract', 'label' => __('menu.contratti_locazioni'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], 'expandable' => true, 'id' => 'contratti-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-file-signature', 'label' => __('menu.contratti_locazione'), 'route' => $panelPrefix . 'contratti-locazione.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], // Placeholder per future funzionalità contratti [ 'icon' => 'fa-solid fa-calendar-dollar', 'label' => __('menu.canoni_scadenze'), 'route' => '#', // TODO: Implementare 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], // 4. CONTABILITÀ & FINANZE [ 'icon' => 'fa-solid fa-file-invoice-dollar', 'label' => __('menu.contabilita'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore'], 'expandable' => true, 'id' => 'contabilita-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-chart-line', 'label' => __('menu.movimenti'), 'route' => $panelPrefix . 'contabilita.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-balance-scale', 'label' => __('menu.bilanci'), 'route' => $panelPrefix . 'bilanci.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-university', 'label' => __('menu.banche'), 'route' => $panelPrefix . 'banche.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-exchange-alt', 'label' => __('menu.movimenti_bancari'), 'route' => $panelPrefix . 'movimenti-bancari.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-file-import', 'label' => __('menu.import_export_xml'), 'route' => $panelPrefix . 'contabilita.import-xml', 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], // 5. SPESE & RIPARTIZIONI [ 'icon' => 'fa-solid fa-calculator', 'label' => __('menu.gestione_spese'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore'], 'expandable' => true, 'id' => 'spese-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-receipt', 'label' => __('menu.voci_spesa'), 'route' => $panelPrefix . 'voci-spesa.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-chart-pie', 'label' => __('menu.ripartizione_spese'), 'route' => $panelPrefix . 'ripartizioni-spesa.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-credit-card', 'label' => __('menu.piano_rateizzazione'), 'route' => $panelPrefix . 'piani-rateizzazione.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], [ 'icon' => 'fa-solid fa-calendar-check', 'label' => __('menu.rate'), 'route' => $panelPrefix . 'rate.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], // 6. ASSEMBLEE & DELIBERE [ 'icon' => 'fa-solid fa-users-cog', 'label' => __('menu.assemblee'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore'], 'expandable' => true, 'id' => 'assemblee-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-calendar-alt', 'label' => __('menu.calendario_assemblee'), 'route' => $panelPrefix . 'assemblee.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], // Placeholder per future funzionalità assemblee [ 'icon' => 'fa-solid fa-file-alt', 'label' => __('menu.convocazioni'), 'route' => '#', // TODO: Implementare 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], // 7. PREVENTIVI & PIANIFICAZIONE [ 'icon' => 'fa-solid fa-clipboard-list', 'label' => __('menu.preventivi_planning'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore'], 'expandable' => true, 'id' => 'preventivi-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-file-invoice', 'label' => __('menu.preventivi'), 'route' => $panelPrefix . 'preventivi.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], // Placeholder per future funzionalità preventivi ] ], // 8. DOCUMENTI & ARCHIVIO [ 'icon' => 'fa-solid fa-folder-open', 'label' => __('menu.documenti'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], 'expandable' => true, 'id' => 'documenti-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-paperclip', 'label' => __('menu.allegati'), 'route' => $panelPrefix . 'allegati.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-file-alt', 'label' => __('menu.documenti_ufficiali'), 'route' => $panelPrefix . 'documenti.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'], ], [ 'icon' => 'fa-solid fa-folder', 'label' => __('menu.file_manager'), 'route' => $panelPrefix . 'file-manager.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], // 9. GESTIONI AMMINISTRATIVE [ 'icon' => 'fa-solid fa-cogs', 'label' => __('menu.gestioni'), 'route' => $panelPrefix . 'gestioni.index', 'roles' => ['admin', 'super-admin', 'amministratore'], ], // 10. SUPPORTO & ASSISTENZA [ 'icon' => 'fa-solid fa-life-ring', 'label' => __('menu.supporto'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore', 'condomino'], 'expandable' => true, 'id' => 'supporto-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-ticket-alt', 'label' => __('menu.tickets'), 'route' => $panelPrefix . 'tickets.index', 'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore', 'condomino'], ], ] ], // 11. SISTEMA & CONFIGURAZIONI [ 'icon' => 'fa-solid fa-cog', 'label' => __('menu.sistema'), 'route' => '#', 'roles' => ['admin', 'super-admin', 'amministratore'], 'expandable' => true, 'id' => 'sistema-menu', 'submenu' => [ [ 'icon' => 'fa-solid fa-users-cog', 'label' => __('menu.utenti'), 'route' => $panelPrefix . 'users.index', 'roles' => ['admin', 'super-admin'], ], [ 'icon' => 'fa-solid fa-user-shield', 'label' => __('menu.ruoli'), 'route' => '#', // TODO: Implementare RoleController avanzato 'roles' => ['admin', 'super-admin'], ], [ 'icon' => 'fa-solid fa-key', 'label' => __('menu.api_tokens'), 'route' => $panelPrefix . 'api-tokens.index', 'roles' => ['admin', 'super-admin'], ], [ 'icon' => 'fa-solid fa-sliders-h', 'label' => __('menu.impostazioni'), 'route' => $panelPrefix . 'impostazioni', 'roles' => ['admin', 'super-admin', 'amministratore'], ], ] ], ]; @endphp {{-- Header fisso con info stabile --}} {{ $annoAttivo }}/{{ $gestione }} {{ $stabileAttivo }} {{ __('Dark Mode') }} {{-- Menu principale scrollabile --}} @foreach($mainMenu as $menuItem) @if(auth()->check() && array_intersect($userRoles, $menuItem['roles'])) @if(isset($menuItem['expandable']) && $menuItem['expandable']) {{-- Menu espandibile --}} {{ $menuItem['label'] }} {{-- Sottomenu --}} @foreach($menuItem['submenu'] as $subItem) @if(auth()->check() && array_intersect($userRoles, $subItem['roles'])) {{ $subItem['label'] }} @if($subItem['route'] == '#') TODO @endif @endif @endforeach @else {{-- Menu normale --}} {{ $menuItem['label'] }} @if($menuItem['route'] == '#') TODO @endif @endif @endif @endforeach {{-- Footer con info utente --}} {{ substr(auth()->user()->name ?? 'U', 0, 1) }} {{ auth()->user()->name ?? 'Utente' }} {{ implode(', ', $userRoles) }} {{-- Alpine.js per interattività menu --}} @push('scripts') @endpush
{{ auth()->user()->name ?? 'Utente' }}
{{ implode(', ', $userRoles) }}