Componenti

SpreadsheetToolbar

Toolbar superiore dell'editor con nome foglio (rinomina inline), badge stato, indicatore lock, pulsanti salva/versioni/ACL/export.

Scopo

Toolbar contestuale di un foglio aperto in SpreadsheetEditor. Gestisce:

  • Nome foglio con rinomina inline (doppio click)
  • Badge stato (Non salvato warn / Salvato success)
  • Indicatore lock centrale (SpreadsheetLockIndicator)
  • Pulsanti azione (Salva, Storico versioni, ACL, Export xlsx)
Componente interno di SpreadsheetEditor. Per usarlo direttamente serve passare manualmente lo stato del foglio (saving/dirty/lock/permesso).

Props

PropTipoRequiredDescrizione
foglioNomestringNome corrente del foglio
isSavingbooleanSalvataggio in corso
isDirtybooleanModifiche non salvate
isLockedbooleanLock attivo (di un altro utente)
lockOwnerNamestring | undefinedNome owner del lock (per tooltip)
permessoEffettivo'proprietario' | 'scrittura' | 'lettura'Permesso utente sul foglio
canExportbooleanAbilita pulsante export xlsx (richiede xlsxServiceUrl)
lockInfoLockInfo | nullDettagli lock (per SpreadsheetLockIndicator)
isLockOwnerbooleanTrue se l'utente corrente possiede il lock

Eventi

EventoPayloadQuando
saveClick su Salva
renamestring (nuovoNome)Conferma rinomina inline (Enter o blur)
openVersioniClick su icona storico
openAclClick su icona condivisione
exportXlsxClick su Export
rilasciaLockClick su "Rilascia lock" (solo se isLockOwner)

Rinomina inline

TriggerEffetto
Doppio click sul nome (con permessoEffettivo !== 'lettura')Apre InputText editing
EnterConferma — emit rename con valore trimmed
BlurConferma — emit rename se modificato
EscapeAnnulla

Se l'utente ha solo permesso 'lettura', il doppio click non triggera nulla.

Stato salvataggio

StatoBadge
isSaving === true(loader sul pulsante)
isDirty === true<Tag severity="warn">Non salvato</Tag>
isDirty === false && !isSaving<Tag severity="success">Salvato</Tag>

Disabilitazioni

  • Salva: disabilitato se !isDirty \|\| isSaving
  • Export xlsx: disabilitato se !canExport (richiede xlsxServiceUrl configurato nel plugin)
  • ACL: visibile solo se permessoEffettivo === 'proprietario'

Pattern: solo salvataggio

Se vuoi un'esperienza minimale, sottometti props finte per disabilitare le altre:

<SpreadsheetToolbar
  :foglio-nome="nome"
  :is-saving="false"
  :is-dirty="true"
  :is-locked="false"
  permesso-effettivo="scrittura"
  :can-export="false"
  @save="salva"
  @rename="rinomina"
  @open-versioni="() => {}"
  @open-acl="() => {}"
  @export-xlsx="() => {}"
  @rilascia-lock="() => {}"
/>

Tipi correlati