From 7099f1ca95c254c8426c77e6eb4db59d69105ba1 Mon Sep 17 00:00:00 2001 From: matthieu Date: Sun, 15 Mar 2026 19:42:43 +0100 Subject: [PATCH] feat(documents) : generalize TaskDocumentUpload and add upload zone to ticket detail modal Co-Authored-By: Claude Sonnet 4.6 --- .../client-ticket/ClientTicketDetailModal.vue | 209 ++++++++++++++++++ .../components/task/TaskDocumentUpload.vue | 11 +- 2 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 frontend/components/client-ticket/ClientTicketDetailModal.vue diff --git a/frontend/components/client-ticket/ClientTicketDetailModal.vue b/frontend/components/client-ticket/ClientTicketDetailModal.vue new file mode 100644 index 0000000..8dc1b21 --- /dev/null +++ b/frontend/components/client-ticket/ClientTicketDetailModal.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/frontend/components/task/TaskDocumentUpload.vue b/frontend/components/task/TaskDocumentUpload.vue index ba0d828..d78d854 100644 --- a/frontend/components/task/TaskDocumentUpload.vue +++ b/frontend/components/task/TaskDocumentUpload.vue @@ -49,14 +49,15 @@ import { useTaskDocumentService } from '~/services/task-documents' const props = defineProps<{ - taskId: number + taskId?: number + clientTicketId?: number }>() const emit = defineEmits<{ uploaded: [] }>() -const { upload: uploadFile } = useTaskDocumentService() +const { upload: uploadFile, uploadForTicket } = useTaskDocumentService() const toast = useToast() const { t } = useI18n() @@ -109,7 +110,11 @@ async function processFiles(files: File[]) { uploads.value.push(state) try { - await uploadFile(props.taskId, file) + if (props.clientTicketId) { + await uploadForTicket(props.clientTicketId, file) + } else if (props.taskId) { + await uploadFile(props.taskId, file) + } state.uploading = false state.progress = 100 } catch {