diff --git a/app/main.py b/app/main.py index b205fd2..8efe9d9 100644 --- a/app/main.py +++ b/app/main.py @@ -380,16 +380,30 @@ def api_get_logs(job_id: str, limit: int = 50): # UI Routes # ────────────────────────────────────────────── @app.get("/", response_class=HTMLResponse) -def ui_index(request: Request): +def ui_index(request: Request, filter: Optional[str] = None): jobs = get_all_jobs() total = len(jobs) active = sum(1 for j in jobs if j["enabled"]) failed = sum(1 for j in jobs if j["last_status"] == "failed") success = sum(1 for j in jobs if j["last_status"] == "success") + + VALID_FILTERS = {"total", "active", "success", "failed"} + active_filter = filter if filter in VALID_FILTERS else None + + if active_filter == "active": + filtered_jobs = [j for j in jobs if j["enabled"]] + elif active_filter == "success": + filtered_jobs = [j for j in jobs if j["last_status"] == "success"] + elif active_filter == "failed": + filtered_jobs = [j for j in jobs if j["last_status"] == "failed"] + else: + filtered_jobs = jobs + return templates.TemplateResponse("index.html", { "request": request, - "jobs": jobs, + "jobs": filtered_jobs, "page": "dashboard", + "active_filter": active_filter, "stats": {"total": total, "active": active, "failed": failed, "success": success}, }) diff --git a/templates/index.html b/templates/index.html index 6f5e34d..654d777 100644 --- a/templates/index.html +++ b/templates/index.html @@ -15,7 +15,9 @@
-
+
@@ -25,8 +27,10 @@

Total

-
-
+ +
@@ -36,8 +40,10 @@

Actifs

-
-
+ +
@@ -47,8 +53,10 @@

Succès

-
-
+ +
@@ -58,13 +66,28 @@

Échecs

-
+
-

Jobs planifiés

+
+

Jobs planifiés

+ {% if active_filter %} + + + {{ {'total': 'Tous', 'active': 'Actifs', 'success': 'Succès', 'failed': 'Échecs'}[active_filter] }} + + + Effacer + + {% endif %} +
Rafraîchissement auto toutes les 30s