{% import 'partials/components/ui_macros.html' as ui %} {% import 'partials/components/mobile_card_macros.html' as mc %}
{# ── Kanäle ───────────────────────────────────────────────────────────────── #} {# Sektionskarte (.content-item) traegt auf Mobile nur den Desktop-Table bzw. den Empty-State -- die Kartenliste selbst (unten) liegt bewusst NICHT darin verschachtelt, sonst entsteht eine Karte-in-Karte-Optik, da beide dieselbe --card-Hintergrundfarbe haben. Deshalb bekommt die Sektionskarte die Klasse "desktop-view", sobald es echte Kanaele gibt -- dann existiert sie auf Mobile gar nicht erst. #}
Kanäle
{% if channels %} {% for ch_id, ch in channels.items() %} {% endfor %}
{{ ch.backend }} {{ ch.label or ch_id }}
{{ ui.edit_button(module=module, item=ch_id, container_id=container_id, loading_id=loading_id) }} {{ ui.delete_button(module=module, item=ch_id, container_id=container_id, loading_id=loading_id, description=ch.label or ch_id) }}
{% else %}
Keine Kanäle konfiguriert
Erstelle einen Kanal mit „Neuer Kanal".
{% endif %}
{% if channels %}
{% for ch_id, ch in channels.items() %} {% set _footer %} {% endset %} {% call mc.m_card(ch.label or ch_id, footer=_footer) %} {{ mc.m_card_row('Backend', ch.backend) }} {{ mc.m_card_row('Ziel', ch.ntfy_url or ch.mail_smtp_host) }} {% endcall %} {% endfor %}
{% endif %} {# ── Notify-Jobs ──────────────────────────────────────────────────────────── #}
Notify-Jobs
{% if jobs %} {% for job_id, job in jobs.items() %} {% endfor %}
{{ job.label or job_id }} {{ channels.get(job.channel_id, {}).get('label', job.channel_id) or job.channel_id }}
{{ ui.edit_button(module=module, item=job_id, container_id=container_id, loading_id=loading_id, item_prefix="jobs/") }} {{ ui.delete_button(module=module, item=job_id, container_id=container_id, loading_id=loading_id, description=job.label or job_id, item_prefix="jobs/") }}
{% else %}
Keine Notify-Jobs konfiguriert
Erstelle einen Job mit „Neuer Job".
{% endif %}
{% if jobs %}
{% for job_id, job in jobs.items() %} {% set _footer %} {% endset %} {% call mc.m_card(job.label or job_id, footer=_footer) %} {{ mc.m_card_row('Kanal', channels.get(job.channel_id, {}).get('label', job.channel_id) or job.channel_id) }} {% endcall %} {% endfor %}
{% endif %}
{# /content-columns #}