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)