netgescon-master/netgescon-laravel/resources/views/components/menu/sidebar_backup_old.blade.php

1642 lines
77 KiB
PHP

{{--
========================================
SIDEBAR MENU MODULARE NETGESCON
========================================
Sidebar completamente modulare con gestione permessi,
componenti separati e stili/JS esterni.
Struttura:
- Header (logo, data, news ticker)
- Notifiche e quick actions
- Menu navigation con permessi
- Footer con info utente
Autore: NetGesCon Development Team
Data: 2024
========================================
--}}
{{-- Include helpers per gestione permessi --}}
@include('components.menu.sections.menu-helpers')
{{-- Sidebar container principale --}}
<div class="netgescon-sidebar d-flex flex-column h-100" id="netgesconSidebar">
{{-- Header con Logo, Data e News --}}
@include('components.menu.sections.header')
{{-- Notifiche e Quick Actions --}}
@include('components.menu.sections.notifications')
{{-- Menu Navigation principale --}}
<nav class="sidebar-nav flex-fill overflow-auto" role="navigation" aria-label="Menu principale NetGesCon">
<ul class="nav nav-pills flex-column p-2">
{{-- Dashboard - Sempre visibile --}}
@if(canUserAccessMenu('dashboard'))
@include('components.menu.sections.dashboard')
@endif
{{-- Stabili - Solo amministratori e superiori --}}
@if(canUserAccessMenu('stabili'))
@include('components.menu.sections.stabili')
@endif
{{-- Condomini - Solo amministratori e superiori --}}
@if(canUserAccessMenu('condomini'))
@include('components.menu.sections.condomini')
@endif
{{-- Contabilità - Solo ruoli economici --}}
@if(canUserAccessMenu('contabilita'))
@include('components.menu.sections.contabilita')
@endif
{{-- Fiscale - Solo ruoli economici --}}
@if(canUserAccessMenu('fiscale'))
@include('components.menu.sections.fiscale')
@endif
{{-- Menu Semplici - Comunicazioni, tickets, etc --}}
@if(canUserAccessAnyMenu(['comunicazioni', 'tickets', 'assemblee']))
@include('components.menu.sections.menu-semplici')
@endif
</ul>
</nav>
{{-- Footer con info utente e versione --}}
@include('components.menu.sections.footer')
</div>
{{-- Include CSS e JS esterni per la sidebar --}}
@push('styles')
<link rel="stylesheet" href="{{ asset('css/sidebar.css') }}">
@endpush
@push('scripts')
<script src="{{ asset('js/sidebar.js') }}"></script>
@endpush
.dark .sidebar .collapse .nav-link:hover {
background-color: rgba(55, 65, 81, 0.3);
color: #d1d5db;
}
/* Responsive */
@media (max-width: 768px) {
.sidebar {
position: fixed;
top: 0;
left: -100%;
width: 280px;
z-index: 1050;
transition: left 0.3s ease;
}
.sidebar.show {
left: 0;
}
}
</style>
{{-- JavaScript per funzionalità sidebar --}}
<script>
document.addEventListener('DOMContentLoaded', function() {
// Gestione toggle menu collassabili
const collapseElements = document.querySelectorAll('[data-bs-toggle="collapse"]');
collapseElements.forEach(element => {
element.addEventListener('click', function() {
const icon = this.querySelector('.fa-chevron-down, .fa-chevron-up');
if (icon) {
icon.classList.toggle('fa-chevron-down');
icon.classList.toggle('fa-chevron-up');
}
});
});
// Gestione menu attivo
const navLinks = document.querySelectorAll('.sidebar .nav-link[href]');
const currentPath = window.location.pathname;
navLinks.forEach(link => {
if (link.getAttribute('href') === currentPath) {
link.classList.add('active');
// Espandi il menu parent se è collassato
const parentCollapse = link.closest('.collapse');
if (parentCollapse) {
parentCollapse.classList.add('show');
const toggleButton = document.querySelector(`[href="#${parentCollapse.id}"]`);
if (toggleButton) {
toggleButton.setAttribute('aria-expanded', 'true');
}
}
}
});
// Aggiorna data e ora ogni minuto
function updateDateTime() {
const now = new Date();
const dateElement = document.getElementById('current-date');
const timeElement = document.getElementById('current-time');
if (dateElement) {
dateElement.textContent = now.toLocaleDateString('it-IT');
}
if (timeElement) {
timeElement.textContent = now.toLocaleTimeString('it-IT', { hour: '2-digit', minute: '2-digit' });
}
}
updateDateTime();
setInterval(updateDateTime, 60000);
// News ticker animation
const newsTicker = document.querySelector('.news-ticker');
if (newsTicker) {
newsTicker.addEventListener('animationend', function() {
this.style.animation = 'none';
setTimeout(() => {
this.style.animation = 'scroll-left 30s linear infinite';
}, 50);
});
}
});
</script>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#condominiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-users me-2"></i>
<span>Condomini</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="condominiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Condomini</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-user-plus me-2"></i>Nuovo Condomino</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-home me-2"></i>Abbinamento Unità</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-percentage me-2"></i>Tabelle Millesimi</a>
</li>
</ul>
</div>
</li>
{{-- Fornitori --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#fornitoriMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-truck me-2"></i>
<span>Fornitori</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="fornitoriMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Fornitori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-invoice me-2"></i>Fatture Elettroniche</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tools me-2"></i>Manutentori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tags me-2"></i>Tag e Categorie</a>
</li>
</ul>
</div>
</li>
{{-- Contabilità --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#contabilitaMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-calculator me-2"></i>
<span>Contabilità</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="contabilitaMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-receipt me-2"></i>Rate</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-line me-2"></i>Bilanci</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-exchange-alt me-2"></i>Movimenti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-search me-2"></i>Revisioni</a>
</li>
</ul>
</div>
</li>
{{-- Altri menu principali --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-users-cog me-2"></i>
<span>Assemblee</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-university me-2"></i>
<span>Risorse Economiche</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-envelope me-2"></i>
<span>Comunicazioni</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-key me-2"></i>
<span>Affitti</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-folder-open me-2"></i>
<span>Pratiche</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-file-invoice-dollar me-2"></i>
<span>Fiscale</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-tint me-2"></i>
<span>Consumi</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-ticket-simple me-2"></i>
<span>Tickets</span>
</a>
</li>
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-cog me-2"></i>
<span>Impostazioni</span>
</a>
</li>
</ul>
</nav>
{{-- Footer --}}
<div class="p-2 border-top border-primary text-center">
<small class="text-muted">
© 2025 NetGesCon - v2.1.0<br>
<a href="#" class="text-decoration-none">Supporto</a>
<a href="#" class="text-decoration-none">Contatti</a>
<a href="#" class="text-decoration-none">www.netgescon.it</a>
</small>
</div>
</div>
<script>
// Aggiorna data e ora
function updateDateTime() {
const now = new Date();
const options = {
weekday: 'short',
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
};
document.getElementById('datetime-display').textContent = now.toLocaleDateString('it-IT', options);
}
// Aggiorna ogni minuto
updateDateTime();
setInterval(updateDateTime, 60000);
// News ticker animation
function animateNews() {
const newsText = document.getElementById('news-text');
if (newsText) {
const news = [
'🌤️ Meteo: Sereno 18°C • 📈 FTSE MIB +0.5% • 🏛️ Nuove agevolazioni fiscali 2025',
'⚡ BREAKING: Nuovo decreto condomini • 💰 EURO/USD 1.095 • 🏠 Mercato immobiliare +2.3%',
'🎯 Scadenza F24: 16/01 • 📊 Inflazione 0.8% • 🔧 Bonus ristrutturazioni prorogato'
];
let index = 0;
setInterval(() => {
index = (index + 1) % news.length;
newsText.textContent = news[index];
}, 10000);
}
}
// Avvia animazione news
animateNews();
// Funzione per aprire pagina news
function openNewsPage() {
window.open('https://www.ansa.it/sito/notizie/economia/economia.html', '_blank');
}
</script>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="stabiliMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Stabili</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Stabile</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-pie me-2"></i>Piano dei Conti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-id-card me-2"></i>Anagrafiche</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-home me-2"></i>Unità Immobiliari</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-percentage me-2"></i>Tabelle Millesimi</a>
</li>
</ul>
</div>
</li>
{{-- Condomini (ex Soggetti) --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#condominiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-users me-2"></i>
<span>Condomini</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="condominiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Condomini</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-user-plus me-2"></i>Nuovo Condomino</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-home me-2"></i>Abbinamento Unità</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-users-cog me-2"></i>Proprietari/Inquilini</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-address-book me-2"></i>Rubrica Completa</a>
</li>
</ul>
</div>
</li>
{{-- Fornitori --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#fornitoriMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-truck me-2"></i>
<span>Fornitori</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="fornitoriMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Fornitori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Fornitore</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-invoice me-2"></i>Fatture Elettroniche</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tools me-2"></i>Manutentori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tags me-2"></i>Categorie e Tag</a>
</li>
</ul>
</div>
</li>
{{-- Contabilità --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#contabilitaMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-calculator me-2"></i>
<span>Contabilità</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="contabilitaMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-receipt me-2"></i>Rate Condominiali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-invoice-dollar me-2"></i>Fatture</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-university me-2"></i>Movimenti Bancari</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-line me-2"></i>Bilanci</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-search me-2"></i>Revisioni Contabili</a>
</li>
</ul>
</div>
</li>
{{-- Risorse Economiche --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#risorseMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-coins me-2"></i>
<span>Risorse Economiche</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="risorseMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-university me-2"></i>Conti Bancari</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-cash-register me-2"></i>Cassa Contanti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fab fa-paypal me-2"></i>PayPal</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-credit-card me-2"></i>Carte/PostePay</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-pie me-2"></i>Riepilogo Risorse</a>
</li>
</ul>
</div>
</li>
{{-- Assemblee --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#assembleMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-users-cog me-2"></i>
<span>Assemblee</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="assembleMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-calendar me-2"></i>Programma Assemblee</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuova Assemblea</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-alt me-2"></i>Verbali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-vote-yea me-2"></i>Delibere</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-bell me-2"></i>Convocazioni</a>
</li>
</ul>
</div>
</li>
{{-- Affitti --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#affittiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-key me-2"></i>
<span>Affitti</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="affittiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Contratti Attivi</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Contratto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-euro-sign me-2"></i>Canoni</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-calendar-times me-2"></i>Scadenze</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-certificate me-2"></i>Certificazioni</a>
</li>
</ul>
</div>
</li>
{{-- Pratiche --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#praticheMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-folder-open me-2"></i>
<span>Pratiche</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="praticheMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-balance-scale me-2"></i>Pratiche Legali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-shield-alt me-2"></i>Pratiche Assicurative</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-contract me-2"></i>Pratiche Fiscali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-building me-2"></i>Pratiche Edilizie</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-archive me-2"></i>Archivio Pratiche</a>
</li>
</ul>
</div>
</li>
{{-- Fiscale --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#fiscaleMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-file-invoice me-2"></i>
<span>Fiscale</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="fiscaleMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-receipt me-2"></i>F24 e Versamenti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-percentage me-2"></i>Ritenute d'Acconto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-export me-2"></i>Certificazioni</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-exclamation-triangle me-2"></i>Cartelle Esattoriali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-book me-2"></i>Normative e Leggi</a>
</li>
</ul>
</div>
</li>
{{-- Consumi --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#consumiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-tint me-2"></i>
<span>Consumi</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="consumiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tint me-2"></i>Acqua</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-fire me-2"></i>Riscaldamento</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-bolt me-2"></i>Energia Elettrica</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-burn me-2"></i>Gas</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-line me-2"></i>Ripartizioni</a>
</li>
</ul>
</div>
</li>
{{-- Comunicazioni --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#comunicazioniMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-envelope me-2"></i>
<span>Comunicazioni</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="comunicazioniMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-users me-2"></i>Gruppi di Contatto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-envelope me-2"></i>Email/PEC</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-mail-bulk me-2"></i>Raccomandate</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-sms me-2"></i>SMS</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-archive me-2"></i>Archivio Comunicazioni</a>
</li>
</ul>
</div>
</li>
{{-- Documenti --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#documentiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-folder me-2"></i>
<span>Gestione Documentale</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="documentiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-upload me-2"></i>Carica Documenti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-search me-2"></i>Ricerca Documenti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tags me-2"></i>Categorie</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-share-alt me-2"></i>Condivisione</a>
</li>
</ul>
</div>
</li>
{{-- Tickets --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-ticket-simple me-2"></i>
<span>Tickets</span>
</a>
</li>
{{-- Impostazioni --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#impostazioniMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-cog me-2"></i>
<span>Impostazioni</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="impostazioniMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-user-cog me-2"></i>Profilo Utente</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-users-cog me-2"></i>Gestione Collaboratori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-shield-alt me-2"></i>Permessi</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-database me-2"></i>Backup</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-undo me-2"></i>Ripristino</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-sync me-2"></i>Aggiornamenti</a>
</li>
</ul>
</div>
</li>
</ul>
</nav>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="stabiliMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Stabili</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Stabile</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-pie me-2"></i>Piano dei Conti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-address-book me-2"></i>Anagrafiche</a>
</li>
</ul>
</div>
</li>
{{-- Condomini (ex Soggetti) --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#condominiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-users me-2"></i>
<span>Condomini</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="condominiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Condomini</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Condomino</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-home me-2"></i>Unità Immobiliari</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-table me-2"></i>Tabelle Millesimi</a>
</li>
</ul>
</div>
</li>
{{-- Fornitori --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#fornitoriMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-truck me-2"></i>
<span>Fornitori</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="fornitoriMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Elenco Fornitori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-invoice me-2"></i>Fatture Elettroniche</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tools me-2"></i>Manutentori</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tags me-2"></i>Tag e Categorie</a>
</li>
</ul>
</div>
</li>
{{-- Contabilità --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#contabilitaMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-calculator me-2"></i>
<span>Contabilità</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="contabilitaMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-line me-2"></i>Bilanci</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-receipt me-2"></i>Rate Condominio</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-university me-2"></i>Estratti Conto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-search me-2"></i>Revisioni Contabili</a>
</li>
</ul>
</div>
</li>
{{-- Tickets --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#ticketsMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-ticket-simple me-2"></i>
<span>Tickets</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="ticketsMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Tutti i Tickets</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-plus me-2"></i>Nuovo Ticket</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-exclamation-triangle me-2"></i>Urgenti</a>
</li>
</ul>
</div>
</li>
{{-- Assemblee --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#assembleMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-users-cog me-2"></i>
<span>Assemblee</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="assembleMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-calendar me-2"></i>Calendario Assemblee</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-alt me-2"></i>Verbali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-gavel me-2"></i>Delibere</a>
</li>
</ul>
</div>
</li>
{{-- Risorse Economiche --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#risorseMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-coins me-2"></i>
<span>Risorse Economiche</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="risorseMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-university me-2"></i>Conti Bancari</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-wallet me-2"></i>Cassa Contanti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fab fa-paypal me-2"></i>PayPal</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-bar me-2"></i>Riepilogo Liquidità</a>
</li>
</ul>
</div>
</li>
{{-- Affitti --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#affittiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-key me-2"></i>
<span>Affitti</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="affittiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-list me-2"></i>Contratti Attivi</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-contract me-2"></i>Nuovo Contratto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-euro-sign me-2"></i>Canoni</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-certificate me-2"></i>Cedolare Secca</a>
</li>
</ul>
</div>
</li>
{{-- Pratiche Legali --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#legaliMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-balance-scale me-2"></i>
<span>Pratiche Legali</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="legaliMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-gavel me-2"></i>Contenziosi</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-handshake me-2"></i>Recupero Crediti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-user-tie me-2"></i>Avvocati</a>
</li>
</ul>
</div>
</li>
{{-- Pratiche Assicurative --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#assicurazioniMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-shield-alt me-2"></i>
<span>Assicurazioni</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="assicurazioniMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-contract me-2"></i>Polizze Attive</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-exclamation-circle me-2"></i>Sinistri</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-calendar-check me-2"></i>Scadenze</a>
</li>
</ul>
</div>
</li>
{{-- Fiscale --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#fiscaleMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-file-invoice-dollar me-2"></i>
<span>Fiscale</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="fiscaleMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-receipt me-2"></i>Ritenute d'Acconto</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-alt me-2"></i>Modelli F24</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-exclamation-triangle me-2"></i>Cartelle Esattoriali</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-certificate me-2"></i>Certificazioni</a>
</li>
</ul>
</div>
</li>
{{-- Consumi --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#consumiMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-tachometer-alt me-2"></i>
<span>Consumi</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="consumiMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tint me-2"></i>Acqua</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-fire me-2"></i>Riscaldamento</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-bolt me-2"></i>Energia Elettrica</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-chart-line me-2"></i>Statistiche</a>
</li>
</ul>
</div>
</li>
{{-- Documentale e Comunicazioni --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#documentaleMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-folder-open me-2"></i>
<span>Documentale</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="documentaleMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-file-alt me-2"></i>Archivio Documenti</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-envelope me-2"></i>Comunicazioni</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-mail-bulk me-2"></i>Raccomandate</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-users me-2"></i>Gruppi Contatti</a>
</li>
</ul>
</div>
</li>
{{-- Impostazioni --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#impostazioniMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-cog me-2"></i>
<span>Impostazioni</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="impostazioniMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-user me-2"></i>Profilo Utente</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-database me-2"></i>Backup</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-upload me-2"></i>Ripristini</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-tools me-2"></i>Configurazioni</a>
</li>
</ul>
</div>
</li>
{{-- Legislazione --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center text-dark" href="#">
<i class="fas fa-book me-2"></i>
<span>Legislazione</span>
</a>
</li>
{{-- Help --}}
<li class="nav-item mb-1">
<a class="nav-link d-flex align-items-center justify-content-between text-dark"
data-bs-toggle="collapse" href="#helpMenu" role="button">
<div class="d-flex align-items-center">
<i class="fas fa-question-circle me-2"></i>
<span>Help</span>
</div>
<i class="fas fa-chevron-down"></i>
</a>
<div class="collapse" id="helpMenu">
<ul class="nav nav-pills flex-column ms-3">
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-book-open me-2"></i>Manuale Utente</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fab fa-youtube me-2"></i>Video Tutorial</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" href="#"><i class="fas fa-headset me-2"></i>Supporto</a>
</li>
</ul>
</div>
</li>
</ul>
</nav>
</div>
[
'icon' => 'fa-solid fa-home',
'label' => 'Dashboard',
'route' => $panelPrefix . 'dashboard',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore', 'condomino'],
],
[
'icon' => 'fa-solid fa-building',
'label' => 'Stabili',
'route' => $panelPrefix . 'stabili.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
'expandable' => true,
'id' => 'stabili-menu',
'submenu' => [
['icon' => 'fa-solid fa-door-open', 'label' => 'Unità Immobiliari', 'route' => $panelPrefix . 'unitaImmobiliari.index'],
['icon' => 'fa-solid fa-address-book', 'label' => 'Anagrafica Condominiale', 'route' => $panelPrefix . 'anagrafica-condominiale.index'],
['icon' => 'fa-solid fa-table', 'label' => 'Tabelle Millesimali', 'route' => $panelPrefix . 'tabelle-millesimali.index'],
]
],
[
'icon' => 'fa-solid fa-users',
'label' => 'Soggetti',
'route' => $panelPrefix . 'soggetti.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-truck',
'label' => 'Fornitori',
'route' => $panelPrefix . 'fornitori.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-file-invoice',
'label' => 'Rate e Incassi',
'route' => $panelPrefix . 'rate.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
'expandable' => true,
'id' => 'rate-menu',
'submenu' => [
['icon' => 'fa-solid fa-file-plus', 'label' => 'Emissione Rate', 'route' => $panelPrefix . 'rate.emissione'],
['icon' => 'fa-solid fa-money-check', 'label' => 'Incassi e Pagamenti', 'route' => $panelPrefix . 'incassi.index'],
['icon' => 'fa-solid fa-chart-line', 'label' => 'Estratti Conto', 'route' => $panelPrefix . 'estratti-conto.index'],
]
],
[
'icon' => 'fa-solid fa-file-invoice-dollar',
'label' => 'Contabilità',
'route' => $panelPrefix . 'contabilita.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'contabilita-menu',
'submenu' => [
['icon' => 'fa-solid fa-book', 'label' => 'Mastro Generale', 'route' => $panelPrefix . 'mastro.index'],
['icon' => 'fa-solid fa-balance-scale', 'label' => 'Bilanci', 'route' => $panelPrefix . 'bilanci.index'],
['icon' => 'fa-solid fa-calculator', 'label' => 'Ripartizioni', 'route' => $panelPrefix . 'ripartizioni.index'],
]
],
[
'icon' => 'fa-solid fa-percent',
'label' => 'Gestione Fiscale',
'route' => $panelPrefix . 'fiscale.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'fiscale-menu',
'submenu' => [
['icon' => 'fa-solid fa-file-pdf', 'label' => 'Modelli F24', 'route' => $panelPrefix . 'f24.index'],
['icon' => 'fa-solid fa-coins', 'label' => 'Ritenute d\'Acconto', 'route' => $panelPrefix . 'ritenute.index'],
['icon' => 'fa-solid fa-file-alt', 'label' => 'Cartelle Esattoriali', 'route' => $panelPrefix . 'cartelle.index'],
['icon' => 'fa-solid fa-certificate', 'label' => 'Rendite Condominiali', 'route' => $panelPrefix . 'rendite.index'],
]
],
[
'icon' => 'fa-solid fa-home',
'label' => 'Gestione Affitti',
'route' => $panelPrefix . 'affitti.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'affitti-menu',
'submenu' => [
['icon' => 'fa-solid fa-file-contract', 'label' => 'Contratti', 'route' => $panelPrefix . 'contratti.index'],
['icon' => 'fa-solid fa-money-bill', 'label' => 'Canoni', 'route' => $panelPrefix . 'canoni.index'],
['icon' => 'fa-solid fa-calendar-times', 'label' => 'Scadenze', 'route' => $panelPrefix . 'scadenze-affitti.index'],
]
],
[
'icon' => 'fa-solid fa-gavel',
'label' => 'Pratiche Legali',
'route' => $panelPrefix . 'legali.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
],
[
'icon' => 'fa-solid fa-shield-alt',
'label' => 'Pratiche Assicurative',
'route' => $panelPrefix . 'assicurazioni.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
],
[
'icon' => 'fa-solid fa-users-cog',
'label' => 'Assemblee',
'route' => $panelPrefix . 'assemblee.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'assemblee-menu',
'submenu' => [
['icon' => 'fa-solid fa-calendar-plus', 'label' => 'Convocazioni', 'route' => $panelPrefix . 'convocazioni.index'],
['icon' => 'fa-solid fa-vote-yea', 'label' => 'Verbali', 'route' => $panelPrefix . 'verbali.index'],
['icon' => 'fa-solid fa-chart-pie', 'label' => 'Delibere', 'route' => $panelPrefix . 'delibere.index'],
]
],
[
'icon' => 'fa-solid fa-university',
'label' => 'Risorse Economiche',
'route' => $panelPrefix . 'risorse.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'risorse-menu',
'submenu' => [
['icon' => 'fa-solid fa-credit-card', 'label' => 'Conti Bancari', 'route' => $panelPrefix . 'banche.index'],
['icon' => 'fa-solid fa-wallet', 'label' => 'Cassa Contanti', 'route' => $panelPrefix . 'cassa.index'],
['icon' => 'fab fa-paypal', 'label' => 'PayPal/Digital', 'route' => $panelPrefix . 'digital.index'],
]
],
[
'icon' => 'fa-solid fa-folder-open',
'label' => 'Gestione Documentale',
'route' => $panelPrefix . 'documenti.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
'expandable' => true,
'id' => 'documenti-menu',
'submenu' => [
['icon' => 'fa-solid fa-envelope', 'label' => 'Email/PEC', 'route' => $panelPrefix . 'comunicazioni.email'],
['icon' => 'fa-solid fa-mail-bulk', 'label' => 'Raccomandate', 'route' => $panelPrefix . 'comunicazioni.raccomandate'],
['icon' => 'fa-solid fa-archive', 'label' => 'Archivio', 'route' => $panelPrefix . 'archivio.index'],
]
],
[
'icon' => 'fa-solid fa-tint',
'label' => 'Gestione Consumi',
'route' => $panelPrefix . 'consumi.index',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'consumi-menu',
'submenu' => [
['icon' => 'fa-solid fa-water', 'label' => 'Acqua', 'route' => $panelPrefix . 'consumi.acqua'],
['icon' => 'fa-solid fa-fire', 'label' => 'Riscaldamento', 'route' => $panelPrefix . 'consumi.riscaldamento'],
['icon' => 'fa-solid fa-lightbulb', 'label' => 'Elettricità', 'route' => $panelPrefix . 'consumi.elettricita'],
]
],
[
'icon' => 'fa-solid fa-calendar-check',
'label' => 'Calendario',
'route' => $panelPrefix . 'calendario.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-address-book',
'label' => 'Rubrica',
'route' => $panelPrefix . 'rubrica.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-ticket-alt',
'label' => 'Tickets',
'route' => $panelPrefix . 'tickets.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-cog',
'label' => 'Impostazioni',
'route' => $panelPrefix . 'impostazioni',
'roles' => ['admin', 'super-admin', 'amministratore'],
'expandable' => true,
'id' => 'impostazioni-menu',
'submenu' => [
['icon' => 'fa-solid fa-database', 'label' => 'Backup', 'route' => $panelPrefix . 'backup.index'],
['icon' => 'fa-solid fa-exchange-alt', 'label' => 'Revisioni Contabili', 'route' => $panelPrefix . 'revisioni.index'],
['icon' => 'fa-solid fa-users', 'label' => 'Gruppi Comunicazione', 'route' => $panelPrefix . 'gruppi.index'],
]
],
[
'icon' => 'fa-solid fa-balance-scale',
'label' => 'Legislazione',
'route' => $panelPrefix . 'legislazione.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore'],
],
[
'icon' => 'fa-solid fa-question-circle',
'label' => 'Help',
'route' => $panelPrefix . 'help.index',
'roles' => ['admin', 'super-admin', 'amministratore', 'collaboratore', 'condomino'],
],
];
@endphp
<nav class="h-100 d-flex flex-column bg-warning border-end border-4 border-primary py-3 px-2 shadow">
<!-- Header stabile/anno -->
<div class="px-2 pt-2 pb-3 bg-warning-subtle border-bottom border-primary position-sticky top-0" style="z-index: 20;">
<div class="d-flex flex-column align-items-center">
<small class="text-muted mb-1">{{ $annoAttivo }}/{{ $gestione }}</small>
<div class="d-flex align-items-center gap-2 bg-light rounded px-2 py-1 shadow-sm" style="min-width: 160px;">
<div class="d-flex flex-column me-1">
<button id="prev-stabile" class="btn btn-primary btn-sm p-1 mb-1" style="width: 24px; height: 24px;" title="Stabile precedente">
<i class="fas fa-chevron-up" style="font-size: 10px;"></i>
</button>
<button id="next-stabile" class="btn btn-primary btn-sm p-1" style="width: 24px; height: 24px;" title="Stabile successivo">
<i class="fas fa-chevron-down" style="font-size: 10px;"></i>
</button>
</div>
<button id="current-stabile" class="btn btn-outline-primary btn-sm flex-fill text-start" title="Cambia stabile">
{{ $stabileAttivo }}
</button>
</div>
<button id="toggle-darkmode" class="btn btn-dark btn-sm mt-2" title="Attiva/disattiva modalità scura">
<i class="fas fa-moon me-1"></i>
<span>Dark</span>
</button>
</div>
</div>
<!-- Menu principale -->
<div class="flex-fill overflow-auto">
<div class="list-group list-group-flush">
@foreach($mainMenu as $item)
@if(array_intersect($item['roles'], $userRoles))
@if(isset($item['expandable']) && $item['expandable'])
<!-- Menu item with submenu -->
<div class="menu-item-wrapper">
<button class="list-group-item list-group-item-action d-flex align-items-center justify-content-between border-0 {{ Route::currentRouteName() == $item['route'] ? 'active' : '' }}"
type="button"
data-bs-toggle="collapse"
data-bs-target="#submenu-{{ $item['id'] }}"
aria-expanded="false"
aria-controls="submenu-{{ $item['id'] }}">
<div class="d-flex align-items-center">
<i class="{{ $item['icon'] }} me-2"></i>
<span>{{ $item['label'] }}</span>
</div>
<i class="fas fa-chevron-down"></i>
</button>
<!-- Submenu -->
<div class="collapse" id="submenu-{{ $item['id'] }}">
<div class="list-group list-group-flush ms-3">
@foreach($item['submenu'] as $subItem)
@if(array_intersect($subItem['roles'], $userRoles))
@if(Route::has($subItem['route']))
<a href="{{ route($subItem['route']) }}"
class="list-group-item list-group-item-action py-2 border-0 {{ Route::currentRouteName() == $subItem['route'] ? 'active' : '' }}">
<i class="{{ $subItem['icon'] }} me-2 text-sm"></i>
<span class="small">{{ $subItem['label'] }}</span>
</a>
@else
<div class="list-group-item py-2 text-muted border-0" title="Funzionalità in sviluppo">
<i class="{{ $subItem['icon'] }} me-2 text-sm"></i>
<span class="small">{{ $subItem['label'] }}</span>
<i class="fas fa-code ms-auto small"></i>
</div>
@endif
@endif
@endforeach
</div>
</div>
</div>
@else
<!-- Regular menu item -->
@if(Route::has($item['route']))
<a href="{{ route($item['route']) }}"
class="list-group-item list-group-item-action d-flex align-items-center border-0 {{ Route::currentRouteName() == $item['route'] ? 'active' : '' }}">
<i class="{{ $item['icon'] }} me-2"></i>
<span>{{ $item['label'] }}</span>
</a>
@else
<div class="list-group-item py-2 text-muted d-flex align-items-center border-0" title="Funzionalità in sviluppo">
<i class="{{ $item['icon'] }} me-2"></i>
<span>{{ $item['label'] }}</span>
<i class="fas fa-code ms-auto small"></i>
</div>
@endif
@endif
@endif
@endforeach
</div>
</div>
<!-- Footer -->
<div class="mt-auto pt-3 border-top">
<div class="text-center">
<small class="text-muted">NetGesCon &copy; {{ date('Y') }}</small>
<br>
<small class="text-muted">v0.7.0-dev</small>
</div>
</div>
</nav>
<!-- Modale ricerca stabile -->
<div class="modal fade" id="modal-stabile" tabindex="-1" aria-labelledby="modalStabileLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalStabileLabel">Cerca stabile</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<input type="text" id="input-stabile" class="form-control mb-3" placeholder="Digita il nome dello stabile...">
<div id="result-stabile" class="list-group" style="max-height: 200px; overflow-y: auto;"></div>
</div>
</div>
</div>
</div>
<script>
// Dati stabili (temporanei per test)
const stabili = ["Condominio Roma Centro", "Residence Milano Nord", "Palazzina Napoli Est", "Villa Torino Ovest"];
let currentIndex = 0;
// Dark mode toggle
const darkBtn = document.getElementById('toggle-darkmode');
if (darkBtn) {
darkBtn.addEventListener('click', function() {
document.documentElement.classList.toggle('dark');
const isDark = document.documentElement.classList.contains('dark');
localStorage.setItem('darkMode', isDark ? 'enabled' : 'disabled');
});
}
// Inizializza dark mode da localStorage
if (localStorage.getItem('darkMode') === 'enabled') {
document.documentElement.classList.add('dark');
}
// Gestione stabile
function updateStabile() {
const button = document.getElementById('current-stabile');
if (button) {
button.textContent = stabili[currentIndex] || 'Nessuno selezionato';
}
}
// Bottoni navigazione stabile
const prevBtn = document.getElementById('prev-stabile');
const nextBtn = document.getElementById('next-stabile');
const currentBtn = document.getElementById('current-stabile');
if (prevBtn) {
prevBtn.onclick = function() {
currentIndex = (currentIndex - 1 + stabili.length) % stabili.length;
updateStabile();
};
}
if (nextBtn) {
nextBtn.onclick = function() {
currentIndex = (currentIndex + 1) % stabili.length;
updateStabile();
};
}
if (currentBtn) {
currentBtn.onclick = function() {
const modal = new bootstrap.Modal(document.getElementById('modal-stabile'));
modal.show();
document.getElementById('input-stabile').value = '';
document.getElementById('result-stabile').innerHTML = '';
};
}
// Ricerca stabile
const inputStabile = document.getElementById('input-stabile');
if (inputStabile) {
inputStabile.oninput = function(e) {
const val = e.target.value.toLowerCase();
const results = stabili.filter(s => s.toLowerCase().includes(val));
const resultDiv = document.getElementById('result-stabile');
resultDiv.innerHTML = results.map(s =>
`<button type="button" class="list-group-item list-group-item-action" onclick="selectStabile('${s}')">${s}</button>`
).join('');
};
}
// Selezione stabile
window.selectStabile = function(nome) {
document.getElementById('current-stabile').textContent = nome;
const modal = bootstrap.Modal.getInstance(document.getElementById('modal-stabile'));
modal.hide();
// Chiamata AJAX per aggiornare la sessione stabile_corrente
fetch('/session/stabile', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
},
body: JSON.stringify({ stabile: nome })
}).then(res => {
if(res.ok) window.location.reload();
});
};
// Inizializza stabile
updateStabile();
</script>
<style>
/* Sidebar responsive */
.sidebar-responsive {
position: fixed;
top: 0;
left: 0;
width: 280px;
height: 100vh;
z-index: 1000;
transition: transform 0.3s ease;
}
/* Responsive per tablet e mobile */
@media (max-width: 768px) {
.sidebar-responsive {
transform: translateX(-100%);
}
.sidebar-responsive.show {
transform: translateX(0);
}
}
/* Spaziatura del contenuto principale */
@media (min-width: 769px) {
.main-content {
margin-left: 280px;
}
}
/* Dark mode support */
.dark .sidebar-responsive {
background-color: #1f2937 !important;
color: #fff !important;
}
.dark .sidebar-responsive .list-group-item {
background-color: #374151 !important;
color: #fff !important;
border-color: #4b5563 !important;
}
.dark .sidebar-responsive .list-group-item:hover {
background-color: #4b5563 !important;
}
.dark .sidebar-responsive .list-group-item.active {
background-color: #3b82f6 !important;
border-color: #3b82f6 !important;
}
</style>