{% extends "layout.html" %} {% block content %} {# Helper macro for building queue section sort links #} {% macro q_sort(label, col, current_sort, current_dir, prefix, align='left') %} {% set is_active = current_sort == col %} {% set next_dir = 'asc' if (is_active and current_dir == 'desc') else 'desc' %}
Showing {{ pg.start_index }} to {{ pg.end_index }} of {{ pg.total_items }} results
{% if pg.total_pages > 1 %} {% endif %}Admin
Live view of pending, running, and completed background jobs.
| Duration | {{ q_sort('Jobs', 'jobs', rs, rd, 'r', align='right') }} {{ q_sort('Manifests', 'manifests', rs, rd, 'r', align='right') }}||||
|---|---|---|---|---|
| {{ sync.config_name }} | {{ sync.started_at.strftime('%Y-%m-%d %H:%M:%S') if sync.started_at else '-' }} | {% if sync.started_at %} {% set elapsed = (now() - sync.started_at).total_seconds() | int %} {{ elapsed }}s {% else %} - {% endif %} | {{ sync.jobs_retrieved_count or 0 }} | {{ sync.manifests_updated_count or 0 }} |
| Position | ||
|---|---|---|
| {{ sync.config_name }} | {{ sync.queued_at.strftime('%Y-%m-%d %H:%M:%S') if sync.queued_at else '-' }} | #{{ loop.index }} |
| Duration | {{ q_sort('Jobs', 'jobs', cs, cd, 'c', align='right') }} {{ q_sort('Manifests', 'manifests', cs, cd, 'c', align='right') }}||||
|---|---|---|---|---|
| {{ sync.config_name }} | {{ sync.completed_at.strftime('%Y-%m-%d %H:%M:%S') if sync.completed_at else '-' }} | {% if sync.started_at and sync.completed_at %} {{ ((sync.completed_at - sync.started_at).total_seconds()) | round(1) }}s {% else %} - {% endif %} | {{ sync.jobs_retrieved_count or 0 }} | {{ sync.manifests_updated_count or 0 }} |
| Last Error | |||
|---|---|---|---|
| {{ sync.config_name }} | {{ sync.completed_at.strftime('%Y-%m-%d %H:%M:%S') if sync.completed_at else '-' }} | {{ sync.errors|length if sync.errors else 0 }} | {% if sync.errors and sync.errors|length > 0 %} {{ sync.errors[0].error_message[:100] }}{% if sync.errors[0].error_message|length > 100 %}...{% endif %} {% else %} - {% endif %} |
No sync operations to display.
Sync operations will appear here when triggered from project configurations.