{% import 'macros/form.html' as form %} {% from 'tour/snippets/translated_field.html' import translated_input %} {% set collapse_step = h.tour_collapse_steps() %}
{{ h.csrf_input() }} {% set error_rows = h.tour_flatten_errors(errors) %} {% if error_rows %}

{{ _("The form contains invalid entries:") }}

{% endif %} {{ translated_input("title", label=_("Tour title"), value=data.title, error=errors.title, required=true) }} {% call form.select("endpoint", label=_("Show on"), selected=data.endpoint or "", error=errors.endpoint, options=h.tour_get_page_options(), attrs={'class': 'form-control', 'data-module': 'autocomplete'}) %} {{ form.info(_('Which page shows this tour. "Everywhere" adds it to every page; a parametrised route (e.g. dataset.read) covers every page of that type.', classes=['info-help-tight'])) }} {% endcall %} {% call form.checkbox("auto_start", label=_("Start automatically"), value="true", checked=data.auto_start) %} {{ form.info(_('Open this tour the first time a visitor lands on a matching page. They can replay it from the floating button afterwards.', classes=['info-help-tight'])) }} {% endcall %} {% if not is_create %} {% call form.select("state", label=_("State"), selected=data.state, error=errors.state, options=[ {"value": "active", "text": _("Active")}, {"value": "inactive", "text": _("Inactive")}, ]) %} {{ form.info(_("Inactive tours are hidden from visitors and via API.")) }} {% endcall %} {% endif %}

{{ _("Tour steps:") }}

{% for step in data.steps %} {% set step_errors = errors.steps | default({}) %} {% snippet 'tour/snippets/tour_step.html', step=step, step_index=loop.index, errors=step_errors[loop.index - 1] | default({}), add_next_container=False, collapse_step=collapse_step %} {% else %} {% snippet 'tour/snippets/tour_step.html', step={}, errors={} %} {% endfor %}