Skip to content
scalive
Menu
ConnectingLiveReconnectingOffline
GitHub
c

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: Boolean

Whether 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: FormRevision

Defined 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)