Files
glastree/resources/views/eventi/show.blade.php
T

364 lines
16 KiB
PHP
Raw Normal View History

2026-05-26 08:14:29 +02:00
@extends('layouts.adminlte')
@section('title', $evento->nome_evento)
@section('page_title', 'Dettaglio Evento')
@section('breadcrumbs')
<li class="breadcrumb-item"><a href="/eventi">Eventi</a></li>
<li class="breadcrumb-item active">{{ $evento->nome_evento }}</li>
@endsection
@section('content')
<div class="row">
<div class="col-md-8">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
<i class="fas fa-calendar mr-2"></i>
{{ $evento->nome_evento }}
</h3>
</div>
<div class="card-body">
@if($evento->descrizione_evento)
<p class="lead">{{ $evento->descrizione_evento }}</p>
@endif
@if($evento->descrizione)
<div class="mt-3">
<h5>Descrizione Completa</h5>
<p>{!! nl2br(e($evento->descrizione)) !!}</p>
</div>
@endif
@if($evento->is_incontro_gruppo)
<div class="alert alert-success mt-3">
<i class="fas fa-info-circle mr-1"></i>
<strong>Evento di incontro gruppo</strong>
</div>
@endif
</div>
</div>
<div class="card mt-3">
<div class="card-header"><h3 class="card-title"><i class="fas fa-clock mr-2"></i>Data e Orario</h3></div>
<div class="card-body">
<table class="table table-sm table-borderless mb-0">
<tr>
2026-05-26 12:28:39 +02:00
<td style="width: 150px;"><strong>Ricorrenza:</strong></td>
2026-05-26 08:14:29 +02:00
<td>
@if($evento->tipo_recorrenza && $evento->tipo_recorrenza !== 'singolo')
<span class="badge badge-info">{{ $evento->periodicita_label }}</span>
@else
<span class="badge badge-secondary">Singolo</span>
@endif
</td>
</tr>
2026-05-26 12:28:39 +02:00
@if($evento->tipo_evento)
<tr>
<td><strong>Tipologia:</strong></td>
<td>
@php
$tipologia = \App\Models\TipologiaEvento::where('nome', $evento->tipo_evento)->first();
@endphp
@if($tipologia)
<span class="badge badge-primary">{{ $tipologia->descrizione ?: $tipologia->nome }}</span>
@else
<span class="badge badge-secondary">{{ $evento->tipo_evento }}</span>
@endif
</td>
</tr>
@endif
2026-05-26 08:14:29 +02:00
@if($evento->tipo_recorrenza === 'settimanale')
<tr>
<td><strong>Giorno:</strong></td>
<td>{{ $evento->giorno_settimana_label }}</td>
</tr>
@elseif($evento->tipo_recorrenza === 'mensile')
<tr>
<td><strong>Occorrenza:</strong></td>
<td>{{ $evento->occorrenza_mensile_label }}</td>
</tr>
<tr>
<td><strong>Mesi:</strong></td>
<td>{{ $evento->mesi_recorrenza_label }}</td>
</tr>
@elseif($evento->tipo_recorrenza === 'annuale')
<tr>
<td><strong>Mese:</strong></td>
<td>{{ $evento->mese_annuale_label }}</td>
</tr>
@elseif($evento->tipo_recorrenza === 'altro')
<tr>
<td><strong>Giorno:</strong></td>
<td>{{ $evento->giorno_settimana_label }}</td>
</tr>
@else
<tr>
<td><strong>Data:</strong></td>
<td>{{ $evento->data_specifica?->format('d/m/Y') ?: '-' }}</td>
</tr>
@endif
@if($evento->ora_inizio)
<tr>
<td><strong>Ora Inizio:</strong></td>
<td>{{ $evento->ora_inizio->format('H:i') }}</td>
</tr>
@endif
@if($evento->durata_minuti)
<tr>
<td><strong>Durata:</strong></td>
<td>{{ $evento->durata_minuti }} minuti</td>
</tr>
@endif
</table>
</div>
</div>
@if($evento->luogo_indirizzo || $evento->luogo_url_maps)
<div class="card mt-3">
<div class="card-header"><h3 class="card-title"><i class="fas fa-map-marker-alt mr-2"></i>Luogo</h3></div>
<div class="card-body">
@if($evento->luogo_indirizzo)
<p class="mb-2"><i class="fas fa-location-dot text-danger mr-1"></i> <strong>{{ $evento->luogo_indirizzo }}</strong></p>
@endif
@if($evento->luogo_url_maps)
<div class="mb-2">
<a href="{{ $evento->luogo_url_maps }}" target="_blank" class="btn btn-sm btn-outline-primary">
<i class="fas fa-external-link-alt mr-1"></i> Apri in Google Maps
</a>
</div>
<iframe
src="https://www.google.com/maps?q={{ urlencode($evento->luogo_indirizzo ?: $evento->luogo_url_maps) }}&output=embed"
width="100%" height="200" style="border:0; border-radius: 8px;" allowfullscreen loading="lazy">
</iframe>
@endif
</div>
</div>
@endif
</div>
<div class="col-md-4">
<div class="card">
<div class="card-header"><h3 class="card-title"><i class="fas fa-folder mr-2"></i>Gruppi</h3></div>
<div class="card-body p-0">
@if($evento->gruppi->count() > 0)
<table class="table table-sm mb-0">
<tbody>
@foreach($evento->gruppi as $gruppo)
<tr>
<td>
<a href="/gruppi/{{ $gruppo->id }}">
<i class="fas fa-folder text-warning mr-1"></i>
{{ $gruppo->nome }}
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
@else
<div class="text-center text-muted py-3 mb-0">
<span>Nessun gruppo associato</span>
</div>
@endif
</div>
</div>
<div class="card mt-3">
<div class="card-header"><h3 class="card-title"><i class="fas fa-user-tie mr-2"></i>Responsabili</h3></div>
<div class="card-body p-0">
@if($evento->responsabili->count() > 0)
<table class="table table-sm mb-0">
<thead>
<tr>
<th>Nome</th>
<th>Contatto</th>
</tr>
</thead>
<tbody>
@foreach($evento->responsabili as $resp)
<tr>
<td>
<a href="/individui/{{ $resp->id }}">
<i class="fas fa-user text-info mr-1"></i>
{{ $resp->cognome }} {{ $resp->nome }}
</a>
</td>
<td>
@if($resp->telefono_primario)
<small class="text-success">{{ $resp->telefono_primario }}</small>
@else
<span class="text-muted">-</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
@else
<div class="text-center text-muted py-3 mb-0">
<span>Nessun responsabile</span>
</div>
@endif
</div>
</div>
2026-06-09 11:02:01 +02:00
<div class="card mt-3">
<div class="card-header"><h3 class="card-title"><i class="fas fa-tags mr-2"></i>Tag</h3></div>
<div class="card-body">
@forelse($evento->tags as $tag)
<span class="badge" style="background-color:{{ $tag->color ?? '#6c757d' }};color:#fff;padding:4px 10px;border-radius:12px;font-size:0.85rem;">{{ $tag->name }}</span>
@empty
<p class="text-muted mb-0"><i class="fas fa-info-circle mr-1"></i>Nessun tag assegnato.</p>
@endforelse
</div>
</div>
2026-05-26 08:14:29 +02:00
@if($evento->note)
<div class="card mt-3">
<div class="card-header"><h3 class="card-title"><i class="fas fa-sticky-note mr-2"></i>Note</h3></div>
<div class="card-body">
<p class="mb-0">{!! nl2br(e($evento->note)) !!}</p>
</div>
</div>
@endif
<div class="card mt-3">
<div class="card-header">
<h3 class="card-title"><i class="fas fa-file mr-2"></i>Documenti</h3>
<button type="button" class="btn btn-xs btn-success float-right" onclick="showDocumentoForm()">
<i class="fas fa-plus mr-1"></i> Carica
</button>
</div>
<div class="card-body p-0">
<div id="documento-add-form" style="display:none;" class="p-3 bg-light border-bottom">
<form action="/eventi/{{ $evento->id }}/documenti" method="POST" enctype="multipart/form-data" class="mb-0">
@csrf
<div class="row">
<div class="col-md-4">
<input type="text" name="nome_file" class="form-control form-control-sm" placeholder="Nome documento" required>
</div>
<div class="col-md-3">
<select name="tipologia" class="form-control form-control-sm" required>
<option value="">Tipologia...</option>
<option value="documento">Documento</option>
<option value="programma">Programma</option>
<option value="locandina">Locandina</option>
<option value="altro">Altro</option>
</select>
</div>
<div class="col-md-4">
<input type="file" name="file" class="form-control form-control-sm" required>
</div>
<div class="col-md-1">
<button type="submit" class="btn btn-xs btn-success"><i class="fas fa-upload mr-1"></i>Carica</button>
<button type="button" class="btn btn-xs btn-secondary" onclick="hideDocumentoForm()"><i class="fas fa-times"></i></button>
</div>
</div>
</form>
</div>
@if($evento->documenti && $evento->documenti->count() > 0)
<table class="table table-bordered table-hover table-striped mb-0">
<thead class="thead-light">
<tr>
<th>Nome</th>
<th style="width: 120px;">Tipologia</th>
<th style="width: 80px;">Dimensione</th>
<th style="width: 130px;">Data Upload</th>
<th style="width: 80px;">Azioni</th>
</tr>
</thead>
<tbody>
@foreach($evento->documenti as $documento)
<tr>
<td>
<i class="fas fa-file text-secondary mr-1"></i>
{{ $documento->nome_file }}
</td>
<td>{{ ucfirst($documento->tipologia) }}</td>
<td>{{ number_format($documento->dimensione / 1024, 1) }} KB</td>
<td>{{ $documento->created_at->format('d/m/Y') }}</td>
<td>
@if($documento->file_path)
<button type="button" class="btn btn-xs btn-primary" onclick="previewDocumento({{ $documento->id }})" title="Anteprima">
<i class="fas fa-eye"></i>
</button>
@endif
<form action="/eventi/{{ $evento->id }}/documenti/{{ $documento->id }}" method="POST" class="d-inline">
@csrf @method('DELETE')
<button type="submit" class="btn btn-xs btn-danger" onclick="return confirm('Eliminare questo documento?')" title="Elimina">
<i class="fas fa-trash"></i>
</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
@else
<div class="text-center text-muted py-4">
<i class="fas fa-file fa-2x mb-2"></i>
<p class="mb-0">Nessun documento</p>
</div>
@endif
</div>
</div>
<div class="mt-3">
<a href="/eventi/{{ $evento->id }}/edit" class="btn btn-warning">
<i class="fas fa-edit mr-1"></i> Modifica
</a>
<form action="/eventi/{{ $evento->id }}" method="POST" class="d-inline">
@csrf @method('DELETE')
2026-06-02 20:29:47 +02:00
<button type="submit" class="btn btn-danger" onclick="return confirm('Confermi l\'eliminazione di {{ $evento->nome_evento }}?'.replace(/'/g, '\\\''))">
2026-05-26 08:14:29 +02:00
<i class="fas fa-trash mr-1"></i> Elimina
</button>
</form>
2026-05-26 14:10:04 +02:00
<a href="/eventi/{{ $evento->id }}/export-ics" class="btn btn-success">
<i class="fas fa-calendar-plus mr-1"></i> Esporta ICS
</a>
2026-05-26 08:14:29 +02:00
<a href="/eventi" class="btn btn-secondary">
<i class="fas fa-arrow-left mr-1"></i> Torna all'elenco
</a>
</div>
@endsection
<div class="modal fade" id="previewModal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document" style="max-width: 90vw;">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-file mr-2"></i><span id="previewModalTitle">Anteprima</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Chiudi">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center p-0" style="min-height: 400px;">
<iframe id="previewFrame" src="" style="width: 100%; height: 70vh; border: none;"></iframe>
</div>
<div class="modal-footer">
<a id="previewDownloadBtn" href="#" class="btn btn-primary" download>
<i class="fas fa-download mr-1"></i> Scarica
</a>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Chiudi</button>
</div>
</div>
</div>
</div>
@section('scripts')
<script>
function showDocumentoForm() {
document.getElementById('documento-add-form').style.display = 'block';
}
function hideDocumentoForm() {
document.getElementById('documento-add-form').style.display = 'none';
}
function previewDocumento(id) {
document.getElementById('previewFrame').src = '/documenti/' + id + '/preview';
document.getElementById('previewDownloadBtn').href = '/documenti/' + id + '/download';
$('#previewModal').modal('show');
}
</script>
@endsection