changedetectionio/templates/_helpers.html
{% macro render_field(field) %}
{{ field.label }}
{{ field(**kwargs)|safe }} {% if field.top_errors %} top {% for error in field.top_errors %} - {{ error }} {% endfor %} {% endif %} {% if field.errors %} {% if field.errors is mapping and 'form' in field.errors %} {# and subfield form errors, such as used in RequiredFormField() for TimeBetweenCheckForm sub form #} {% set errors = field.errors['form'] %} {% for error in errors %} - {{ error }} {% endfor %} {% elif field.type == 'FieldList' %} {# Handle FieldList of FormFields - errors is a list of dicts, one per entry #} {% for idx, entry_errors in field.errors|enumerate %} {% if entry_errors is mapping and entry_errors %} {# Only show entries that have actual errors #} - {{ _('Entry') }} {{ idx + 1 }}: {% for field_name, messages in entry_errors.items() %} {% for message in messages %} - {{ field_name }}: {{ message }} {% endfor %} {% endfor %} {% endif %} {% endfor %} {% else %} {# regular list of errors with this field #} {% for error in field.errors %} - {{ error }} {% endfor %} {% endif %} {% endif %} {% endmacro %} {% macro render_checkbox_field(field) %} {{ field(**kwargs)|safe }} {{ field.label.text | string | forceescape }} {% if field.errors %} {% for error in field.errors %} - {{ error }} {% endfor %} {% endif %} {% endmacro %} {% macro render_ternary_field(field, BooleanField=false) %} {% if BooleanField %} {% set dummy = field.__setattr__('boolean_mode', true) %} {% endif %}
{{ field.label.text | string | forceescape }}
{{ field(**kwargs)|safe }} {% if field.errors %} {% for error in field.errors %} - {{ error }} {% endfor %} {% endif %} {% endmacro %} {% macro render_simple_field(field) %} {{ field.label.text | string | forceescape }}{{ field(**kwargs)|safe }} {% if field.errors %} {% for error in field.errors %} - {{ error }} {% endfor %} {% endif %} {% endmacro %} {% macro render_nolabel_field(field) %} {{ field(**kwargs)|safe }} {% if field.errors %} {% if field.errors %} {% for error in field.errors %} - {{ error }} {% endfor %} {% endif %} {% endif %} {% endmacro %} {% macro render_button(field) %} {{ field(**kwargs)|safe }} {% endmacro %} {% macro render_fieldlist_with_inline_errors(fieldlist) %} {# Specialized macro for FieldList(FormField(...)) that renders errors inline with each field #} {{ _(fieldlist.label.text | string) }}
{% for entry in fieldlist %} - {{ _(fieldlist.label.text | string) }}-{{ loop.index0 }}
{% for subfield in entry %} | {{ subfield.label.text | string }} | {{ subfield(**kwargs)|safe }} {% if subfield.errors %} {% for error in subfield.errors %} - {{ error }} {% endfor %} {% endif %} | {% endfor %} {% endfor %}
{% endmacro %} {% macro render_conditions_fieldlist_of_formfields_as_table(fieldlist, table_id="rulesTable") %}
{% for subfield in fieldlist[0] %} {{ subfield.label.text | string }} {% endfor %} {{ _('Actions') }}
{% for form_row in fieldlist %} {% for subfield in form_row %} {{ subfield()|safe }} {% if subfield.errors %} {% for error in subfield.errors %} - {{ error }} {% endfor %} {% endif %} {% endfor %} +-✓
{% endfor %}
{% endmacro %} {% macro render_time_schedule_form(form, available_timezones, timezone_default_config) %}
{% if timezone_default_config %}
{{ render_checkbox_field(form.time_schedule_limit.enabled) }}
{{ _('Set a hourly/week day schedule') }}
{{ _('Schedule time limits') }}{{ _('Business hours') }}{{ _('Weekends') }}{{ _('Reset') }}
{% for day in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'] %} - {{ render_nolabel_field(form.time_schedule_limit[day]) }}
{% endfor %} - {{ _("Warning, one or more of your 'days' has a duration that would extend into the next day.") }}
{{ _('This could have unintended consequences.') }}
{{ _('More help and examples about using the scheduler') }}
{% else %} {{ _('Want to use a time schedule?') }} {{ _('First confirm/save your Time Zone Settings') }}
{% endif %} {% endmacro %} {% macro highlight_trigger_ignored_explainer() %}
{{ _('Triggered text') }}{{ _('Ignored text') }}{{ _('Blocked text') }}
{% endmacro %}