diff --git a/templates/index.html b/templates/index.html index d1e2220..1a02dc4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -22,37 +22,26 @@
- {% for node in nodes %} -
-
{{ node.name }}
-
{{ node.ip }}
-
{{ node.status }}
- -
- {% endfor %} + {% for node in nodes %} +
+
+ +
+ +
{{ node.name }}
+
{{ node.ip }}
+
{{ node.status }}
+ +
+ {% endfor %} +
- {% for node in nodes %} -
-
- -
- -
{{ node.name }}
-
{{ node.ip }}
-
{{ node.status }}
- -
- -
-
- {% endfor %} -
@@ -153,14 +142,30 @@ } } + let activeTermWs = null; + function openTerminal(ip) { + if (activeTermWs) activeTermWs.close(); + term.clear(); - term.write(`Verbinde mit ${ip}...\r\n`); - // Hier würde die WebSocket Verbindung für das spezifische Terminal initiiert werden - const termWs = new WebSocket(`ws://${location.host}/ws/terminal/${ip}`); - termWs.onmessage = (event) => { - term.write(event.data.replace(/\n/g, '\r\n')); + term.write(`\r\n>>> Verbinde mit ${ip}...\r\n`); + + activeTermWs = new WebSocket(`ws://${location.host}/ws/terminal/${ip}`); + + activeTermWs.onmessage = (event) => { + term.write(event.data); }; + + activeTermWs.onclose = () => { + term.write('\r\n[Verbindung geschlossen]\r\n'); + }; + + // Tastatureingaben vom Browser an den Server schicken + term.onData(data => { + if (activeTermWs && activeTermWs.readyState === WebSocket.OPEN) { + activeTermWs.send(data); + } + }); } // Enter-Taste zum Senden