nomilo/templates/pages/new_record/configs/mail.html
2026-06-24 11:45:51 +02:00

266 lines
12 KiB
HTML

<h2>{{ tr(msg="record-config-mail-heading", name=new_record_name, lang=lang) }}</h2>
<form method="post" action="">
<h3>{{ tr(msg="record-config-section-mail", attr="servers", lang=lang) }}</h3>
<div class="form-input">
{{
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=[],
)
}}
</div>
{%- for mailserver in input_data.mailservers.data.mailservers | default(value=[""]) -%}
<fieldset class="group" data-new-item-template="mailserver">
<legend>
<span data-new-item-template-content="{{ tr(msg="record-input-mailservers-fieldset", attr="legend", index="{i}", lang=lang) }}">
{{ tr(msg="record-input-mailservers-fieldset", attr="legend", index=loop.index, lang=lang) }}
</span>
<button type="button" class="icon" data-delete-item>
{{ icons::trash() }}
<span class="visually-hidden" data-new-item-template-content="{{ tr(msg="record-input-mailservers-fieldset", attr="delete-button", index="{i}", lang=lang) }}">
{{ tr(msg="record-input-mailservers-fieldset", attr="delete-button", index=loop.index, lang=lang) }}
</span>
</button>
</legend>
{% set mailserver_error = errors | get(key="/mailservers/data", default="") %}
{% if mailserver_error %}
<p class="error" id="mailserver-fieldset-error">
{{ tr(
msg="record-input-mailservers-fieldset",
attr="error-" ~ mailserver_error.code | replace(from=":", to="-"),
lang=lang) }}
</p>
{% set extra_errors = "mailserver-fieldset-error" %}
{% else %}
{% set extra_errors = "" %}
{% endif %}
<div class="form-input">
{{
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/" ~ loop.index0 ~ "/mail_exchanger"],
error_msg_id="record-input-mailservers-server-name",
extra_errors=extra_errors,
label=tr(msg="record-input-mailservers-server-name", attr="input-label", 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/" ~ loop.index0 ~ "/preference"],
error_msg_id="record-input-mailservers-preference",
extra_errors=extra_errors,
label=tr(msg="record-input-mailservers-preference", attr="input-label", 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}",
]
)
}}
</div>
</fieldset>
{%- endfor -%}
<button class="form-new-item" type="button" data-new-item="mailserver">
{{ icons::plus_circle() }}
{{ tr(msg="button-add-mailserver", lang=lang) }}
</button>
<h3>{{ tr(msg="record-config-section-mail", attr="security", lang=lang) }}</h3>
<fieldset class="group">
<legend>{{ tr(msg="record-input-spf-fieldset", attr="legend", lang=lang) }}</legend>
<div class="form-input">
{{
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=[],
)
}}
{{
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=[],
)
}}
</div>
</fieldset>
<fieldset class="group">
<legend>{{ tr(msg="record-input-dmarc-fieldset", attr="legend", lang=lang) }}</legend>
<div class="form-input">
{{
form::input(
id="dmarc-policy",
name="dmarc[data][policy]",
value=input_data.dmarc.data.policy | default(value=""),
type="number",
errors=errors,
errors_keys=[ "/dmarc/data/policy" ],
error_msg_id="record-input-dmarc",
label=tr(msg="record-input-dmarc", attr="input-label", lang=lang),
label_attributes=[],
attributes=[],
)
}}
{{
form::input(
id="dmarc-ttl",
name="dmarc[ttl]",
value=input_data.dmarc.ttl | default(value=""),
type="number",
errors=errors,
errors_keys=[ "/dmarc/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=[],
)
}}
</div>
</fieldset>
<h3>{{ tr(msg="record-config-section-mail", attr="dkim", lang=lang) }}</h3>
<div class="form-input">
{{
form::input(
id="dkim-ttl",
name="dkim_keys[ttl]",
value=input_data.dkim_keys.ttl | default(value=""),
type="number",
errors=errors,
errors_keys=[ "/dkim_keys/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=[],
)
}}
</div>
{%- for dkim in input_data.dkim_keys.data.dkim_keys | default(value=[""]) -%}
<fieldset class="group" data-new-item-template="dkim-key">
<legend data-new-item-template-content="{{ tr(msg="record-input-dkim-fieldset", attr="legend", index="{i}", lang=lang) }}">
{{ tr(msg="record-input-dkim-fieldset", attr="legend", index=1, lang=lang) }}
</legend>
<div class="form-input">
{{
form::input(
id="dkim-selector-" ~ loop.index0,
name="dkim_keys[data][dkim_keys][" ~loop.index0 ~ "][selector]",
value=dkim.selector | default(value=""),
type="text",
errors=errors,
errors_keys=[ "/dkim_keys/data/dkim_keys/" ~ loop.index0 ~ "/selector" ],
error_msg_id="record-input-dkim-selector",
label=tr(msg="record-input-dkim-selector", attr="input-label", lang=lang),
label_attributes=[
"data-new-item-template-attr", "for",
"data-template-for", "dkim-selector-{i}",
],
attributes=[
"data-new-item-template-attr", "name id",
"data-template-name", "dkim_keys[data][dkim_keys][{i}][selector]",
"data-template-id", "dkim-selector-{i}",
]
)
}}
{{
form::input(
id="dkim-key-" ~ loop.index0,
name="dkim_keys[data][dkim_keys][" ~loop.index0 ~ "][key]",
value=dkim.key | default(value=""),
type="textarea",
errors=errors,
errors_keys=[
"/dkim_keys/data/dkim_keys/" ~ loop.index0 ~ "/key",
],
error_msg_id="record-input-dkim-signing-key",
label=tr(msg="record-input-dkim-signing-key", attr="input-label", lang=lang),
label_attributes=[
"data-new-item-template-attr", "for",
"data-template-for", "dkim-key-{i}",
],
attributes=[
"data-new-item-template-attr", "name id",
"data-template-name", "dkim_keys[data][dkim_keys][{i}][key]",
"data-template-id", "dkim-key-{i}",
]
)
}}
</div>
</fieldset>
{%- endfor -%}
<button class="form-new-item" type="button" data-new-item="dkim-key">
{{ icons::plus_circle() }}
{{ tr(msg="button-add-dkim-key", lang=lang) }}
</button>
<div class="form-action">
<button type="submit">{{ tr(msg="button-save-configuration", lang=lang) }}</button>
</div>
</form>