638 lines
32 KiB
PHP
638 lines
32 KiB
PHP
{{-- Menu laterale dinamico basato su permessi utente --}}
|
|
<div class="sidebar bg-dark text-white" id="sidebar">
|
|
<div class="sidebar-header p-3 border-bottom border-secondary">
|
|
<div class="d-flex align-items-center">
|
|
<div class="text-center me-2" style="width: 40px; height: 40px; background: linear-gradient(135deg, #2563eb, #0284c7); border-radius: 8px; display: flex; align-items: center; justify-content: center;">
|
|
<i class="fas fa-building text-white fa-lg"></i>
|
|
</div>
|
|
<div>
|
|
<h5 class="mb-0 text-white">NetGesCon</h5>
|
|
<small class="text-muted">Gestione Condominiale</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sidebar-content">
|
|
{{-- Informazioni utente con switch ruoli --}}
|
|
<div class="user-info p-3 border-bottom border-secondary">
|
|
<div class="d-flex align-items-center">
|
|
<div class="avatar me-2">
|
|
<i class="fas fa-user-circle fa-2x text-info"></i>
|
|
</div>
|
|
<div class="flex-grow-1">
|
|
<div class="fw-medium">{{ auth()->user()->name ?? 'Utente' }}</div>
|
|
|
|
{{-- Switch ruoli se l'utente ha ruoli multipli --}}
|
|
@if(isset($userRoles) && count($userRoles) > 1)
|
|
<div class="dropdown mt-1">
|
|
<button class="btn btn-sm btn-outline-light dropdown-toggle w-100" type="button" data-bs-toggle="dropdown">
|
|
<small>{{ ucfirst(str_replace('_', ' ', $activeRole ?? $userRole ?? 'user')) }}</small>
|
|
</button>
|
|
<ul class="dropdown-menu w-100">
|
|
@foreach($userRoles as $role)
|
|
<li>
|
|
<a class="dropdown-item {{ $role === ($activeRole ?? $userRole) ? 'active' : '' }}"
|
|
href="{{ route('switch.role', $role) }}">
|
|
@switch($role)
|
|
@case('super_admin')
|
|
<i class="fas fa-crown text-danger me-2"></i>Super Admin
|
|
@break
|
|
@case('amministratore')
|
|
<i class="fas fa-user-tie text-warning me-2"></i>Amministratore
|
|
@break
|
|
@case('collaboratore')
|
|
<i class="fas fa-users text-primary me-2"></i>Collaboratore
|
|
@break
|
|
@case('condomino')
|
|
<i class="fas fa-home text-success me-2"></i>Condomino
|
|
@break
|
|
@case('proprietario')
|
|
<i class="fas fa-key text-info me-2"></i>Proprietario
|
|
@break
|
|
@case('inquilino')
|
|
<i class="fas fa-user-clock text-secondary me-2"></i>Inquilino
|
|
@break
|
|
@case('manutentore')
|
|
<i class="fas fa-tools text-brown me-2"></i>Manutentore
|
|
@break
|
|
@default
|
|
<i class="fas fa-user me-2"></i>{{ ucfirst(str_replace('_', ' ', $role)) }}
|
|
@endswitch
|
|
</a>
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
@else
|
|
<small class="text-muted">{{ ucfirst(str_replace('_', ' ', $userRole ?? 'user')) }}</small>
|
|
@endif
|
|
</div>
|
|
|
|
{{-- Badge ruolo principale --}}
|
|
@if(($userRole ?? 'user') === 'super_admin')
|
|
<span class="badge bg-danger">SUPER</span>
|
|
@elseif(($userRole ?? 'user') === 'amministratore')
|
|
<span class="badge bg-warning">ADMIN</span>
|
|
@elseif(($userRole ?? 'user') === 'condomino')
|
|
<span class="badge bg-success">HOME</span>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
|
|
{{-- Menu Navigation --}}
|
|
<nav class="sidebar-nav">
|
|
<ul class="nav flex-column">
|
|
{{-- Dashboard - Sempre visibile se autenticato --}}
|
|
@if($userPermissions['dashboard'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('dashboard') }}" class="nav-link {{ request()->routeIs('dashboard') ? 'active' : '' }}">
|
|
<i class="fas fa-tachometer-alt me-2"></i>
|
|
<span>Dashboard</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Stabili --}}
|
|
@if($userPermissions['stabili'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#stabiliSubmenu" class="nav-link collapse-toggle dashboard-nav-link"
|
|
data-bs-toggle="collapse" role="button" aria-expanded="false" data-section="stabili">
|
|
<i class="fas fa-building me-2"></i>
|
|
<span>Gestione Stabili</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="stabiliSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="stabili" data-action="list">
|
|
<i class="fas fa-list me-2"></i>Lista Stabili
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['stabili'] !== 'limited')
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="stabili" data-action="create-stabile">
|
|
<i class="fas fa-plus me-2"></i>Nuovo Stabile
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Condomini --}}
|
|
@if($userPermissions['condomini'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#condominiSubmenu" class="nav-link collapse-toggle dashboard-nav-link"
|
|
data-bs-toggle="collapse" role="button" aria-expanded="false" data-section="condomini">
|
|
<i class="fas fa-users me-2"></i>
|
|
<span>Gestione Condomini</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="condominiSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="condomini" data-action="list">
|
|
<i class="fas fa-list me-2"></i>Lista Condomini
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['condomini'] !== 'limited')
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="condomini" data-action="create">
|
|
<i class="fas fa-plus me-2"></i>Nuovo Condomino
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Tickets --}}
|
|
@if($userPermissions['tickets'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#ticketsSubmenu" class="nav-link collapse-toggle dashboard-nav-link"
|
|
data-bs-toggle="collapse" role="button" aria-expanded="false" data-section="tickets">
|
|
<i class="fas fa-ticket-simple me-2"></i>
|
|
<span>Gestione Tickets</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="ticketsSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="tickets" data-action="list">
|
|
<i class="fas fa-list me-2"></i>Lista Tickets
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['tickets'] !== 'limited')
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="tickets" data-action="create">
|
|
<i class="fas fa-plus me-2"></i>Nuovo Ticket
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Unità --}}
|
|
@if($userPermissions['unita'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#unitaSubmenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-home me-2"></i>
|
|
<span>Unità Immobiliari</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="unitaSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.unita.index') }}" class="nav-link">
|
|
<i class="fas fa-list me-2"></i>Lista Unità
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['unita'] !== 'limited')
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.unita.create') }}" class="nav-link">
|
|
<i class="fas fa-plus me-2"></i>Nuova Unità
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Soggetti --}}
|
|
@if($userPermissions['soggetti'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#soggettiSubmenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-users me-2"></i>
|
|
<span>Gestione Soggetti</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="soggettiSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.soggetti.index') }}" class="nav-link {{ request()->routeIs('admin.soggetti.*') ? 'active' : '' }}">
|
|
<i class="fas fa-address-book me-2"></i>Anagrafica
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.fornitori.index') }}" class="nav-link {{ request()->routeIs('admin.fornitori.*') ? 'active' : '' }}">
|
|
<i class="fas fa-truck me-2"></i>Fornitori
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Contabilità --}}
|
|
@if($userPermissions['contabilita'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#contabilitaSubmenu" class="nav-link collapse-toggle dashboard-nav-link"
|
|
data-bs-toggle="collapse" role="button" aria-expanded="false" data-section="contabilita">
|
|
<i class="fas fa-calculator me-2"></i>
|
|
<span>Contabilità</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="contabilitaSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="contabilita" data-action="movimenti">
|
|
<i class="fas fa-exchange-alt me-2"></i>Movimenti
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="contabilita" data-action="bilanci">
|
|
<i class="fas fa-chart-bar me-2"></i>Bilanci
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Fatture Acquisto --}}
|
|
@if($userPermissions['fatture_acquisto'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.fatture-acquisto.index') }}" class="nav-link">
|
|
<i class="fas fa-file-invoice me-2"></i>
|
|
<span>Fatture Acquisto</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Fatture Emesse --}}
|
|
@if($userPermissions['fatture_emesse'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.fatture-emesse.index') }}" class="nav-link">
|
|
<i class="fas fa-file-invoice-dollar me-2"></i>
|
|
<span>Fatture Emesse</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Rate --}}
|
|
@if($userPermissions['rate'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.rate.index') }}" class="nav-link">
|
|
<i class="fas fa-money-bill-wave me-2"></i>
|
|
<span>Gestione Rate</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Assemblee --}}
|
|
@if($userPermissions['assemblee'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#assemblee Submenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-users-cog me-2"></i>
|
|
<span>Assemblee</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="assemblee Submenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.assemblee.index') }}" class="nav-link">
|
|
<i class="fas fa-gavel me-2"></i>Lista Assemblee
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['calendario'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.calendario.index') }}" class="nav-link">
|
|
<i class="fas fa-calendar me-2"></i>Calendario
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Area Manutentori --}}
|
|
@if($userPermissions['manutentori'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#manutentoriSubmenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-tools me-2"></i>
|
|
<span>Area Manutentori</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="manutentoriSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link disabled" title="Dashboard Manutenzioni - Funzionalità in sviluppo">
|
|
<i class="fas fa-wrench me-2"></i>Dashboard Manutenzioni
|
|
</a>
|
|
</li>
|
|
@if($userPermissions['xml_fatture'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link disabled" title="Preparazione XML - Funzionalità in sviluppo">
|
|
<i class="fas fa-file-code me-2"></i>Preparazione XML
|
|
</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Gestione Documentale --}}
|
|
@if($userPermissions['documenti'] ?? true)
|
|
<li class="nav-item">
|
|
<a href="#documentiSubmenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-file-archive me-2"></i>
|
|
<span>Gestione Documentale</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="documentiSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="protocollo">
|
|
<i class="fas fa-stamp me-2"></i>Protocollo Generale
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="archivio-stabili">
|
|
<i class="fas fa-building me-2"></i>Archivio Stabili
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="archivio-gestionale">
|
|
<i class="fas fa-folder-open me-2"></i>Archivio Gestionale
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="etichette-barcode">
|
|
<i class="fas fa-barcode me-2"></i>Etichette & Barcode
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="controllo-integrita">
|
|
<i class="fas fa-shield-alt me-2"></i>Controllo Integrità
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="documenti" data-action="ricerca-avanzata">
|
|
<i class="fas fa-search me-2"></i>Ricerca Avanzata
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Separatore --}}
|
|
@if($userPermissions['amministrazione'] ?? false)
|
|
<li class="nav-divider my-2"></li>
|
|
@endif
|
|
|
|
{{-- Amministrazione --}}
|
|
@if($userPermissions['amministrazione'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#adminSubmenu" class="nav-link collapse-toggle" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-cog me-2"></i>
|
|
<span>Amministrazione</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="adminSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
@if($userPermissions['gestione_permessi'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.permissions.index') }}" class="nav-link">
|
|
<i class="fas fa-user-shield me-2"></i>Gestione Permessi
|
|
</a>
|
|
</li>
|
|
@endif
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.configurazioni.index') }}" class="nav-link">
|
|
<i class="fas fa-sliders-h me-2"></i>Configurazioni
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('admin.backup.index') }}" class="nav-link">
|
|
<i class="fas fa-database me-2"></i>Backup Sistema
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Super Admin --}}
|
|
@if($userPermissions['super_admin'] ?? false)
|
|
<li class="nav-item">
|
|
<a href="#superAdminSubmenu" class="nav-link collapse-toggle text-danger" data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-crown me-2"></i>
|
|
<span>Super Admin</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon"></i>
|
|
</a>
|
|
<div class="collapse" id="superAdminSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="superadmin" data-action="dashboard">
|
|
<i class="fas fa-tachometer-alt me-2"></i>Dashboard SuperAdmin
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="superadmin" data-action="comuni">
|
|
<i class="fas fa-map-marked-alt me-2"></i>Gestione Comuni
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="superadmin" data-action="import-data">
|
|
<i class="fas fa-file-import me-2"></i>Import Dati Legacy
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="superadmin" data-action="archivi-comuni">
|
|
<i class="fas fa-archive me-2"></i>Archivi Comuni
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link dashboard-nav-link" data-section="superadmin" data-action="validazione-dati">
|
|
<i class="fas fa-check-double me-2"></i>Validazione Dati
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link text-muted disabled" title="Impersonifica - Funzionalità in sviluppo">
|
|
<i class="fas fa-mask me-2"></i>Impersonifica Utente
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link text-muted disabled" title="Log Sistema - Funzionalità in sviluppo">
|
|
<i class="fas fa-file-alt me-2"></i>Log Sistema
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link text-muted disabled" title="Stato Sistema - Funzionalità in sviluppo">
|
|
<i class="fas fa-heartbeat me-2"></i>Stato Sistema
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
|
|
{{-- Menu SuperAdmin - Solo per Super-Admin --}}
|
|
@if(auth()->user()->hasRole('super-admin'))
|
|
<li class="nav-item">
|
|
<hr class="border-secondary my-2">
|
|
<a href="#superadminSubmenu" class="nav-link collapse-toggle"
|
|
data-bs-toggle="collapse" role="button" aria-expanded="false">
|
|
<i class="fas fa-crown me-2 text-warning"></i>
|
|
<span class="text-warning fw-bold">SuperAdmin</span>
|
|
<i class="fas fa-chevron-down ms-auto collapse-icon text-warning"></i>
|
|
</a>
|
|
<div class="collapse" id="superadminSubmenu">
|
|
<ul class="nav flex-column ms-3">
|
|
<li class="nav-item">
|
|
<a href="{{ route('superadmin.dashboard') }}" class="nav-link">
|
|
<i class="fas fa-crown me-2 text-warning"></i>Dashboard SuperAdmin
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('superadmin.archivi.index') }}" class="nav-link">
|
|
<i class="fas fa-database me-2"></i>Archivi Sistema
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('superadmin.comuni-italiani.index') }}" class="nav-link">
|
|
<i class="fas fa-city me-2"></i>Comuni Italiani
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('superadmin.users.index') }}" class="nav-link">
|
|
<i class="fas fa-users me-2"></i>Gestione Utenti
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="{{ route('superadmin.impostazioni.index') }}" class="nav-link">
|
|
<i class="fas fa-cog me-2"></i>Impostazioni Sistema
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
|
|
{{-- Footer sidebar --}}
|
|
<div class="sidebar-footer p-3 border-top border-secondary mt-auto">
|
|
<div class="d-flex align-items-center justify-content-between">
|
|
<div class="d-flex align-items-center">
|
|
<form method="POST" action="{{ route('logout') }}" class="d-inline">
|
|
@csrf
|
|
<button type="submit" class="btn btn-outline-light btn-sm">
|
|
<i class="fas fa-sign-out-alt me-1"></i>Logout
|
|
</button>
|
|
</form>
|
|
</div>
|
|
<div class="text-muted">
|
|
<small>v1.0</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- CSS specifico per il menu --}}
|
|
<style>
|
|
.sidebar {
|
|
width: 280px;
|
|
height: 100vh;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
z-index: 1000;
|
|
display: flex;
|
|
flex-direction: column;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.sidebar-content {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.sidebar .nav-link {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
padding: 0.75rem 1rem;
|
|
border-radius: 0;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.sidebar .nav-link:hover {
|
|
color: white;
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.sidebar .nav-link.active {
|
|
color: white;
|
|
background-color: var(--bs-primary);
|
|
}
|
|
|
|
.sidebar .nav-divider {
|
|
height: 1px;
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
margin: 0.5rem 1rem;
|
|
}
|
|
|
|
.collapse-icon {
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
.collapse-toggle[aria-expanded="true"] .collapse-icon {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.avatar {
|
|
width: 40px;
|
|
height: 40px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.sidebar {
|
|
transform: translateX(-100%);
|
|
}
|
|
|
|
.sidebar.show {
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
</style>
|
|
|
|
{{-- JavaScript per gestione menu --}}
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Gestione collassi menu
|
|
const collapseToggles = document.querySelectorAll('.collapse-toggle');
|
|
collapseToggles.forEach(toggle => {
|
|
toggle.addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
const targetId = this.getAttribute('href').substring(1);
|
|
const targetElement = document.getElementById(targetId);
|
|
|
|
if (targetElement) {
|
|
const bsCollapse = new bootstrap.Collapse(targetElement);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Mobile menu toggle
|
|
const mobileToggle = document.getElementById('mobile-menu-toggle');
|
|
const sidebar = document.getElementById('sidebar');
|
|
|
|
if (mobileToggle && sidebar) {
|
|
mobileToggle.addEventListener('click', function() {
|
|
sidebar.classList.toggle('show');
|
|
});
|
|
}
|
|
});
|
|
</script>
|