From 4e3e854aa270c6d31a4e9e5edecf9051fa7b88ba Mon Sep 17 00:00:00 2001 From: matthieu Date: Sun, 15 Mar 2026 21:12:55 +0100 Subject: [PATCH] fix(portal) : allow admin to edit tickets and enable document deletion Co-Authored-By: Claude Opus 4.6 (1M context) --- .../client-ticket/ClientTicketDetailModal.vue | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/components/client-ticket/ClientTicketDetailModal.vue b/frontend/components/client-ticket/ClientTicketDetailModal.vue index 28fdb09..7004ec7 100644 --- a/frontend/components/client-ticket/ClientTicketDetailModal.vue +++ b/frontend/components/client-ticket/ClientTicketDetailModal.vue @@ -156,8 +156,9 @@ @@ -216,7 +217,7 @@ function close() { } const auth = useAuthStore() -const { getByTicket } = useTaskDocumentService() +const { getByTicket, remove: removeDocument } = useTaskDocumentService() const clientTicketService = useClientTicketService() const { typeBadgeClass, statusBadgeClass, formatDate } = useClientTicketHelpers() @@ -229,11 +230,13 @@ const editForm = reactive({ url: '', }) +const isAdmin = computed(() => auth.user?.roles?.includes('ROLE_ADMIN') ?? false) + const canEdit = computed(() => { if (!props.ticket) return false + if (isAdmin.value) return true const status = props.ticket.status if (status === 'done' || status === 'rejected') return false - // Check if current user submitted the ticket const userId = auth.user?.id if (!userId) return false const submittedByIri = props.ticket.submittedBy @@ -277,6 +280,11 @@ watch(() => props.ticket?.id, () => { isEditing.value = false }) +async function handleDeleteDocument(doc: TaskDocument) { + await removeDocument(doc.id) + await refreshDocuments() +} + async function refreshDocuments() { if (!props.ticket) return localDocuments.value = await getByTicket(props.ticket.id)