Components
AttachmentDialog
Modal che wrappa AttachmentsManagerConnected per gestione allegati in popup. v-model:visible.
Panoramica
AttachmentDialog è una versione modale del Manager. Internamente wrappa AttachmentsManagerConnected dentro un Dialog di @pzeta/vue-components, con header tradotto via @pzeta/vue-i18n e visibilità controllata da v-model:visible.
Non è un dialog di solo upload come nella v1: è il Manager completo (toolbar + list/grid + paginator + delete bulk) servito in un overlay modale. Per upload-only puoi mostrare la stessa modale con
enable-search="false" e enable-view-switch="false"... oppure costruire un dialog custom con <FileUpload> di @pzeta/vue-components.Props
| Prop | Tipo | Default | Descrizione |
|---|---|---|---|
visible | boolean | — | Richiesto. Controlla apertura (v-model:visible) |
adapter | AttachmentAdapter | (inject) | Data source. Se omesso, usa quello del plugin |
referenceTable | string | — | Tabella entità owner |
referenceColumn | string | — | Colonna FK |
referenceValue | string | number | — | Valore FK |
storagePath | string | — | Path su MinIO/S3 |
maxSize | number | 104857600 | Dimensione max upload in byte (100 MB) |
allowedTypes | string[] | ['image/jpeg', 'image/png', 'application/pdf'] | MIME accepted |
multiple | boolean | true | Upload multipli |
Eventi
| Evento | Payload | Descrizione |
|---|---|---|
update:visible | boolean | Cambio visibilità (compatibile v-model:visible) |
close | — | Emesso quando il dialog viene chiuso (X, ESC, click outside) |
Esempio
<script setup lang="ts">
import { ref } from 'vue'
const showAttachments = ref(false)
const ticketId = 42
</script>
<template>
<Button label="Allegati" icon="pi pi-paperclip" @click="showAttachments = true" />
<AttachmentDialog
v-model:visible="showAttachments"
reference-table="tickets"
reference-column="idticket"
:reference-value="ticketId"
:allowed-types="['image/*', 'application/pdf']"
@close="showAttachments = false"
/>
</template>
Anteprima live
Il dialog effettua chiamate al backend tramite l'adapter configurato. In assenza di un endpoint reale lo stato resta loading/empty con eventuale errore. Per provare il flusso completo punta il plugin a un'istanza Fastify con
@pzeta/fastify-utils configurato.