From e7fdecdacc34c98d0bcb43e37429fab059e1d8d8 Mon Sep 17 00:00:00 2001 From: Hannaeko Date: Sun, 22 Jun 2025 18:01:06 +0100 Subject: [PATCH] wip: use of form macro --- templates/macros/form.html | 5 +- .../pages/new_record/configure_record.html | 167 ++++++++++-------- 2 files changed, 101 insertions(+), 71 deletions(-) diff --git a/templates/macros/form.html b/templates/macros/form.html index 3575da0..7a944d0 100644 --- a/templates/macros/form.html +++ b/templates/macros/form.html @@ -1,8 +1,9 @@ -{% macro input(id, name, value, type="text", description="", errors, error_msg_id, label, label_attributes, attributes) %} +{% macro input(id, name, value, type="text", description="", errors, errors_keys, error_msg_id, label, label_attributes, attributes) %} {% set filtered_errors = [] %} -{% for error in errors %} +{% for error_key in errors_keys %} + {% set error = errors | get(key=error_key, default="") %} {% if error %} {% set_global filtered_errors = filtered_errors | concat(with=error) %} {% endif %} diff --git a/templates/pages/new_record/configure_record.html b/templates/pages/new_record/configure_record.html index 3f67558..356d54f 100644 --- a/templates/pages/new_record/configure_record.html +++ b/templates/pages/new_record/configure_record.html @@ -6,8 +6,6 @@

{{ tr(msg="record-config-section-web", attr="servers", lang=lang) }}

- - {% set ttl_error = errors | get(key="/addresses/ttl", default="") %}
{{ form::input( @@ -15,7 +13,8 @@ name="addresses[ttl]", value=address.address | default(value=""), type="number", - errors=[ ttl_error ], + errors=errors, + errors_keys=[ "/addresses/ttl" ], error_msg_id="record-input-ttl", description=tr(msg="record-input-ttl", attr="help", lang=lang), label=tr(msg="record-input-ttl", attr="input-label", lang=lang), @@ -25,10 +24,7 @@ }}
- - {% set global_address_error = errors | get(key="/addresses/data", default="") %} {% for address in input_data.addresses.data.addresses | default(value=[""]) %} - {% set address_error = errors | get(key="/addresses/data/addresses/" ~ loop.index0 ~ "/address", default="") %}
{{ form::input( @@ -36,9 +32,10 @@ name="addresses[data][addresses][" ~loop.index0 ~ "][address]", value=address.address | default(value=""), type="text", - errors=[ - global_address_error, - address_error, + errors=errors, + errors_keys=[ + "/addresses/data", + "/addresses/data/addresses/" ~ loop.index0 ~ "/address", ], error_msg_id="record-input-addresses", label=tr(msg="record-input-addresses", attr="input-label", index=loop.index, lang=lang), @@ -75,15 +72,21 @@
- -
- -

- {{ tr(msg="record-input-ttl", attr="help", lang=lang) }} -

-
+ {{ + form::input( + id="mailservers-ttl", + name="mailservers[ttl]", + value=input_data.mailservers.ttl | default(value=""), + type="number", + errors=errors, + errors_keys=[ "/mailservers/ttl" ], + error_msg_id="record-input-ttl", + description=tr(msg="record-input-ttl", attr="help", lang=lang), + label=tr(msg="record-input-ttl", attr="input-label", lang=lang), + label_attributes=[], + attributes=[], + ) + }}
{% for mailserver in input_data.mailservers.data.mailservers | default(value=[""]) %} @@ -92,43 +95,55 @@ {{ tr(msg="record-input-mailservers", attr="legend", index=loop.index, lang=lang) }}
- -
- -
+ {{ + form::input( + id="mailserver-mail_exchanger-" ~ loop.index0, + name="mailservers[data][mailservers][" ~loop.index0 ~ "][mail_exchanger]", + value=mailserver.mail_exchanger | default(value=""), + type="text", + errors=errors, + errors_keys=[ + "/mailservers/data", + "/mailservers/data/mailservers/" ~ loop.index0 ~ "/mail_exchanger", + ], + error_msg_id="record-input-mailservers", + label=tr(msg="record-input-mailservers", attr="input-label-server-name", lang=lang), + label_attributes=[ + "data-new-item-template-attr", "for", + "data-template-for", "mailserver-mail_exchanger-{i}", + ], + attributes=[ + "data-new-item-template-attr", "name id", + "data-template-name", "mailservers[data][mailservers][{i}][mail_exchanger]", + "data-template-id", "mailserver-mail_exchanger-{i}", + ] + ) + }} - -
- -
+ {{ + form::input( + id="mailserver-preference-" ~ loop.index0, + name="mailservers[data][mailservers][" ~loop.index0 ~ "][preference]", + value=mailserver.preference | default(value=""), + type="text", + errors=errors, + errors_keys=[ + "/mailservers/data", + "/mailservers/data/mailservers/" ~ loop.index0 ~ "/preference", + ], + error_msg_id="record-input-mailservers", + label=tr(msg="record-input-mailservers", attr="input-label-preference", lang=lang), + label_attributes=[ + "data-new-item-template-attr", "for", + "data-template-for", "mailserver-preference-{i}", + ], + attributes=[ + "data-new-item-template-attr", "name id", + "data-template-name", "mailservers[data][mailservers][{i}][preference]", + "data-template-id", "mailserver-preference-{i}", + ] + ) + }}
{% endfor %} @@ -144,22 +159,36 @@
{{ tr(msg="record-input-spf", attr="legend", lang=lang) }}
- -
- -
+ {{ + form::input( + id="spf-policy", + name="spf[data][policy]", + value=input_data.spf.data.policy | default(value=""), + type="number", + errors=errors, + errors_keys=[ "/spf/data/policy" ], + error_msg_id="record-input-spf", + label=tr(msg="record-input-spf", attr="input-label", lang=lang), + label_attributes=[], + attributes=[], + ) + }} - -
- -

- {{ tr(msg="record-input-ttl", attr="help", lang=lang) }} -

-
+ {{ + form::input( + id="spf-ttl", + name="spf[ttl]", + value=input_data.spf.ttl | default(value=""), + type="number", + errors=errors, + errors_keys=[ "/spf/ttl" ], + error_msg_id="record-input-ttl", + description=tr(msg="record-input-ttl", attr="help", lang=lang), + label=tr(msg="record-input-ttl", attr="input-label", lang=lang), + label_attributes=[], + attributes=[], + ) + }}