pipekit/pipekit/web/templates/runs.html
Paul Trowbridge a66488d1f2 Convert all timestamps to local time for display and scheduling
Scheduler now evaluates cron expressions against local time instead of
UTC, so schedules fire at the user's local clock time. All timestamp
displays in templates use a new `localtime` Jinja filter that converts
UTC strings from SQLite to the server's local timezone. Updated CLAUDE.md
to reflect the systemd service setup.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-03 23:21:05 -04:00

51 lines
1.8 KiB
HTML

{% extends "base.html" %}
{% set section = "runs" %}
{% block title %}Runs — Pipekit{% endblock %}
{% block content %}
<div class="panel">
<header>
Runs
<span class="subtitle">
{% if module_filter %}for module {{ module_filter.name }} · {% endif %}
last {{ runs|length }}
</span>
{% if module_filter %}
<span style="margin-left:auto"><a href="/runs">clear filter</a></span>
{% endif %}
</header>
<div class="body tight">
{% if runs %}
<table class="grid">
<thead>
<tr>
<th style="width:5em">id</th>
<th>module</th>
<th>started</th>
<th>duration</th>
<th style="width:8em">status</th>
<th style="width:7em">rows</th>
<th>error</th>
</tr>
</thead>
<tbody>
{% for r in runs %}
<tr>
<td><a href="/runs/{{ r.id }}">#{{ r.id }}</a></td>
<td><a href="/modules/{{ r.module_id }}">{{ r.module_name }}</a></td>
<td class="mono">{{ r.started_at | localtime }}</td>
<td class="mono">{{ r.duration_s | duration }}</td>
<td><span class="pill {{ r.status }}">{{ r.status }}</span></td>
<td class="mono">{{ r.row_count if r.row_count is not none else "—" }}</td>
<td class="mono" style="max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">{{ r.error or '' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<div class="empty">No runs yet.</div>
{% endif %}
</div>
</div>
{% endblock %}