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
+6 -7
View File
@@ -12,14 +12,13 @@ def page(title: str, body: str, user=None) -> str:
display_name = html.escape(user.get("display_name") or user.get("username", ""))
nav = """
<nav>
<a href="/portal">Aplikace</a>
<a href="/portal/new-app">Nová aplikace</a>
<a href="/portal/deployments">Nasazení</a>
<a href="/portal/jobs">Joby</a>
<a href="/portal/operations">Operations -> Dashboard</a>
<a href="/portal/workers">Operations -> Workers</a>
<a href="/portal/backups">Zálohy</a>
<a href="/portal/operations">Dashboard</a>
<a href="/portal">Apps</a>
<a href="/portal/jobs">Jobs</a>
<a href="/portal/deployments">Deployments</a>
<a href="/portal/workers">Workers</a>
<a href="/portal/audit">Audit</a>
<a href="/portal/backups">Backups</a>
</nav>
"""
user_panel = f"""