@php $servers = $panoramica['servers'] ?? []; $nomiServer = array_column($servers, 'name', 'hostname'); $onlinePerServer = $this->onlinePerServer; $onlineTotale = count($onlineUsers); $onlineSconosciuti = $onlineTotale - array_sum(array_intersect_key($onlinePerServer, $nomiServer)); $ideale = (float) ($panoramica['carico_ideale_percentuale'] ?? 0); $percento = fn (float|int $valore): string => number_format((float) $valore, 0, ',', '.') . '%'; $piuCarico = collect($servers)->sortByDesc('quota_carico')->first(); $sbilanciato = ($panoramica['sbilanciamento'] ?? 0) > 10; $senzaDati = collect($servers)->sum('richieste_7g') === 0; $passaFiltro = fn (?string $server): bool => match ($filtroServer) { '' => true, '__sconosciuto__' => $server === null || !isset($nomiServer[$server]), default => $server === $filtroServer, }; $onlineFiltrati = array_filter($onlineUsers, fn (array $utente): bool => $passaFiltro($utente['current_server'])); $topFiltrati = array_filter($panoramica['top_utenti'] ?? [], fn (array $utente): bool => $passaFiltro($utente['server_effettivo'])); @endphp
@if(session()->has('message')) @endif @if(session()->has('error')) @endif @if(empty($servers))
Panoramica dei server non disponibile. Utenti online adesso: {{ $onlineTotale }}.
@else {{-- 1. Verdetto --}} @if($senzaDati)
Dati di carico in raccolta: la finestra è affidabile dopo 7 giorni dal deploy
@elseif($sbilanciato)
Sbilanciato: {{ $piuCarico['name'] }} ha il {{ $percento($piuCarico['quota_carico']) }} del carico, la quota ideale è {{ $percento($ideale) }}
@else
Distribuzione equilibrata
@endif {{-- 2. Card per server --}}
@foreach($servers as $server)

{{ $server['name'] }}

{{ $server['hostname'] }}
{{ $onlinePerServer[$server['hostname']] ?? 0 }} online adesso
Assegnati
{{ $server['assegnati'] }}
Attivi 7 giorni
{{ $server['attivi_7g'] }}
Picco orario
{{ $server['picco_orario'] }}
{{ $percento($server['quota_carico']) }} del carico, {{ $server['quota_carico'] > $ideale ? 'sopra' : 'non sopra' }} l'ideale ({{ $percento($ideale) }}, tacca nera)
@endforeach

Online in totale: {{ $onlineTotale }}. Senza restrizione di server: {{ $panoramica['senza_restrizione']['totale'] }} utenti, {{ $panoramica['senza_restrizione']['attivi_7g'] }} attivi negli ultimi 7 giorni. @if($onlineSconosciuti > 0) Online su server sconosciuto: {{ $onlineSconosciuti }}. @endif

{{-- 3. Andamento: i dati si aggiornano al reload della pagina --}}

Utenti unici per ora, ultime 48 ore

{{-- 4. Spostamenti suggeriti --}}

Spostamenti suggeriti

Lo spostamento vale dal prossimo login. I file in storage sono per nodo: il comportamento dei file di un utente spostato non è verificato.
@if(empty($panoramica['suggerimenti']))

Nessuno spostamento suggerito.

@else
@can('edit-users') @endcan @foreach($panoramica['suggerimenti'] as $mossa) @can('edit-users') @endcan @endforeach
Utente Richieste 7 giorni Da → aAzione
{{ $mossa['name'] }}
{{ $mossa['email'] }}
{{ number_format($mossa['richieste'], 0, ',', '.') }} {{ $nomiServer[$mossa['da']] ?? $mossa['da'] }} → {{ $nomiServer[$mossa['a']] ?? $mossa['a'] }}
@endif
{{-- 5. Filtro per le due tabelle seguenti --}}
@endif {{-- 6. Online adesso --}}

Online adesso ({{ count($onlineFiltrati) }})

@if(empty($onlineFiltrati))

Nessun utente online.

@else
@foreach($onlineFiltrati as $utente) @endforeach
Utente Su quale server è Server assegnato IP Ultima attività Azioni
{{ $utente['name'] }}
{{ $utente['email'] }}
{{ $utente['current_server_name'] ?? 'Sconosciuto' }} {{ $utente['server_name'] }} @if($utente['fuori_posto']) fuori posto @endif {{ $utente['ip_address'] }} {{ $utente['last_activity']->diffForHumans() }}
{{ $utente['last_activity']->format('H:i:s') }}
@endif
{{-- 7. Utenti più pesanti --}} @if(!empty($servers))

Utenti più pesanti (7 giorni)

@if(empty($topFiltrati))

Nessun utente da mostrare.

@else
@foreach($topFiltrati as $utente) @endforeach
Utente Richieste Server effettivo Server assegnato
{{ $utente['name'] }}
{{ $utente['email'] }}
{{ number_format($utente['richieste'], 0, ',', '.') }} {{ $nomiServer[$utente['server_effettivo']] ?? $utente['server_effettivo'] ?? 'Sconosciuto' }} @can('edit-users') @else {{ $utente['assigned_server'] === null ? 'Nessuna restrizione' : ($nomiServer[$utente['assigned_server']] ?? $utente['assigned_server']) }} @endcan
@endif
@endif

Aggiornamento automatico ogni {{ $refreshInterval }} secondi