Kreator
Podział danych formularza na strony z przyciskami Wstecz i Dalej
Czym jest kreator?
Kreator zamienia pojedynczy formularz w sekwencję stron. Każda strona jest wyświetlana z subform, a użytkownik przechodzi między nimi przyciskami Wstecz i Dalej. Walidacja odbywa się dla każdej strony osobno: użytkownik nie może przejść dalej, dopóki bieżący krok nie jest poprawny, chyba że krok jest oznaczony jako optional.
Na końcu każdego kreatora automatycznie dodawana jest strona podsumowania tylko do odczytu. Wyświetla każdy krok z zebranymi wartościami, aby użytkownik mógł je potwierdzić przed wysłaniem. Strony podsumowania nie deklaruje się w YAML; jej tytuł pochodzi z aktywnego języka.
Przy wysyłaniu wartości zebrane ze wszystkich kroków są scalane w jeden zestaw extravars i przekazywane do docelowego playbooka, szablonu lub workflow, dokładnie tak, jakby użytkownik wypełnił jeden duży formularz.
Formularz z wizard nie potrzebuje własnych fields, ale nie może ustawić enableForChat, a subform sam nie może mieć wizard. Weryfikacja uruchomienia sprawdza uruchomienie kreatora krok po kroku.
Czym
wizardróżni się od workflow i jak je połączyć, opisuje wpis FAQ Jaka jest różnica między kreatorem a workflow?.
Właściwość na poziomie formularza
Kreator włącza się jedną właściwością na poziomie formularza:
| Atrybut | Komentarze |
|---|---|
| wizard array dodano w wersji 6.4.0 | Wizard steps (form-layer) Turn a form into a multi-page wizard. |
Przykłady:
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 payloadWłaściwości kroku kreatora
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.
| Atrybut | Komentarze |
|---|---|
| basic | |
| subform string / wymagane | Subform reference
The name of a Przykłady: 1) Reference a subform |
| name string | Step namespace key
The key under which this step’s values are exposed to later steps via Przykłady: 1) Override the namespace |
| title string | Page title in the stepper
Title shown in the wizard stepper and at the top of the page. Przykłady: 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 Domyślnie: 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. Przykłady: 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. Przykłady: 1) Only show when kind is "vm" |
| optional boolean | Allow skipping this step
When Domyślnie: false Przykłady: 1) Optional advanced page |
| Przykłady | |
| 1) Minimal wizard (review page is auto-added) 2) Cross-step reference and namespace prefix | |
Łączenie kreatora z workflow
Kreator można nałożyć na formularz workflow. Gdy defaultModel każdego kroku kreatora odpowiada extra_vars_key odpowiedniego węzła workflow, każdy playbook lub szablon otrzymuje tylko wartości z własnej strony kreatora.
FAQ zawiera rozpracowany przykład i układ scalonych extravars: Jaka jest różnica między kreatorem a workflow? (sekcja Połączenie (kreator na workflow)).
Kreator na przestarzałym formularzu multistep działa tak samo, z key kroku zamiast extra_vars_key.
Zobacz też
Powiązane strony i wpisy FAQ:
- Podformularz: strony kreatora są wyświetlane z podformularzy
- Formularze workflow: odpowiednik kreatora w warstwie wykonania
__parent__w podformularzach: jak w późniejszym kroku odwołać się do wcześniejszych kroków kreatora