netgescon-master/resources/views/test-sidebar-data.blade.php

160 lines
9.7 KiB
PHP

@extends('admin.layouts.netgescon')
@section('title', 'Test Sidebar con Dati Reali')
@section('content')
<div class="container-fluid">
<div class="row">
{{-- Sidebar --}}
<div class="col-md-3 sidebar bg-warning p-0">
@include('components.menu.sidebar')
</div>
{{-- Contenuto principale --}}
<div class="col-md-9">
<div class="p-4">
<h1>🎯 Test Sidebar con Dati Reali</h1>
<p class="text-muted">Verifica del collegamento dati e funzionalità sidebar modulare</p>
<hr>
<div class="row">
{{-- Statistiche Sidebar --}}
<div class="col-lg-6">
<div class="card">
<div class="card-header bg-primary text-white">
<h5><i class="fas fa-chart-bar me-2"></i>Statistiche Sidebar</h5>
</div>
<div class="card-body">
<h6>📊 Stabili</h6>
<ul class="list-unstyled">
<li>Totale: <strong>{{ $sidebarStats['stabili']['totale'] ?? 0 }}</strong></li>
<li>Attivi: <strong>{{ $sidebarStats['stabili']['attivi'] ?? 0 }}</strong></li>
<li>Unità libere: <strong>{{ $sidebarStats['stabili']['unita_libere'] ?? 0 }}</strong></li>
</ul>
<h6>👥 Condomini</h6>
<ul class="list-unstyled">
<li>Totale: <strong>{{ $sidebarStats['condomini']['totale'] ?? 0 }}</strong></li>
<li>Proprietari: <strong>{{ $sidebarStats['condomini']['proprietari'] ?? 0 }}</strong></li>
<li>Inquilini: <strong>{{ $sidebarStats['condomini']['inquilini'] ?? 0 }}</strong></li>
</ul>
<h6>🎫 Tickets</h6>
<ul class="list-unstyled">
<li>Aperti: <strong>{{ $sidebarStats['tickets']['aperti'] ?? 0 }}</strong></li>
<li>Urgenti: <strong class="text-danger">{{ $sidebarStats['tickets']['urgenti'] ?? 0 }}</strong></li>
<li>In lavorazione: <strong>{{ $sidebarStats['tickets']['in_lavorazione'] ?? 0 }}</strong></li>
</ul>
<h6>💰 Contabilità</h6>
<ul class="list-unstyled">
<li>Rate scadute: <strong class="text-warning">{{ $sidebarStats['contabilita']['rate_scadute'] ?? 0 }}</strong></li>
<li>Incassi mese: <strong class="text-success">{{ number_format($sidebarStats['contabilita']['incassi_mese'] ?? 0, 2, ',', '.') }}</strong></li>
<li>Movimenti mese: <strong>{{ $sidebarStats['contabilita']['movimenti_mese'] ?? 0 }}</strong></li>
</ul>
</div>
</div>
</div>
{{-- Dati Dashboard --}}
<div class="col-lg-6">
<div class="card">
<div class="card-header bg-success text-white">
<h5><i class="fas fa-tachometer-alt me-2"></i>Dati Dashboard Completi</h5>
</div>
<div class="card-body">
<h6>🏢 Stabili Dettagliati</h6>
<ul class="list-unstyled">
<li>Occupazione: <strong>{{ $dashboardData['stabili']['percentuale_occupazione'] ?? 0 }}%</strong></li>
<li>Unità occupate: <strong>{{ $dashboardData['stabili']['unita_occupate'] ?? 0 }}</strong></li>
<li>Unità totali: <strong>{{ $dashboardData['stabili']['unita_totali'] ?? 0 }}</strong></li>
</ul>
<h6>📈 Trend Contabilità</h6>
<ul class="list-unstyled">
<li>Trend incassi:
<strong class="{{ ($dashboardData['contabilita']['trend_incassi'] ?? 0) >= 0 ? 'text-success' : 'text-danger' }}">
{{ ($dashboardData['contabilita']['trend_incassi'] ?? 0) > 0 ? '+' : '' }}{{ $dashboardData['contabilita']['trend_incassi'] ?? 0 }}%
</strong>
</li>
<li>Rate del mese: <strong>{{ $dashboardData['contabilita']['rate_del_mese'] ?? 0 }}</strong></li>
</ul>
<h6>🎯 Performance Tickets</h6>
<ul class="list-unstyled">
<li>Risoluzione: <strong>{{ $dashboardData['tickets']['percentuale_risoluzione'] ?? 0 }}%</strong></li>
<li>Chiusi oggi: <strong>{{ $dashboardData['tickets']['chiusi_oggi'] ?? 0 }}</strong></li>
</ul>
<h6>⚙️ Sistema</h6>
<ul class="list-unstyled">
<li>Versione: <strong>{{ $dashboardData['sistema']['versione'] ?? 'N/A' }}</strong></li>
<li>Utenti attivi: <strong>{{ $dashboardData['sistema']['utenti_attivi'] ?? 0 }}</strong></li>
<li>Uptime: <strong>{{ $dashboardData['sistema']['uptime'] ?? 'N/A' }}</strong></li>
</ul>
</div>
</div>
</div>
</div>
<hr>
{{-- Test Funzioni --}}
<div class="card mt-4">
<div class="card-header bg-info text-white">
<h5><i class="fas fa-cogs me-2"></i>Test Funzionalità</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h6>📋 Menu Permissions</h6>
<ul class="list-unstyled">
<li>Dashboard: <span class="badge {{ canUserAccessMenu('dashboard') ? 'bg-success' : 'bg-danger' }}">{{ canUserAccessMenu('dashboard') ? 'SI' : 'NO' }}</span></li>
<li>Stabili: <span class="badge {{ canUserAccessMenu('stabili') ? 'bg-success' : 'bg-danger' }}">{{ canUserAccessMenu('stabili') ? 'SI' : 'NO' }}</span></li>
<li>Condomini: <span class="badge {{ canUserAccessMenu('condomini') ? 'bg-success' : 'bg-danger' }}">{{ canUserAccessMenu('condomini') ? 'SI' : 'NO' }}</span></li>
<li>Contabilità: <span class="badge {{ canUserAccessMenu('contabilita') ? 'bg-success' : 'bg-danger' }}">{{ canUserAccessMenu('contabilita') ? 'SI' : 'NO' }}</span></li>
<li>Tickets: <span class="badge {{ canUserAccessMenu('tickets') ? 'bg-success' : 'bg-danger' }}">{{ canUserAccessMenu('tickets') ? 'SI' : 'NO' }}</span></li>
</ul>
</div>
<div class="col-md-6">
<h6>👤 User Role</h6>
<p>Ruolo corrente: <strong class="text-primary">{{ ucfirst(App\Helpers\MenuHelper::getCurrentUserRole()) }}</strong></p>
<p>Livello minimo Admin: <span class="badge {{ hasMinimumRole('amministratore') ? 'bg-success' : 'bg-warning' }}">{{ hasMinimumRole('amministratore') ? 'SI' : 'NO' }}</span></p>
<p>Livello minimo Collaboratore: <span class="badge {{ hasMinimumRole('collaboratore') ? 'bg-success' : 'bg-warning' }}">{{ hasMinimumRole('collaboratore') ? 'SI' : 'NO' }}</span></p>
</div>
</div>
</div>
</div>
{{-- Azioni --}}
<div class="mt-4">
<a href="{{ route('admin.dashboard') }}" class="btn btn-primary">
<i class="fas fa-home me-2"></i>Vai alla Dashboard
</a>
<button class="btn btn-secondary" onclick="location.reload()">
<i class="fas fa-sync me-2"></i>Ricarica Dati
</button>
<button class="btn btn-warning" onclick="clearCache()">
<i class="fas fa-trash me-2"></i>Pulisci Cache
</button>
</div>
</div>
</div>
</div>
</div>
<script>
function clearCache() {
if (confirm('Sei sicuro di voler pulire la cache?')) {
fetch('/admin/clear-cache', { method: 'POST', headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' } })
.then(() => {
alert('Cache pulita con successo!');
location.reload();
})
.catch(() => alert('Errore durante la pulizia della cache'));
}
}
</script>
@endsection