A webform interaction step offers a single hardcoded "Cancel" escape, wired to a hardcoded "cancelled" outcome: WebformInteraction::signalOutcomes() returned [cancelled], and the handler rendered one Cancel link from the CANCEL_KEY query argument.
A step should instead let the workflow author define the escape outcomes it offers, each with its own label, the way the review and decision steps define outcomes and labels. Submit stays the forward path (the handler result); the defined outcomes render as extra labeled buttons, each resuming the step with that outcome for an outgoing flow to route on.
Adds an Escape outcomes setting to the webform step, reusing the shared OutcomeConfig "value | label" authoring form. signalOutcomes() returns the configured outcomes; the interaction passes each one label and signal URL; the handler renders one button per outcome (a SIGNALS_KEY list replacing the single CANCEL_KEY). No outcomes configured leaves a Submit-only form. Unit-tested.
Issue fork orchestra-3611961
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #4
mably commented