feat(tickets): filtro Todos/Activos/Archivados + botón archivar
This commit is contained in:
1 parent
f536f11dfd
commit
24dcb6d770
4 files changed
+103
-4
No files matched your search
@@ -9,6 +9,7 @@ import {
|
||||
getTicketEmails,
|
||||
addComment,
|
||||
updateTicketStatus,
|
||||
setTicketArchived,
|
||||
assignTicket,
|
||||
getGroups,
|
||||
getTeam,
|
||||
@@ -286,6 +287,24 @@ 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);
|
||||
@@ -338,6 +357,11 @@ export default function TicketDetailPage() {
|
||||
<div className="d-flex gap-2 mt-2">
|
||||
<BadgeStatus status={ticket.status} />
|
||||
<BadgePriority priority={ticket.priority} />
|
||||
{ticket.archived && (
|
||||
<span className="badge bg-secondary" title="Ticket archivado">
|
||||
<i className="bi bi-archive me-1"></i>Archivado
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
{isTeam && (
|
||||
@@ -437,6 +461,17 @@ 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>
|
||||
|
||||
Reference in new issue
Block a user