Appearance
Formular speichern
app/composables/protocol/useFormSave.ts zentralisiert das Speicherverhalten auf Acceptance-Ebene, das von der Editor-Hülle und Top-Bar-Aktionen genutzt wird.
Öffentliche API
Das Composable stellt aktuell eine Methode bereit:
saveCurrentAcceptance(id, options?)
Rückgabeform:
successstate:saved | no_changes | offline | error- optional
message - optional
syncResult
Speicherverhalten
Offline
- gibt
{ success: false, state: 'offline' }zurück - zeigt aktuell keinen Toast an
Vorhandene lokale Änderungen
- ruft
acceptanceStore.saveLocalToServer(id)auf - synchronisiert anschließend vorgemerkte Bild-Uploads, Bildmetadaten und Bildlöschungen über
syncPendingUploads({ acceptanceId: id }) - löst bei Erfolg
app:sync-completedübernuxtApp.callHook(...)aus - kann einen Erfolgs-Toast anzeigen
- gibt bei Fehler
state: 'error'zurück und zeigt einen Fehler-Toast, sofern nicht unterdrückt
Nur Bildänderungen
Wenn keine Sektion dirty ist, aber Bilder oder Bildmetadaten der Acceptance pending sind:
- überspringt
saveCurrentAcceptance(...)den Entity-Store-Save - ruft trotzdem
syncPendingUploads({ acceptanceId: id })auf - gibt bei Erfolg
state: 'saved'zurück - gibt bei Medienfehlern
state: 'error'zurück, lässt die Pending-Bilder lokal retrybar und zeigt einen Warn-Toast, sofern Toasts nicht unterdrückt sind
Keine ausstehenden Änderungen
- gibt
{ success: true, state: 'no_changes' }zurück - kann einen neutralen Hinweis-Toast für fehlende Änderungen anzeigen
Optionen
Unterstützte Optionen:
showToastssuppressNoChangesToastsuppressSuccessToastsuppressOfflineToastsuccessToastTitlesuccessToastDuration
Verwendende Stellen
Im Anwendungscode verifizierte Verbraucher:
app/composables/protocol/useAcceptanceEditorPage.tsapp/composables/protocol/useCustomerViewNavigation.tsapp/components/Navigation/TopBars/TopBarMain.vueapp/components/Protocol/ProtocolCloneModal.vueapp/pages/customer-view/signatures.vue