fix: toggle preview display bug, add job deletion, optimize pipeline

- Fix: toggle ON now resets img display to block (was stuck on 'waiting')
- Toggle OFF sends API call to stop preview file writes
- Delete button on status page + jobs page cards
- DELETE /api/jobs/<id> endpoint removes job + output files
- PUT /api/jobs/<id>/preview endpoint toggles preview_enabled
- Pipeline skips resize/encode/write when preview_enabled=False
- Reduced preview defaults: 480px max, JPEG quality 60
- 62/62 tests pass
This commit is contained in:
jetson committed 2026-09-22 10:49:06 +07:00
1 parent 09a8829575
commit 163280078f
6 files changed
+140 -7

No files matched your search

+25
View File
@@ -255,6 +255,31 @@ def api_cancel_job(job_id):
return jsonify({"error": "cannot cancel job in state " + job.status.name}), 400
@app.route("/api/jobs/<job_id>", methods=["DELETE"])
def api_delete_job(job_id):
"""Delete a completed/failed/cancelled job."""
success = job_queue.delete_job(job_id)
if success:
return jsonify({"status": "deleted"})
job = job_queue.get_job(job_id)
if job is None:
return jsonify({"error": "not found"}), 404
return jsonify({"error": "cannot delete job in state " + job.status.name}), 400
@app.route("/api/jobs/<job_id>/preview", methods=["PUT"])
def api_toggle_preview(job_id):
"""Toggle live preview on/off for a running job."""
job = job_queue.get_job(job_id)
if job is None:
return jsonify({"error": "not found"}), 404
data = request.get_json(silent=True) or {}
enabled = data.get("enabled", True)
with job_queue._lock:
job.preview_enabled = enabled
return jsonify({"status": "ok", "preview_enabled": enabled})
@app.route("/api/jobs/<job_id>")
def api_job_detail(job_id):
job = job_queue.get_job(job_id)