{% extends "base.html" %} {% block title %}Dashboard{% endblock %} {% block content %} {# ── Statistiques rapides ─────────────────────────────────────────────────── #} {% set total = jobs | length %} {% set enabled_count = jobs | selectattr('enabled') | list | length %} {% set recent_runs = last_runs.values() | select | list %} {% set success_count = recent_runs | selectattr('status', 'equalto', 'success') | list | length %} {% set error_count = recent_runs | selectattr('status', 'equalto', 'error') | list | length %} {% set running_count = recent_runs | selectattr('status', 'equalto', 'running') | list | length %}

Jobs

{{ total }}

{{ enabled_count }} actifs

Succès

{{ success_count }}

dernière exécution

Erreurs

{{ error_count }}

dernière exécution

En cours

{{ running_count }}

actuellement

{# ── Table des jobs ───────────────────────────────────────────────────────── #}

Jobs de sauvegarde

{% if not jobs %}

Aucun job configuré.

Créer le premier job →
{% else %}
{% for job in jobs %} {% set run = last_runs.get(job.id) %} {% endfor %}
Nom Type Planification Prochaine exéc. Dernière exéc. Statut Taille Actions
{{ job.name }} {{ job.type }} {{ job.cron_expr }} {% set next = job.next_run() %} {% if next and job.enabled %} {{ next.strftime('%d/%m %H:%M') }} {% else %} {% endif %} {% if run and run.started_at %} {{ run.started_at.strftime('%d/%m/%Y %H:%M') }} {% else %} Jamais {% endif %} {% if run %} {% if run.status == 'success' %} ✓ succès {% elif run.status == 'error' %} ✗ erreur {% elif run.status == 'running' %} ⟳ en cours {% endif %} {% else %} {% endif %} {% if run and run.size_bytes %}{{ run.size_human }}{% else %}—{% endif %}
Historique Éditer
{% endif %}
{% endblock %}