{# ansible/_runs_page.html — one page of runs, then the sentinel that loads the next page as the reader nears it (core.paging, pref 172). The whole row opens the run (.row-link); its title is the one real link. Under the status, what the run did across its hosts (ansible.recap.run_recap). `compact` (a playbook's recent runs) ends without the list's end marker. #} {% from "_macros.html" import status_badge, scroll_more, scroll_end %} {% for row in runs %} {% set run = row.run %} {{ row.title }}
{{ run.source_name }}{% if row.check %} · dry run{% endif %}
{{ status_badge(run.status) }} {%- if row.recap %}
{% for text, tone in row.recap %}{% if not loop.first %} · {% endif %}{% if tone %}{{ text }}{% else %}{{ text }}{% endif %}{% endfor %}
{%- endif %} {% if row.origin %}{{ row.origin.text }}{% endif %} {{ run.started_at|ago }} {{ row.duration_s|duration }}{% if not run.finished_at and run.status.value in ('running', 'queued') %} so far{% endif %} {% endfor %} {% if more_url %} {{ scroll_more(more_url, cols=5) }} {% elif not compact %} {{ scroll_end(cols=5) }} {% endif %}