netgescon-day0/resources/views/admin/soggetti/index.blade.php

160 lines
6.2 KiB
PHP
Executable File

@extends('admin.layouts.netgescon')
@section('title', 'Soggetti')
@section('breadcrumb')
<span>Rubrica</span> <i class="fas fa-chevron-right text-xs mx-2"></i> <span>Soggetti</span>
@endsection
@section('content')
<div class="px-6">
@include('components.layout.alerts')
<div class="netgescon-card">
<div class="p-3">
<h3 class="text-lg font-semibold"><i class="fas fa-users mr-2"></i> Elenco Soggetti</h3>
</div>
<div class="p-0">
<div class="p-3 text-slate-600">Pagina soggetti standardizzata. Implementazione elenco completa in un passaggio successivo.</div>
</div>
</div>
</div>
@endsection
@extends('admin.layouts.netgescon')
@section('title', 'Gestione Soggetti')
@section('content')
<div class="container-fluid">
{{-- Header --}}
<div class="row mb-4">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center">
<div>
<h1 class="h3 mb-0">
<i class="fas fa-users text-primary me-2"></i>
Gestione Soggetti
</h1>
<p class="text-muted mb-0">Gestione anagrafica soggetti del condominio</p>
</div>
<div>
<a href="{{ route('admin.soggetti.create') }}" class="btn btn-primary">
<i class="fas fa-plus me-1"></i>
Nuovo Soggetto
</a>
</div>
</div>
</div>
</div>
{{-- Tabella Soggetti --}}
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-list me-2"></i>
Elenco Soggetti
</h5>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead class="table-light">
<tr>
<th>ID</th>
<th>Nome / Ragione Sociale</th>
<th>Tipo</th>
<th>Email</th>
<th>Telefono</th>
<th>Azioni</th>
</tr>
</thead>
<tbody>
@forelse($soggetti as $soggetto)
<tr>
<td>{{ $soggetto->id }}</td>
<td>
<strong>{{ $soggetto->ragione_sociale ?: ($soggetto->nome . ' ' . $soggetto->cognome) }}</strong>
@if($soggetto->codice_fiscale)
<br><small class="text-muted">CF: {{ $soggetto->codice_fiscale }}</small>
@endif
</td>
<td>
<span class="badge bg-primary">{{ ucfirst($soggetto->tipo ?? 'N/D') }}</span>
</td>
<td>{{ $soggetto->email ?: 'N/D' }}</td>
<td>{{ $soggetto->telefono ?: 'N/D' }}</td>
<td>
<div class="btn-group btn-group-sm">
<a href="{{ route('admin.soggetti.show', $soggetto) }}" class="btn btn-outline-info" title="Visualizza">
<i class="fas fa-eye"></i>
</a>
<a href="{{ route('admin.soggetti.edit', $soggetto) }}" class="btn btn-outline-warning" title="Modifica">
<i class="fas fa-edit"></i>
</a>
<button type="button" class="btn btn-outline-danger" onclick="eliminaSoggetto({{ $soggetto->id }})" title="Elimina">
<i class="fas fa-trash"></i>
</button>
</div>
</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center py-4">
<div class="text-muted">
<i class="fas fa-inbox fa-2x mb-2"></i>
<p class="mb-0">Nessun soggetto trovato</p>
</div>
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
@if($soggetti->hasPages())
<div class="card-footer">
{{ $soggetti->links() }}
</div>
@endif
</div>
</div>
<script>
function eliminaSoggetto(id) {
Swal.fire({
title: 'Conferma eliminazione',
text: 'Sei sicuro di voler eliminare questo soggetto?',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#d33',
cancelButtonColor: '#3085d6',
confirmButtonText: 'Sì, elimina',
cancelButtonText: 'Annulla'
}).then((result) => {
if (result.isConfirmed) {
// Crea un form temporaneo per la cancellazione
const form = document.createElement('form');
form.method = 'POST';
form.action = `{{ route('admin.soggetti.index') }}/${id}`;
const csrfInput = document.createElement('input');
csrfInput.type = 'hidden';
csrfInput.name = '_token';
csrfInput.value = '{{ csrf_token() }}';
const methodInput = document.createElement('input');
methodInput.type = 'hidden';
methodInput.name = '_method';
methodInput.value = 'DELETE';
form.appendChild(csrfInput);
form.appendChild(methodInput);
document.body.appendChild(form);
form.submit();
}
});
}
</script>
@endsection