SpreadsheetVersioniPanel
Scopo
Drawer/pannello laterale che mostra lo storico versioni del foglio aperto e consente all'utente di ripristinare una versione precedente.
Aperto via toolbar (@openVersioni di SpreadsheetToolbar) e gestito da useSpreadsheetVersioni.
Props (interfaccia tipica)
| Prop | Tipo | Descrizione |
|---|---|---|
versioni | FoglioVersioneSummary[] | Lista versioni ordinate per numerorevisione desc |
isLoading | boolean | Caricamento storico |
isRipristinando | boolean | Ripristino in corso |
revisioneCorrente | number | null | Revisione attualmente caricata nell'editor (per highlight) |
Eventi
| Evento | Payload | Quando |
|---|---|---|
ripristina | number (idversione) | Click su "Ripristina questa versione" |
close | — | Chiusura drawer |
Modello FoglioVersioneSummary
interface FoglioVersioneSummary {
idversione: number
idfolio: number
numerorevisione: number // monotono crescente
idautore: number
datacreazione: string // ISO 8601
}
Nota: il summary non contiene lo snapshot (per evitare di scaricare JSONB potenzialmente enormi). Lo snapshot viene caricato solo al momento del ripristino tramite RPC ripristina_versione_foglio.
Comportamento ripristino
Click "Ripristina rev. 17"
├─ versioni.ripristina(idversione)
│ └─ FogliPostgrestService.ripristinaVersione(idversione)
│ └─ POST /rpc/ripristina_versione_foglio
│ ├─ DB clona snapshot rev.17 come rev.18 (nuova versione corrente)
│ └─ Ritorna nuovo idversione/numerorevisione
├─ versioni.load(idfolio) — refresh storico
└─ Editor ricarica il foglio (parent: SpreadsheetEditor.handleRipristina)
└─ Toast "Versione ripristinata"
Layout suggerito
┌────────────────────────────────────┐
│ Storico versioni ✕ │
├────────────────────────────────────┤
│ │
│ Rev. 17 · ATTUALE │
│ 03/05/2026 14:32 · marco │
│ │
│ Rev. 16 │
│ 03/05/2026 09:15 · giulia │
│ [↩ Ripristina] │
│ │
│ Rev. 15 │
│ 02/05/2026 18:40 · marco │
│ [↩ Ripristina] │
│ │
│ ... (max maxVersioni = 10) │
└────────────────────────────────────┘
Configurazione maxVersioni
Il numero massimo di versioni mantenute è impostato in PzetaFogliDiCalcoloOptions.maxVersioni (default 10). Versioni più vecchie possono essere ruotate/eliminate dal DB tramite trigger lato server.
Stato vuoto
Se il foglio è appena stato creato e non ha ancora versioni, mostra messaggio "Nessuna versione disponibile. Salva il foglio per crearne una.".
Permessi
Anche con permessoEffettivo === 'lettura', il pannello mostra lo storico. Il pulsante "Ripristina" è però disabilitato (richiede 'scrittura' o 'proprietario').
Tipi correlati
FoglioVersione— consnapshot(caricata solo viacaricaUltimaVersione)useSpreadsheetVersioniFogliPostgrestService.ripristinaVersione
SpreadsheetToolbar
Toolbar superiore dell'editor con nome foglio (rinomina inline), badge stato, indicatore lock, pulsanti salva/versioni/ACL/export.
Componenti lista (FogliCreateDialog, FogliFilters, FogliListItem, FogliShareDialog)
Componenti UI riutilizzabili usati internamente da FogliListView. Form di creazione, filtri, riga lista e dialog di condivisione veloce.