Wizard
Verdeel de invoer van een formulier over pagina’s met Terug en Volgende
Wat is een wizard?
Een wizard maakt van één formulier een reeks pagina’s. Elke pagina wordt opgebouwd uit een subform, en de gebruiker navigeert met de knoppen Terug en Volgende. Validatie wordt per pagina afgedwongen: de gebruiker kan pas verder als de huidige stap geldig is, tenzij de stap als optional is gemarkeerd.
Aan het eind van elke wizard wordt automatisch een alleen-lezen controlepagina toegevoegd. Die toont elke stap met de verzamelde waarden, zodat de gebruiker ze kan bevestigen voordat hij verzendt. De controlepagina wordt niet in YAML gedeclareerd; de titel komt uit de actieve taal.
Bij het verzenden worden de verzamelde waarden van alle stappen samengevoegd tot één set extravars en naar het onderliggende playbook, sjabloon of de onderliggende workflow gestuurd, precies alsof de gebruiker één groot formulier had ingevuld.
Een formulier met een wizard heeft geen eigen fields nodig, maar kan enableForChat niet instellen, en een subform kan zelf geen wizard hebben. Launch-validatie controleert een wizardstart stap voor stap.
Hoe een
wizardverschilt van een workflow, en hoe je de twee combineert, lees je in het FAQ-item Wat is het verschil tussen een wizard en een workflow?.
Eigenschap op formulierniveau
Een wizard schakel je in met één eigenschap op formulierniveau:
| Attribuut | Opmerkingen |
|---|---|
| wizard array toegevoegd in versie 6.4.0 | Wizard steps (form-layer) Turn a form into a multi-page wizard. |
Voorbeelden:
1) Three-step wizard
name: Provision host
type: ansible
roles:
- default
playbook: provision.yml
wizard:
- subform: basics
title: Basics
- subform: network
title: Network
defaultModel: net
- subform: advanced
title: Advanced
optional: true
when: $(__parent__.basics.kind) === 'vm'2) Wizard mapped one-to-one onto multistep (defaultModel + key)
name: Provision and verify host
type: multistep
roles:
- default
wizard:
- subform: basics
title: Basics
defaultModel: basics # wraps fields under `basics`
- subform: network
title: Network
defaultModel: network # wraps fields under `network`
steps:
- name: Create host
type: ansible
playbook: create_host.yml
key: basics # receives only the basics payload
- name: Configure network
type: ansible
playbook: configure_network.yml
key: network # receives only the network payloadEigenschappen van een wizardstap
Each wizard step references a subform and is rendered as its own page with Back and Next navigation. The user must validate one step before moving to the next; data from earlier steps is available in later steps via __parent__.
Review step is automatic. A read-only summary page that lists every step’s input is appended as the last page of the wizard. You do not declare it in YAML — its title is taken from the active locale (“Summary” / “Samenvatting” / “Zusammenfassung” / …).
Wizard vs Multistep. steps splits the execution into multiple sequential jobs (each step is its own playbook/template). wizard splits the input of a single form into multiple pages — only one job runs at the end. The two can be combined: a type: multistep form can also have a wizard: block to gather its extravars across pages.
| Attribuut | Opmerkingen |
|---|---|
| basic | |
| subform string / verplicht | Subform reference
The name of a Voorbeelden: 1) Reference a subform |
| name string | Step namespace key
The key under which this step’s values are exposed to later steps via Voorbeelden: 1) Override the namespace |
| title string | Page title in the stepper
Title shown in the wizard stepper and at the top of the page. Voorbeelden: 1) Custom title |
| help string | Help text shown on this page
Help text rendered on the wizard page. Defaults to the subform’s own |
| showHelp boolean | Show help on load
When Standaard: false |
| defaultModel string | Wrap this step's output under a prefix
Wraps every field of this step under the given object key in the final extravars payload. Useful when you reuse a generic subform and want its values namespaced. Voorbeelden: 1) Wrap network fields under `net` |
| workflow | |
| when expression | Conditionally show this step
When the expression evaluates falsy, the step is hidden entirely — the user never sees it and its values are not collected. Voorbeelden: 1) Only show when kind is "vm" |
| optional boolean | Allow skipping this step
When Standaard: false Voorbeelden: 1) Optional advanced page |
| Voorbeelden | |
| 1) Minimal wizard (review page is auto-added) 2) Cross-step reference and namespace prefix | |
Een wizard combineren met een workflow
Een wizard kan bovenop een workflowformulier worden gelegd. Komt de defaultModel van elke wizardstap overeen met de extra_vars_key van het bijbehorende knooppunt van de workflow, dan krijgt elk playbook of sjabloon alleen de waarden van zijn eigen wizardpagina.
De FAQ bevat een uitgewerkt voorbeeld en de opbouw van de samengevoegde extravars: Wat is het verschil tussen een wizard en een workflow? (sectie Gecombineerd (wizard bovenop een workflow)).
Een wizard op een verouderd multistep-formulier werkt op dezelfde manier, met de key van de stap in plaats van extra_vars_key.
Zie ook
Gerelateerde pagina’s en FAQ-items:
- Subformulier: wizardpagina’s worden opgebouwd uit subformulieren
- Workflowformulieren: de tegenhanger van de wizard op uitvoeringsniveau
__parent__in subformulieren: hoe je in een latere stap naar eerdere wizardstappen verwijst