feat(tickets): sin botón archivar, Archivo visible a todos, dashboard coherente
This commit is contained in:
1 parent
eace5fbcd7
commit
dd1e1a231a
3 files changed
+10
-37
No files matched your search
@@ -83,7 +83,7 @@ export default function DashboardPage() {
|
||||
{/* Stats Cards: cada tarjeta filtra la lista de tickets según lo presionado */}
|
||||
<div className="row g-3 mb-4">
|
||||
<div className="col-6 col-lg">
|
||||
<StatsCard icon="bi-ticket-detailed" value={stats?.totalTickets || 0} label="Total Tickets" color="#00285d" href="/tickets" />
|
||||
<StatsCard icon="bi-ticket-detailed" value={stats?.totalTickets || 0} label="Total Tickets" color="#00285d" href="/tickets?archived=all" />
|
||||
</div>
|
||||
<div className="col-6 col-lg">
|
||||
<StatsCard icon="bi-folder2-open" value={stats?.openTickets || 0} label="Abiertos" color="#198754" href="/tickets?status=Open" />
|
||||
@@ -92,7 +92,7 @@ export default function DashboardPage() {
|
||||
<StatsCard icon="bi-clock-history" value={stats?.inProgressTickets || 0} label="En Progreso" color="#ffc107" href="/tickets?status=InProgress" />
|
||||
</div>
|
||||
<div className="col-6 col-lg">
|
||||
<StatsCard icon="bi-check-circle" value={stats?.resolvedTickets || 0} label="Resueltos" color="#0d6efd" href="/tickets?status=Resolved" />
|
||||
<StatsCard icon="bi-check-circle" value={stats?.resolvedTickets || 0} label="Resueltos" color="#0d6efd" href="/tickets?status=Resolved&archived=all" />
|
||||
</div>
|
||||
<div className="col-6 col-lg">
|
||||
<StatsCard icon="bi-exclamation-triangle" value={stats?.criticalTickets || 0} label="Críticos" color="#dc3545" href="/tickets?priority=Critical" />
|
||||
|
||||
@@ -9,7 +9,6 @@ import {
|
||||
getTicketEmails,
|
||||
addComment,
|
||||
updateTicketStatus,
|
||||
setTicketArchived,
|
||||
assignTicket,
|
||||
getGroups,
|
||||
getTeam,
|
||||
@@ -287,24 +286,6 @@ export default function TicketDetailPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleArchiveToggle = async () => {
|
||||
if (!ticket) return;
|
||||
const toArchived = !ticket.archived;
|
||||
if (toArchived && !window.confirm("¿Archivar este ticket? Saldrá de la vista de activos, conservando su estado.")) {
|
||||
return;
|
||||
}
|
||||
setError("");
|
||||
setActing(true);
|
||||
try {
|
||||
await setTicketArchived(id, toArchived);
|
||||
await refreshTicket();
|
||||
} catch (err: unknown) {
|
||||
setError(err instanceof Error ? err.message : "No se pudo cambiar el archivado");
|
||||
} finally {
|
||||
setActing(false);
|
||||
}
|
||||
};
|
||||
|
||||
const handleAssignAgent = async (idUsuario: string | null) => {
|
||||
if (!ticket) return;
|
||||
setAssignOpen(false);
|
||||
@@ -461,17 +442,6 @@ export default function TicketDetailPage() {
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Archivar / Desarchivar (conserva el estado del ticket) */}
|
||||
<button
|
||||
className={`btn btn-sm ${ticket.archived ? "btn-outline-secondary" : "btn-outline-dark"}`}
|
||||
disabled={acting}
|
||||
title={ticket.archived ? "Volver a la vista de activos" : "Sacar de la vista de activos"}
|
||||
onClick={handleArchiveToggle}
|
||||
>
|
||||
<i className={`bi ${ticket.archived ? "bi-box-arrow-up" : "bi-archive"} me-1`}></i>
|
||||
{ticket.archived ? "Desarchivar" : "Archivar"}
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -285,6 +285,14 @@ function TicketsContent() {
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="filter-bar mb-3">
|
||||
<span className="badge bg-primary">Mis tickets</span>
|
||||
</div>
|
||||
)}
|
||||
{/* Archivo: visible para todos (solicitantes también ven sus cerrados) */}
|
||||
<div className="filter-bar mb-3">
|
||||
<span className="text-muted" style={{ fontSize: "0.8rem" }}>Archivo:</span>
|
||||
<div className="btn-group" role="group" aria-label="Archivo">
|
||||
{(
|
||||
@@ -308,11 +316,6 @@ function TicketsContent() {
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="filter-bar mb-3">
|
||||
<span className="badge bg-primary">Mis tickets</span>
|
||||
</div>
|
||||
)}
|
||||
<div className="filter-bar mb-4">
|
||||
<div className="d-flex align-items-center gap-2">
|
||||
<i className="bi bi-funnel text-muted"></i>
|
||||
|
||||
Reference in new issue
Block a user