Same .row-link / .row-target as the Alerts rules list (snippet #5320). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
1.3 KiB
HTML
24 lines
1.3 KiB
HTML
{# 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. #}
|
|
{% from "_macros.html" import status_badge, scroll_more, scroll_end %}
|
|
{% for row in runs %}
|
|
{% set run = row.run %}
|
|
<tr class="row-link">
|
|
<td>
|
|
<a class="row-target" href="/ansible/runs/{{ run.id }}">{{ row.title }}</a>
|
|
{% if row.check %}<span class="badge badge-dim" title="Ansible check mode: nothing was changed">dry run</span>{% endif %}
|
|
<div class="field-hint">{{ run.source_name }}</div>
|
|
</td>
|
|
<td>{{ status_badge(run.status) }}</td>
|
|
<td style="font-size:0.85rem;">{% if row.origin %}{% if row.origin.url %}<a href="{{ row.origin.url }}">{{ row.origin.text }}</a>{% else %}{{ row.origin.text }}{% endif %}{% endif %}</td>
|
|
<td title="{{ run.started_at.strftime('%Y-%m-%d %H:%M:%S UTC') }}">{{ run.started_at|ago }}</td>
|
|
<td>{{ row.duration_s|duration }}{% if not run.finished_at and run.status.value in ('running', 'queued') %} so far{% endif %}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% if after %}
|
|
{{ scroll_more("/ansible/?before=" ~ (after|urlencode), cols=5) }}
|
|
{% else %}
|
|
{{ scroll_end(cols=5) }}
|
|
{% endif %}
|