- section_tabs macro; Runs · Playbooks · Schedules · Inventory on every Ansible page, replacing each page's own set of header buttons. - Runs: a verdict line (last 30 days, failures first with the latest named, running now, the schedule due next); under each status what the run did across its hosts (ansible/recap.py); a filter bar (playbook, status, who started it) that swaps the table and carries into the scroll paging. - Run page: status, duration, start and who started it in one line; each host's result in words, worst first; the playbook it ran links to it; the log and failures on classes rather than inline colours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
761 B
HTML
27 lines
761 B
HTML
{# ansible/_runs_table.html — the runs table under the filter bar; the bar's
|
|
HTMX requests swap this alone. #}
|
|
{% from "_macros.html" import empty_state %}
|
|
{% if not runs %}
|
|
<div class="card">
|
|
{%- if filtered %}{{ empty_state("No runs match these filters.", "Show every run", "/ansible/") }}
|
|
{%- else %}{{ empty_state("No runs yet.", "Run a playbook", "/ansible/browse") }}{% endif -%}
|
|
</div>
|
|
{% else %}
|
|
<div class="card-flush">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Run</th>
|
|
<th>Result</th>
|
|
<th>Started by</th>
|
|
<th>Started</th>
|
|
<th class="num">Took</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% include "ansible/_runs_page.html" %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endif %}
|