diff --git a/README.md b/README.md index 4d6aede..ccfcabe 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ push a `main` → webhook Gitea → build + up en `.4` Base: `NEXT_PUBLIC_API_URL/api/helpdesk` - `POST /login {idUsuario, password}` · `GET /me` -- `GET /tickets?...` · `GET /ticket/{id}` · `POST /tickets` · `PUT /ticket/{id}` (+ `/status`, `/assign`) · `DELETE /ticket/{id}` +- `GET /tickets?...` (con `archived=false` solo activos [default UI], `true` solo archivados, ausente todos) · `GET /ticket/{id}` · `POST /tickets` · `PUT /ticket/{id}` (+ `/status`, `/assign`, `/archive`) · `DELETE /ticket/{id}` - `GET|POST /comments/{ticketId}` - `GET /kb/published` · `GET /kb/search?q=` · `GET /kb/categories` - `GET /stats` diff --git a/frontend/src/app/(app)/tickets/[id]/page.tsx b/frontend/src/app/(app)/tickets/[id]/page.tsx index 2eaa47c..21e5044 100644 --- a/frontend/src/app/(app)/tickets/[id]/page.tsx +++ b/frontend/src/app/(app)/tickets/[id]/page.tsx @@ -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() {