148 lines
8.6 KiB
PHP
148 lines
8.6 KiB
PHP
<x-layout.universal pageTitle="NetGesCon" showBreadcrumb="true" showSidebar="true">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card border-0 shadow-sm">
|
|
<div class="card-header bg-primary text-white">
|
|
<h4 class="mb-0">
|
|
<i class="fas fa-ticket-alt me-2"></i>
|
|
{{ __('Gestione Tickets') }}
|
|
</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<h5 class="text-dark mb-0">Lista Tickets</h5>
|
|
<a href="{{ route('admin.tickets.create') }}"
|
|
class="btn btn-primary">
|
|
<i class="fas fa-plus me-1"></i>
|
|
Nuovo Ticket
|
|
</a>
|
|
</div>
|
|
|
|
<!-- Tabella Tickets -->
|
|
<div class="table-responsive">
|
|
<table class="table table-striped table-hover">
|
|
<thead class="table-dark">
|
|
<tr>
|
|
<th scope="col">ID</th>
|
|
<th scope="col">TITOLO</th>
|
|
<th scope="col">STABILE</th>
|
|
<th scope="col">STATO</th>
|
|
<th scope="col">PRIORITÀ</th>
|
|
<th scope="col">DATA APERTURA</th>
|
|
<th scope="col">AZIONI</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse($tickets as $ticket)
|
|
<tr>
|
|
<td>{{ $ticket->id }}</td>
|
|
<td><strong>{{ $ticket->titolo }}</strong></td>
|
|
<td>{{ $ticket->stabile->denominazione ?? '-' }}</td>
|
|
<td>
|
|
<span class="badge
|
|
@switch($ticket->stato)
|
|
@case('Aperto')
|
|
bg-danger
|
|
@break
|
|
@case('Preso in Carico')
|
|
bg-warning
|
|
@break
|
|
@case('In Lavorazione')
|
|
bg-primary
|
|
@break
|
|
@case('Risolto')
|
|
bg-success
|
|
@break
|
|
@case('Chiuso')
|
|
bg-secondary
|
|
@break
|
|
@default
|
|
bg-secondary
|
|
@endswitch
|
|
">
|
|
{{ $ticket->stato }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge
|
|
@switch($ticket->priorita)
|
|
@case('Bassa')
|
|
bg-info
|
|
@break
|
|
@case('Media')
|
|
bg-warning
|
|
@break
|
|
@case('Alta')
|
|
bg-danger
|
|
@break
|
|
@case('Urgente')
|
|
bg-dark
|
|
@break
|
|
@default
|
|
bg-secondary
|
|
@endswitch
|
|
">
|
|
{{ $ticket->priorita }}
|
|
</span>
|
|
</td>
|
|
<td>{{ $ticket->data_apertura ? $ticket->data_apertura->format('d/m/Y H:i') : '-' }}</td>
|
|
<td>
|
|
<div class="btn-group" role="group">
|
|
<a href="{{ route('admin.tickets.show', $ticket) }}"
|
|
class="btn btn-sm btn-outline-primary"
|
|
title="Visualizza">
|
|
<i class="fas fa-eye"></i>
|
|
</a>
|
|
<a href="{{ route('admin.tickets.edit', $ticket) }}"
|
|
class="btn btn-sm btn-outline-secondary"
|
|
title="Modifica">
|
|
<i class="fas fa-edit"></i>
|
|
</a>
|
|
<form action="{{ route('admin.tickets.destroy', $ticket) }}"
|
|
method="POST"
|
|
class="d-inline"
|
|
onsubmit="return confirm('Sei sicuro di voler eliminare questo ticket?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit"
|
|
class="btn btn-sm btn-outline-danger"
|
|
title="Elimina">
|
|
<i class="fas fa-trash"></i>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr>
|
|
<td colspan="7" class="text-center py-4">
|
|
<div class="d-flex flex-column align-items-center">
|
|
<i class="fas fa-ticket-alt fa-3x text-muted mb-3"></i>
|
|
<h5 class="text-muted">Nessun ticket trovato</h5>
|
|
<p class="text-muted">Non ci sono ticket nel sistema al momento.</p>
|
|
<a href="{{ route('admin.tickets.create') }}"
|
|
class="btn btn-primary">
|
|
<i class="fas fa-plus me-1"></i>
|
|
Crea il primo ticket
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Paginazione -->
|
|
<div class="mt-4">
|
|
{{ $tickets->links() }}
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</x-layout.universal> |