Add unified operations realtime dashboard

- add /portal/ws/operations WebSocket snapshot endpoint
- add shared operations-live.js with reconnect and operations:snapshot events
- update Operations, Jobs, and Workers pages to use realtime snapshots
- keep job detail live logs on dedicated /ws/jobs/{job_id}/logs endpoint
- add Jobs and Workers pagination/filtering
- remove old page auto-refresh behavior from jobs/deployments
- normalize main navigation labels
- move New App CTA from menu to Apps page
- add backup download action for admins
- add Workers pages and operations dashboard data helpers
This commit is contained in:
JiriUhlir
2026-05-29 11:17:17 +02:00
parent 0dcf9b7b05
commit d145161e4e
9 changed files with 519 additions and 67 deletions
+2 -6
View File
@@ -161,9 +161,7 @@ async def deployments_page(
)
stats = get_deployment_stats()
options = get_deployment_filter_options()
refresh = "<script>setTimeout(() => window.location.reload(), 5000);</script>" if any(
is_running(item.get("status")) for item in deployments
) else ""
refresh = ""
rows = ""
for deployment in deployments:
@@ -320,9 +318,7 @@ async def deployment_detail_page(
returncode_label = "" if returncode is None else html.escape(str(returncode))
stdout = html.escape(deployment.get("stdout", "") or "")
stderr = html.escape(deployment.get("stderr", "") or "")
refresh = "<script>setTimeout(() => window.location.reload(), 5000);</script>" if is_running(
deployment.get("status")
) else ""
refresh = ""
failed_notice = (
f'<div class="alert alert-danger">Deployment selhal. Návratový kód: {returncode_label}</div>'
if is_failed(deployment.get("status"))