{#- The polled region of /chains (#refresh-region): htmx re-fetches the view every 5s and the alpine-morph extension morphs the fresh fragment over the region in place. The route renders THIS template alone on an HX-Request (a poll is a cheap region render, never a full page). There is no filter form here, so the view's current params (window, session, expand) are baked into the region's hx-get URL — each poll re-requests exactly the slice the page rendered. -#} {% import "_links.html" as links with context %} {% import "_table.html" as tables with context %} {%- set chain_q = {} %} {%- if expand %}{% set _ = chain_q.update({'expand': expand}) %}{% endif %} {%- if session %}{% set _ = chain_q.update({'session': session}) %}{% endif %} {%- if window != "all" %}{% set _ = chain_q.update({'window': window}) %}{% endif %}
showing {{ chains | length }} of {{ total_chains }} chains
{% endif %} {% include "window_control.html" %} {% if chains %}{{ chain.session_id }}
{{ chain.call_count }} call{{ "s" if chain.call_count != 1 }} ·
{{ chain.started_at | epoch }}{% if chain.call_count > 1 %} → {{ chain.ended_at | epoch }} · span {{ (chain.ended_at - chain.started_at) | span }}{% endif %}
showing {{ chain.shown_calls }} of {{ chain.call_count }} calls · expand
{% endif %}