{#
core/ui/templates/partials/oob/status_oob.html
HTMX Out-of-Band (OOB) Fragmente für den Status-Polling-Mechanismus.
Aktualisiert Status- und Letzter-Lauf-Zellen ohne das gesamte Listen-Fragment
zu ersetzen – verhindert Flackern von Filtern und anderen Page-Header-Elementen.
Deaktiviert den Poll-Div automatisch sobald kein Job mehr läuft.
Variablen:
cfg – dict {item_id: item_dict} aus load_config/storage
module – Modulname (str)
running – dict der laufenden Jobs {key: mode}
has_run_buttons – bool (default True)
has_status – bool (default True)
#}
{% import 'partials/components/ui_macros.html' as ui %}
{#
-Wrapper ist zwingend fuer die | -OOB-Fragmente: der Browser-
HTML-Parser verwirft freistehende | -Elemente ausserhalb eines
Tabellenkontexts (bzw. wirft bei htmx' eigenem Tag-Sniffing/Auto-Wrap
einen Fehler), lange bevor htmx' hx-swap-oob-Logik sie ueberhaupt zu
Gesicht bekommt - die Zellen wurden dadurch nie aktualisiert, obwohl der
Server korrektes HTML lieferte. Die konkrete Verschachtelung/Position im
synthetischen | ist irrelevant, hx-swap-oob findet sein Ziel per ID
unabhaengig davon. #}
{% for item_id, item in cfg.items() %}
{% set is_running = (module ~ ":" ~ item_id) in (running or {}) %}
{% set _status = 'running' if is_running else (last_run_status(module, item_id) or item.last_status) %}
{% if has_status | default(True) %}
| {{ ui.status_inline(_status) }} |
{% endif %}
{% if has_run_buttons | default(True) %}
{{ ui.last_run_cell(item.last_run) }} |
{% endif %}
{% endfor %}
{# Poll-Div: deaktiviert sich selbst wenn kein Job mehr läuft #}