[#NUMERO_TICKET] TITRE TICKET #2

Merged
malio merged 302 commits from develop into main 2026-03-18 13:16:19 +00:00
Showing only changes of commit 4e3e854aa2 - Show all commits

View File

@@ -156,8 +156,9 @@
<TaskDocumentList
v-if="localDocuments.length"
:documents="localDocuments"
:is-admin="false"
:is-admin="canEdit"
@preview="openPreview"
@delete="handleDeleteDocument"
/>
<!-- Document preview -->
@@ -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)