{% from '_status.html' import status_dot, status_bar %} {# ``deleted_count`` / ``skipped_count`` are only set when this partial is rendered as the response to a bulk delete; the SSE stream re-renders it without them, which clears the notice on the next poll. #} {% if deleted_count or skipped_count %}
| Select | ID | Workflow | Backend | Created | Progress | CPU Hours | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| {% if deletable %} {% else %} {# Active runs can't be deleted — no box rather than a dead one. #} {% endif %} | {{ run.id }} | {{ run.workflow_name }} | {{ run.backend_name }} |
{{ status_bar(run.status_counts, 'w-24 h-2 flex-shrink-0') }}
{{ run.progress[0] }}/{{ run.progress[1] }}
|
{% if run.total_cpu_hours >= 1 %} {{ "%.1f"|format(run.total_cpu_hours) }}h {% elif run.total_cpu_hours > 0 %} {{ "%.1f"|format(run.total_cpu_hours * 60) }}m {% else %} — {% endif %} | {{ status_dot(run.status.value) }} {{ run.status.value }} | View {% if deletable %} {% endif %} |
Run a workflow above to create a run.