nomilo/templates/components/dns/config.html
2026-07-01 01:12:30 +02:00

139 lines
5.6 KiB
HTML

{% component dns.config(records: map, name: string, fqdn: string, url: string = "", orphan: bool = false, actions: bool = true, lang: string) %}
<article class="card">
<header>
{%- if orphan -%}
<p class="heading">{{ tr(msg="zone-content-section-" ~ records.config_type ~ "-header") }}</p>
{%- else -%}
<h4>{{ tr(msg="zone-content-section-" ~ records.config_type ~ "-header") }}</h4>
{%- endif -%}
{% if actions %}
<div>
<a class="button primary icon" href="{{ url }}/edit?name={{ name }}&config={{ records.config_type }}">
{{ <icon.pencil /> }}
<span class="visually-hidden">
{{ tr(msg="zone-content-edit-" ~ records.config_type ~ "-configuration-button", name=fqdn) }}
</span>
</a>
<a class="button primary icon" href="{{ url }}/delete?name={{ name }}&config={{ records.config_type }}">
{{ <icon.trash /> }}
<span class="visually-hidden">
{{ tr(msg="zone-content-delete-" ~ records.config_type ~ "-configuration-button", name=fqdn) }}
</span>
</a>
</div>
{% endif %}
</header>
{%- if records.config_type == "web" -%}
<p class="record-type">
{{ tr(msg="zone-content-record-type-addresses", attr="type-name") }}
</p>
<ul>
{%- for address in records.addresses.data.addresses -%}
<li>
<span class="pill">
{{ address.address }}
</span>
</li>
{%- endfor -%}
</ul>
{%- elif records.config_type == "mail" -%}
<p class="record-type">
{{ tr(msg="zone-content-record-type-mailservers", attr="type-name") }}
</p>
<ul>
{%- for mailserver in records.mailservers.data.mailservers -%}
<li>
<span class="pill">
{{ mailserver.mail_exchanger }}
</span>
</li>
{%- endfor -%}
</ul>
<div class="tags">
<span class="badge {% if records.spf %}badge-ok{% else %}badge-warning{% endif %}">
{%- if records.spf -%}
{{ <icon.check_circle /> }}
<span class="visually-hidden">{{ tr(msg="zone-content-security-ok") }}</span>
{%- else -%}
<span class="visually-hidden">{{ tr(msg="zone-content-security-warning") }}</span>
{{ <icon.exclamation_triangle /> }}
{%- endif -%}
{{ tr(msg="zone-content-record-type-spf", attr="type-name") }}
</span>
<span class="badge {% if records.dkim_keys %}badge-ok{% else %}badge-warning{% endif %}">
{%- if records.dkim_keys -%}
{{ <icon.check_circle /> }}
<span class="visually-hidden">{{ tr(msg="zone-content-security-ok") }}</span>
{%- else -%}
{{ <icon.exclamation_triangle /> }}
<span class="visually-hidden">{{ tr(msg="zone-content-security-warning") }}</span>
{%- endif -%}
{{ tr(msg="zone-content-record-type-dkim", attr="type-name") }}
</span>
<span class="badge {% if records.dmarc %}badge-ok{% else %}badge-warning{% endif %}">
{%- if records.dmarc -%}
{{ <icon.check_circle /> }}
<span class="visually-hidden">{{ tr(msg="zone-content-security-ok") }}</span>
{%- else -%}
{{ <icon.exclamation_triangle /> }}
<span class="visually-hidden">{{ tr(msg="zone-content-security-warning") }}</span>
{%- endif -%}
{{ tr(msg="zone-content-record-type-dmarc", attr="type-name") }}
</span>
</div>
{%- elif records.config_type == "services" -%}
{%- for service in records.services -%}
<p class="record-type">
{%- if service.data.service_type.service_type == "other" -%}
{{ service.data.service_type.name }}/{{ service.data.service_type.protocol }}
{%- else -%}
{{ service.data.service_type.service_type }}
{%- endif -%}
</p>
<ul>
{%- for service_target in service.data.service_targets -%}
<li>
<span class="pill">
{{ service_target.server ~ ":" ~ service_target.port }}
</span>
</li>
{%- endfor -%}
</ul>
{%- endfor -%}
{%- elif records.config_type == "delegation" -%}
<p class="record-type">
{{ tr(msg="zone-content-record-type-nameservers", attr="type-name") }}
</p>
<ul>
{%- for nameserver in records.nameservers -%}
<li>
<span class="pill">
{{ nameserver.nameserver.data.target }}
</span>
</li>
{%- endfor -%}
</ul>
{%- elif records.config_type == "texts" -%}
<ul>
{%- for text in records.texts.data.texts -%}
<li>
<span class="pill">
{{ text.text }}
</span>
</li>
{%- endfor -%}
</ul>
{%- endif -%}
</article>
{% endcomponent dns.config %}