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

PropTipoDefaultDescrizione
visiblebooleanRichiesto. Controlla apertura (v-model:visible)
adapterAttachmentAdapter(inject)Data source. Se omesso, usa quello del plugin
referenceTablestringTabella entità owner
referenceColumnstringColonna FK
referenceValuestring | numberValore FK
storagePathstringPath su MinIO/S3
maxSizenumber104857600Dimensione max upload in byte (100 MB)
allowedTypesstring[]['image/jpeg', 'image/png', 'application/pdf']MIME accepted
multiplebooleantrueUpload multipli

Eventi

EventoPayloadDescrizione
update:visiblebooleanCambio visibilità (compatibile v-model:visible)
closeEmesso 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.