Files
ssh-jumphost/templates/workspace.html
2026-09-02 20:30:44 +02:00

64 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jumphost Arbeitsflaeche</title>
<link rel="stylesheet" href="/static/css/app.css">
<link rel="stylesheet" href="/static/js/vendor/xterm.css">
</head>
<body>
<!--
F3/F4/F5 (Umsetzungsauftrag_Sonnet5.md Teil F.3): dauerhafte Arbeitsflaeche.
static/js/workspace.js baut Seitenleiste, Hostkatalog und die Sitzungen
(ueber SshTerminalSession/RdpSession, denselben Baustein wie
/terminal/{id} bzw. /rdp/{id} aus Stufe F1 -- keine zweite
Implementierung, F.2). #workspace-catalog-view und #workspace-sessions-area
sind feste Rahmen, die per .hidden (app.css) umgeschaltet werden -- die
Sitzungs-Elemente selbst werden beim Umschalten NICHT entfernt, nur
innerhalb von #workspace-sessions-area ein-/ausgeblendet (F4: mehrere
gleichzeitige Sitzungen bleiben im Hintergrund verbunden). F5 (F.3.8):
#workspace-limit-hint zeigt die konfigurierten Obergrenzen (GET
/catalog/session-limits) und deaktiviert "+ Neue Sitzung"/"Verbinden",
bevor der Server eine neue Sitzung mit WS-Code 4429 ablehnen wuerde.
#workspace-attention-summary sammelt Hintergrundsitzungen mit Fehler/
Trennung, damit man sie nicht erst durch Umschalten entdeckt.
-->
<div class="topbar">
<div class="brand">Jumphost -- Arbeitsflaeche</div>
<div>
<span class="hint" id="whoami"></span>
<a href="/dashboard">Dashboard</a>
<button id="logout-btn">Abmelden</button>
</div>
</div>
<div class="workspace-layout">
<div class="workspace-sidebar">
<div class="workspace-sidebar-header">
<h2>Sitzungen</h2>
<p class="hint">
Sitzungen ueberleben keinen Seiten-Reload -- ein Neuladen dieser
Seite beendet alle gerade offenen Sitzungen (F.3.7).
</p>
<p class="hint workspace-limit-hint" id="workspace-limit-hint"></p>
</div>
<div class="workspace-attention-summary hidden" id="workspace-attention-summary"></div>
<div class="workspace-tiles" id="workspace-tiles"></div>
<button type="button" class="workspace-new-btn" id="workspace-new-btn">+ Neue Sitzung</button>
</div>
<div class="workspace-main">
<div class="workspace-catalog-view" id="workspace-catalog-view"></div>
<div class="workspace-sessions-area hidden" id="workspace-sessions-area"></div>
</div>
</div>
<script src="/static/js/vendor/xterm.js"></script>
<script src="/static/js/vendor/xterm-addon-fit.js"></script>
<script src="/static/js/vendor/guacamole-common.js"></script>
<script src="/static/js/session-keepalive.js"></script>
<script src="/static/js/terminal.js"></script>
<script src="/static/js/rdp.js"></script>
<script src="/static/js/workspace.js"></script>
</body>
</html>