98 lines
6.6 KiB
PHP
98 lines
6.6 KiB
PHP
<x-filament-panels::page>
|
|
<div class="space-y-4">
|
|
@if(! $this->stabileAttivo)
|
|
<div class="rounded-xl border border-amber-300 bg-amber-50 p-4 text-sm text-amber-800">
|
|
Nessuno stabile attivo disponibile. Seleziona prima uno stabile per aprire l'hub assemblee.
|
|
</div>
|
|
@else
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="flex flex-wrap items-start justify-between gap-3">
|
|
<div>
|
|
<div class="text-lg font-semibold text-slate-900">{{ $this->stabileAttivo->denominazione ?: 'Stabile attivo' }}</div>
|
|
<div class="mt-1 text-sm text-slate-500">
|
|
Prima slice HUB Assemblee: convocazioni, cronologia, allegati e avanzamento operativo dello stabile.
|
|
</div>
|
|
</div>
|
|
<div class="rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-700">
|
|
Stabile ID {{ (int) $this->stabileAttivo->id }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="grid gap-3 md:grid-cols-2 xl:grid-cols-4">
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Assemblee totali</div>
|
|
<div class="mt-2 text-3xl font-semibold text-slate-900">{{ (int) ($this->stats['totale'] ?? 0) }}</div>
|
|
</div>
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Convocate</div>
|
|
<div class="mt-2 text-3xl font-semibold text-slate-900">{{ (int) ($this->stats['convocate'] ?? 0) }}</div>
|
|
</div>
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">In calendario</div>
|
|
<div class="mt-2 text-3xl font-semibold text-slate-900">{{ (int) ($this->stats['in_calendario'] ?? 0) }}</div>
|
|
</div>
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Con verbale</div>
|
|
<div class="mt-2 text-3xl font-semibold text-slate-900">{{ (int) ($this->stats['con_verbale'] ?? 0) }}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rounded-xl border bg-white p-4">
|
|
<div class="flex items-center justify-between gap-3">
|
|
<div>
|
|
<div class="text-sm font-semibold text-slate-900">Cronologia assemblee</div>
|
|
<div class="mt-1 text-xs text-slate-500">Vista iniziale per pilotare convocazioni, allegati, OdG, verbali e ticket derivati nelle prossime slice.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-4 space-y-3">
|
|
@forelse($this->assembleeRows as $assemblea)
|
|
<div class="rounded-xl border border-slate-200 bg-slate-50 p-4">
|
|
<div class="flex flex-wrap items-start justify-between gap-3">
|
|
<div>
|
|
<div class="text-sm font-semibold text-slate-900">
|
|
{{ $assemblea->tipo ?: 'Assemblea ordinaria' }}
|
|
</div>
|
|
<div class="mt-1 text-xs text-slate-500">
|
|
Prima convocazione:
|
|
{{ $assemblea->data_prima_convocazione ? $assemblea->data_prima_convocazione->format('d/m/Y H:i') : 'n/d' }}
|
|
· Seconda convocazione:
|
|
{{ $assemblea->data_seconda_convocazione ? $assemblea->data_seconda_convocazione->format('d/m/Y H:i') : 'n/d' }}
|
|
</div>
|
|
@if((string) ($assemblea->luogo ?? '') !== '')
|
|
<div class="mt-1 text-xs text-slate-500">Luogo: {{ $assemblea->luogo }}</div>
|
|
@endif
|
|
</div>
|
|
<div class="rounded-full px-3 py-1 text-xs font-semibold {{ (string) ($assemblea->stato ?? '') === 'convocata' ? 'bg-amber-50 text-amber-700' : ((string) ($assemblea->stato ?? '') === 'svolta' ? 'bg-emerald-50 text-emerald-700' : 'bg-slate-100 text-slate-700') }}">
|
|
{{ $assemblea->stato ?: 'da impostare' }}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-3 grid gap-2 text-xs text-slate-600 md:grid-cols-4">
|
|
<div class="rounded-lg bg-white px-3 py-2">OdG: <span class="font-semibold text-slate-900">{{ (int) ($assemblea->ordine_giorno_count ?? 0) }}</span></div>
|
|
<div class="rounded-lg bg-white px-3 py-2">Convocazioni: <span class="font-semibold text-slate-900">{{ (int) ($assemblea->convocazioni_count ?? 0) }}</span></div>
|
|
<div class="rounded-lg bg-white px-3 py-2">Presenze: <span class="font-semibold text-slate-900">{{ (int) ($assemblea->presenze_count ?? 0) }}</span></div>
|
|
<div class="rounded-lg bg-white px-3 py-2">Documenti: <span class="font-semibold text-slate-900">{{ (int) ($assemblea->documenti_count ?? 0) }}</span></div>
|
|
</div>
|
|
|
|
@if((string) ($assemblea->note ?? '') !== '')
|
|
<div class="mt-3 rounded-lg border border-dashed border-slate-300 bg-white px-3 py-2 text-xs text-slate-600">
|
|
{{ Illuminate\Support\Str::limit((string) $assemblea->note, 220) }}
|
|
</div>
|
|
@endif
|
|
|
|
<div class="mt-3 text-[11px] text-slate-500">
|
|
Verbale {{ $assemblea->verbale ? 'presente' : 'non ancora collegato' }}.
|
|
</div>
|
|
</div>
|
|
@empty
|
|
<div class="rounded-xl border border-dashed p-6 text-sm text-slate-500">
|
|
Nessuna assemblea registrata per lo stabile attivo.
|
|
</div>
|
|
@endforelse
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</x-filament-panels::page> |