fix(diarization-ui): redirect after fallback job cancel/delete forms instead of showing JSON

This commit is contained in:
2026-03-21 15:19:03 +01:00
parent 16d85a7218
commit 91ac4c3c59

23
app.py
View File

@@ -10,7 +10,7 @@ from typing import Optional
import markdown as md import markdown as md
import requests import requests
from fastapi import FastAPI, File, Form, HTTPException, UploadFile from fastapi import FastAPI, File, Form, HTTPException, UploadFile
from fastapi.responses import HTMLResponse, PlainTextResponse, Response, JSONResponse from fastapi.responses import HTMLResponse, PlainTextResponse, Response, JSONResponse, RedirectResponse
API_BASE = os.getenv("API_BASE", "http://gx10.aquantico.lan:8093").rstrip("/") API_BASE = os.getenv("API_BASE", "http://gx10.aquantico.lan:8093").rstrip("/")
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://gx10.aquantico.lan:11434").rstrip("/") OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://gx10.aquantico.lan:11434").rstrip("/")
@@ -754,12 +754,17 @@ def jobs_cancel(job_id: int):
j = _job_get(job_id) j = _job_get(job_id)
if not j: if not j:
raise HTTPException(404, "job not found") raise HTTPException(404, "job not found")
if j["status"] in ("done", "error", "cancelled"): if j["status"] not in ("done", "error", "cancelled"):
return {"ok": True, "status": j["status"]} _job_set(job_id, status="cancelled", finished_at=now_iso(), error="Cancelled by user")
_job_set(job_id, status="cancelled", finished_at=now_iso(), error="Cancelled by user")
return {"ok": True, "status": "cancelled"} return {"ok": True, "status": "cancelled"}
@app.post("/jobs/{job_id}/cancel-form")
def jobs_cancel_form(job_id: int):
jobs_cancel(job_id)
return RedirectResponse(url="/jobs", status_code=303)
@app.post("/jobs/{job_id}/delete") @app.post("/jobs/{job_id}/delete")
def jobs_delete(job_id: int): def jobs_delete(job_id: int):
with db() as c: with db() as c:
@@ -767,6 +772,12 @@ def jobs_delete(job_id: int):
return {"ok": True} return {"ok": True}
@app.post("/jobs/{job_id}/delete-form")
def jobs_delete_form(job_id: int):
jobs_delete(job_id)
return RedirectResponse(url="/jobs", status_code=303)
@app.get("/jobs", response_class=HTMLResponse) @app.get("/jobs", response_class=HTMLResponse)
def jobs_page(queued: Optional[int] = None): def jobs_page(queued: Optional[int] = None):
items = _jobs_payload(200) items = _jobs_payload(200)
@@ -779,12 +790,12 @@ def jobs_page(queued: Optional[int] = None):
"" ""
if it["status"] in ("done", "error", "cancelled") if it["status"] in ("done", "error", "cancelled")
else ( else (
f"<form method='post' action='/jobs/{it['id']}/cancel' style='display:inline'>" f"<form method='post' action='/jobs/{it['id']}/cancel-form' style='display:inline'>"
f"<button class='iconbtn' title='Abbrechen'>⛔</button></form> " f"<button class='iconbtn' title='Abbrechen'>⛔</button></form> "
) )
) )
+ ( + (
f"<form method='post' action='/jobs/{it['id']}/delete' style='display:inline'>" f"<form method='post' action='/jobs/{it['id']}/delete-form' style='display:inline'>"
f"<button class='iconbtn' title='Löschen'>🗑️</button></form> " f"<button class='iconbtn' title='Löschen'>🗑️</button></form> "
) )
+ ( + (