89 lines
4.0 KiB
Plaintext
89 lines
4.0 KiB
Plaintext
<%- include('../partials/header') %>
|
|
<% title = 'Ticket #' + ticket.id; %>
|
|
|
|
<% if (success_msg && success_msg.length > 0) { %>
|
|
<% success_msg.forEach(msg => { %>
|
|
<div class="alert alert-success alert-dismissible fade show mt-3"><%= msg %><button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>
|
|
<% }) %>
|
|
<% } %>
|
|
<% if (error_msg && error_msg.length > 0) { %>
|
|
<% error_msg.forEach(msg => { %>
|
|
<div class="alert alert-danger alert-dismissible fade show mt-3"><%= msg %><button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>
|
|
<% }) %>
|
|
<% } %>
|
|
|
|
<div class="d-flex justify-content-between align-items-center pt-3 pb-2 mb-3 border-bottom">
|
|
<h1 class="h2">Ticket #<%= ticket.id %>: <%= ticket.asunto %></h1>
|
|
<div>
|
|
<form action="/client/ticket/<%= ticket.id %>/close" method="POST" style="display:inline">
|
|
<button type="submit" class="btn btn-warning" onclick="return confirm('¿Cerrar este ticket?')">
|
|
<i class="fas fa-times"></i> Cerrar Ticket
|
|
</button>
|
|
</form>
|
|
<a href="/client/dashboard" class="btn btn-secondary">
|
|
<i class="fas fa-arrow-left"></i> Volver
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<div class="card mb-3">
|
|
<div class="card-header"><h6 class="mb-0">Información</h6></div>
|
|
<div class="card-body">
|
|
<p><strong>Estado:</strong>
|
|
<span class="badge bg-<%= ticket.status === 'abierto' ? 'success' : ticket.status === 'en_progreso' ? 'primary' : 'secondary' %>"><%= ticket.status %></span>
|
|
</p>
|
|
<p><strong>Prioridad:</strong>
|
|
<span class="badge bg-<%= ticket.prioridad === 'alta' ? 'danger' : ticket.prioridad === 'critica' ? 'dark' : ticket.prioridad === 'media' ? 'warning' : 'info' %>"><%= ticket.prioridad %></span>
|
|
</p>
|
|
<p><strong>Departamento:</strong> <%= ticket.departamento_nombre || 'Sin departamento' %></p>
|
|
<p><strong>Asignado:</strong> <%= ticket.asignado_nombre || 'Sin asignar' %></p>
|
|
<p><strong>Creado:</strong> <%= ticket.created_at %></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<strong><%= ticket.usuario_nombre %></strong>
|
|
<span class="text-muted">- <%= ticket.created_at %></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p><%= ticket.mensaje %></p>
|
|
</div>
|
|
</div>
|
|
|
|
<h5>Respuestas</h5>
|
|
<% if (respuestas.length === 0) { %>
|
|
<p class="text-muted">No hay respuestas aún</p>
|
|
<% } %>
|
|
<% respuestas.forEach(r => { %>
|
|
<div class="card mb-2 <%= r.usuario_rol === 'agent' || r.usuario_rol === 'admin' ? 'border-primary' : '' %>">
|
|
<div class="card-header">
|
|
<strong><%= r.usuario_nombre %></strong>
|
|
<span class="badge bg-<%= r.usuario_rol === 'admin' ? 'danger' : r.usuario_rol === 'agent' ? 'info' : 'secondary' %> ms-1"><%= r.usuario_rol %></span>
|
|
<span class="text-muted float-end"><%= r.created_at %></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p class="mb-0"><%= r.mensaje %></p>
|
|
</div>
|
|
</div>
|
|
<% }) %>
|
|
|
|
<div class="card mt-3">
|
|
<div class="card-header"><strong>Responder</strong></div>
|
|
<div class="card-body">
|
|
<form action="/client/ticket/<%= ticket.id %>/respond" method="POST">
|
|
<div class="mb-3">
|
|
<textarea name="mensaje" class="form-control" rows="3" required></textarea>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary"><i class="fas fa-reply"></i> Responder</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<%- include('../partials/footer') %>
|