Assistant
Répartir la saisie d’un formulaire sur plusieurs pages avec Retour et Suivant
Qu’est-ce qu’un assistant ?
Un assistant (wizard) transforme un formulaire unique en une suite de pages. Chaque page est rendue à partir d’un subform et l’utilisateur navigue avec les boutons Retour et Suivant. La validation s’applique page par page : l’utilisateur ne peut pas avancer tant que l’étape en cours n’est pas valide, sauf si l’étape est marquée optional.
Une page de récapitulatif en lecture seule est ajoutée automatiquement à la fin de chaque assistant. Elle liste chaque étape avec les valeurs recueillies pour que l’utilisateur puisse les confirmer avant de soumettre. La page de récapitulatif n’est pas déclarée en YAML ; son titre provient de la langue active.
À la soumission, les valeurs recueillies à toutes les étapes sont fusionnées en un seul ensemble d’extravars et envoyées au playbook, au template ou au workflow sous-jacent, exactement comme si l’utilisateur avait rempli un seul grand formulaire.
Un formulaire avec un wizard n’a pas besoin de ses propres fields, mais il ne peut pas définir enableForChat, et un subform ne peut pas avoir lui-même de wizard. La validation au lancement vérifie le lancement d’un assistant étape par étape.
Pour savoir en quoi un
wizarddiffère d’un workflow, et comment combiner les deux, consultez l’entrée de FAQ Quelle est la différence entre un assistant et un workflow ?.
Propriété au niveau du formulaire
Un assistant s’active avec une seule propriété au niveau du formulaire :
| Attribut | Commentaires |
|---|---|
| wizard array ajouté dans la version 6.4.0 | Wizard steps (form-layer) Turn a form into a multi-page wizard. |
Exemples :
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 payloadPropriétés des étapes de l’assistant
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.
| Attribut | Commentaires |
|---|---|
| basic | |
| subform string / obligatoire | Subform reference
The name of a Exemples : 1) Reference a subform |
| name string | Step namespace key
The key under which this step’s values are exposed to later steps via Exemples : 1) Override the namespace |
| title string | Page title in the stepper
Title shown in the wizard stepper and at the top of the page. Exemples : 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 Par défaut : 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. Exemples : 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. Exemples : 1) Only show when kind is "vm" |
| optional boolean | Allow skipping this step
When Par défaut : false Exemples : 1) Optional advanced page |
| Exemples | |
| 1) Minimal wizard (review page is auto-added) 2) Cross-step reference and namespace prefix | |
Combiner un assistant avec un workflow
Un assistant peut se superposer à un formulaire workflow. Quand le defaultModel de chaque étape de l’assistant correspond à l’extra_vars_key du nœud de workflow correspondant, chaque playbook ou template ne reçoit que les valeurs de sa propre page d’assistant.
La FAQ contient un exemple complet et la structure des extravars fusionnées : Quelle est la différence entre un assistant et un workflow ? (section Combiné (assistant par-dessus un workflow)).
Un assistant sur un formulaire multistep obsolète fonctionne de la même façon, avec la key de l’étape à la place d’extra_vars_key.
Voir aussi
Pages et entrées de FAQ liées :
- Sous-formulaire : les pages de l’assistant sont rendues à partir de sous-formulaires
- Formulaires workflow : l’équivalent de l’assistant du côté de l’exécution
__parent__dans les sous-formulaires : comment faire référence aux étapes précédentes de l’assistant depuis une étape ultérieure