Composables
useBoardMetadata
Composable di basso livello per i metadati di una board — board, stati/colonne, priorità, tag, campi dinamici. Usato internamente da useBoardService.
Panoramica
useBoardMetadata gestisce il caricamento dei metadati di una board: la board stessa, gli stati (colonne), priorità, tag e campi dinamici. Tutta l'I/O è delegata a un KanbanDataSource.
È usato internamente da useBoardService. Usalo direttamente quando vuoi accesso fine-grained ai metadati senza il CRUD delle schede (es. una toolbar di filtri che mostra priorità/tag).
Firma
function useBoardMetadata(
boardIdOrCode: number | string,
dataSource: KanbanDataSource<Board, BoardStato, unknown, BoardPriorita, BoardTag, BoardCampoRow>
): {
board: Ref<Board | null>
stati: Ref<BoardStato[]>
priorita: Ref<BoardPriorita[]>
tags: Ref<BoardTag[]>
origini: Ref<BoardOrigine[]>
visibilita: Ref<BoardVisibilita[]>
campi: Ref<BoardCampoRow[]>
loading: Ref<boolean>
error: Ref<string | null>
idboard: Ref<number | null>
initializeBoard: () => Promise<void>
loadStati: () => Promise<void>
loadPriorita: () => Promise<void>
loadTags: () => Promise<void>
loadCampi: () => Promise<void>
}
Diversamente da
useBoardService, questo composable richiede esplicitamente il dataSource come secondo argomento. Non ha defaults: non istanzia PostgRESTDataSource automaticamente.Esempio: con datasource esplicito
import { useBoardMetadata, PostgRESTDataSource, usePostgRESTClient } from '@pzeta/vue-kanban'
const dataSource = new PostgRESTDataSource({ client: usePostgRESTClient() })
const meta = useBoardMetadata('TICKET', dataSource)
// Carica board (estrae idboard da codboard stringa)
await meta.initializeBoard()
// Carica solo ciò che serve
await Promise.all([meta.loadStati(), meta.loadPriorita()])
const colonne = meta.stati.value
Metodi
| Metodo | Descrizione |
|---|---|
initializeBoard() | Carica board e popola idboard (risolve codboard string → ID numerico) |
loadStati() | Carica stati (richiede idboard valorizzato) |
loadPriorita() | Carica priorita se il datasource implementa loadPriorities |
loadTags() | Carica tags se il datasource implementa loadTags |
loadCampi() | Carica campi se il datasource implementa loadFields |
I metodi su capability opzionali (loadPriorities/loadTags/loadFields del datasource) escono silenziosamente se il metodo non è implementato sul datasource.
Stato reattivo
| Proprietà | Tipo | Descrizione |
|---|---|---|
board | Ref<Board | null> | Metadati board corrente |
stati | Ref<BoardStato[]> | Stati / colonne |
priorita | Ref<BoardPriorita[]> | Priorità disponibili |
tags | Ref<BoardTag[]> | Tag |
origini | Ref<BoardOrigine[]> | Origini lookup (vuoto se non popolato) |
visibilita | Ref<BoardVisibilita[]> | Visibilità lookup (vuoto se non popolato) |
campi | Ref<BoardCampoRow[]> | Campi dinamici |
loading | Ref<boolean> | Caricamento |
error | Ref<string | null> | Errore |
idboard | Ref<number | null> | ID numerico risolto (popolato da initializeBoard) |
Note
- Se cerchi una facade che combina metadati + CRUD schede + opzione
dataSourcecon default PostgREST, usauseBoardService. initializeBoardsettaerror.value = 'Board non trovata'quando il datasource ritornanull.loadPriorita/loadTags/loadCampinon lanciano errore se i metodi corrispondenti non sono implementati sul datasource (capability check viaif (dataSource.loadX)).