FormWorkflow
class FormWorkflow[Owner, Schema, Domain, Failure]Pure baseline, revision, reset, and one-in-flight-save state.
Create with workflow. Legal transitions are represented by the result enums; callers should store the returned workflow. Completion tokens reject stale callbacks, while a successful save always advances baseline to the acknowledged snapshot.
Defined by scalive.FormWorkflow. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:76-224)
Types1
Submission
type Submission = FormSubmission[Owner, Schema, Domain]Defined by scalive.FormWorkflow.Submission. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:84-84)
Methods7
beginSave
def beginSave: FormSaveStart[FormWorkflow[Owner, Schema, Domain, Failure], Submission]Starts persistence only for a valid current form and only when no save is active.
An invalid form is returned with all errors visible; a started submission snapshots the exact values and domain value to persist.
Defined by scalive.FormWorkflow.beginSave. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:120-140)
isDirty
def isDirty: BooleanWhether current editable values differ from the last acknowledged baseline.
Defined by scalive.FormWorkflow.isDirty. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:87-87)
reset
def reset: FormWorkflowReset[FormWorkflow[Owner, Schema, Domain, Failure], Submission]Restores the baseline as a pristine form, unless a save is currently in flight.
Defined by scalive.FormWorkflow.reset. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:98-113)
saveCancelled
def saveCancelled(token: FormSubmissionToken): FormWorkflowTransition[FormWorkflow[Owner, Schema, Domain, Failure]]Cancels the current token back to idle; stale cancellations are ignored explicitly.
Defined by scalive.FormWorkflow.saveCancelled. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:180-185)
saveFailed
def saveFailed(token: FormSubmissionToken, failure: Failure): FormWorkflowTransition[FormWorkflow[Owner, Schema, Domain, Failure]]Records a failure for the current token; stale completions leave the workflow unchanged.
Defined by scalive.FormWorkflow.saveFailed. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:169-177)
saveSucceeded
def saveSucceeded(token: FormSubmissionToken): FormWorkflowTransition[FormWorkflow[Owner, Schema, Domain, Failure]]Acknowledges the submitted snapshot as baseline when token is current.
Edits made after submission remain current; only an unchanged revision is replaced.
Defined by scalive.FormWorkflow.saveSucceeded. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:146-152)
def saveSucceeded(token: FormSubmissionToken, canonical: ValidFormSnapshot[Owner, Schema, Domain]): FormWorkflowTransition[FormWorkflow[Owner, Schema, Domain, Failure]]Acknowledges a persistence-supplied canonical snapshot when token is current.
The canonical snapshot becomes baseline. It replaces current values only if no edit occurred since the corresponding submission.
Defined by scalive.FormWorkflow.saveSucceeded. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:159-166)
updated
def updated(next: Form[Owner, Schema, Domain]): FormWorkflow[Owner, Schema, Domain, Failure]Installs a same-definition form and advances revision only when editable values changed.
Defined by scalive.FormWorkflow.updated. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:90-95)
Values4
baseline
val baseline: FormValues[Owner, Schema]Defined by scalive.FormWorkflow.baseline. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:79-79)
current
val current: Form[Owner, Schema, Domain]Defined by scalive.FormWorkflow.current. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:78-78)
revision
val revision: FormRevisionDefined by scalive.FormWorkflow.revision. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:80-80)
save
val save: FormSaveState[FormSubmission[Owner, Schema, Domain], Failure]Defined by scalive.FormWorkflow.save. View source (scalive/api/src/scalive/forms/FormWorkflow.scala:81-81)