Componenti

Componenti lista (FogliCreateDialog, FogliFilters, FogliListItem, FogliShareDialog)

Componenti UI riutilizzabili usati internamente da FogliListView. Form di creazione, filtri, riga lista e dialog di condivisione veloce.

Quattro componenti UI usati da FogliListView. Non sono registrati globalmente: importali esplicitamente se vuoi riusarli in UI custom.

import FogliCreateDialog from '@pzeta/vue-foglidicalcolo/components/fogli/FogliCreateDialog.vue'
import FogliFilters     from '@pzeta/vue-foglidicalcolo/components/fogli/FogliFilters.vue'
import FogliListItem    from '@pzeta/vue-foglidicalcolo/components/fogli/FogliListItem.vue'
import FogliShareDialog from '@pzeta/vue-foglidicalcolo/components/fogli/FogliShareDialog.vue'

FogliCreateDialog

Dialog modale di creazione nuovo foglio.

Props

PropTipoDescrizione
visiblebooleanv-model:visible per <Dialog>
isCreatingbooleanLoader sul pulsante "Crea"
templatesFoglioDiCalcolo[]Lista template selezionabili (opzionale)

Eventi

EventoPayloadQuando
update:visiblebooleanChiusura modale
createCreateFoglioRequestSubmit form con nome + descrizione + flag template/pubblico
create-from-template{ templateId: number; nome: string }Submit con template selezionato

Form fields

  • Nome (text, required)
  • Descrizione (textarea, optional)
  • Crea come template (checkbox, default false)
  • Pubblico in sola lettura (checkbox, default false)
  • Crea da template esistente (select, optional, mostra templates)

FogliFilters

Barra filtri sopra la lista: search box, pillole filtro per tipo, switch grid/list.

Props

PropTipoDescrizione
filtersFoglioFiltersStato corrente dei filtri (v-model)
viewMode'grid' | 'list'Modalità visualizzazione corrente
showTemplatesbooleanMostra/nasconde la pillola "Templates"

Eventi

EventoPayloadQuando
update:filtersFoglioFiltersv-model emit
update:viewMode'grid' | 'list'Toggle visualizzazione

Search debounced

Il campo searchText è debounced internamente da useFogliList (300ms). Cambiando il testo, page viene resettato a 0.

Filtri tipo

Quattro pillole mutuamente esclusive:

  • all — tutti
  • mine — solo proprietari
  • shared — solo condivisi con me
  • templates — solo template (visibile solo se showTemplates)

FogliListItem

Singolo elemento della lista. Renderizza diversamente in base a viewMode.

Props

PropTipoDescrizione
foglioFoglioDiCalcoloRiga dati
viewMode'grid' | 'list'Layout (card o riga compatta)
permessoCorrente'proprietario' | 'scrittura' | 'lettura'Permesso utente sul foglio (per abilitare azioni)

Eventi

EventoPayloadQuando
opennumber (idfolio)Click sulla card/riga
rename{ idfolio: number; nuovoNome: string }Submit rinomina inline
duplicatenumber (idfolio)Menu → Duplica
deletenumber (idfolio)Menu → Elimina (parent gestisce la conferma)
sharenumber (idfolio)Menu → Condividi

Layout grid

┌──────────────────────────┐
│  📄  Rendiconto 2026     │
│      Vendite Q1...       │
│                          │
│  🕒 03/05 · marco        │
│  🔒 Bloccato             │
│  ⋮ menu                  │
└──────────────────────────┘

Layout list

📄 Rendiconto 2026  ·  Vendite Q1...     03/05  marco  proprietario  🔒  ⋮

L'icona apre un menu contestuale con:

  • Apri (sempre)
  • Rinomina (se permessoCorrente !== 'lettura')
  • Duplica (sempre)
  • Condividi (se permessoCorrente === 'proprietario')
  • Elimina (se permessoCorrente === 'proprietario')

FogliShareDialog

Dialog "share veloce" per gestire le ACL di un foglio dalla lista (senza aprire l'editor).

Props

PropTipoDescrizione
visiblebooleanv-model:visible
foglioFoglioDiCalcolo | nullFoglio target

Eventi

EventoPayloadQuando
update:visiblebooleanv-model
sharedCambio ACL completato (parent può fare refresh)

Differenze rispetto a SpreadsheetAclDialog

AspettoFogliShareDialog (lista)SpreadsheetAclDialog (editor)
TriggerMenu lista (⋮ → Condividi)Toolbar editor (🔗 ACL)
ScopeGestione veloce per un foglio non apertoGestione completa per il foglio in editing
LayoutCompatto, dialog piccoloDrawer più ampio
BackenduseFogliAcluseFogliAcl

Internamente entrambi usano lo stesso composable e gli stessi endpoint PostgREST.

Tipi correlati