Files
Maintainarr/web/static/js/app.js

35 lines
998 B
JavaScript

document.addEventListener("DOMContentLoaded", () => {
const form = document.getElementById("console-form");
const output = document.getElementById("console");
const input = document.getElementById("console-input");
if (!form || !output || !input) {
return;
}
const protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
const socket = new WebSocket(`${protocol}//${window.location.host}${form.dataset.ws}`);
socket.addEventListener("message", (event) => {
output.textContent += event.data;
output.scrollTop = output.scrollHeight;
});
socket.addEventListener("open", () => {
output.textContent += "Connected to remote shell.\n";
});
socket.addEventListener("close", () => {
output.textContent += "\nSession closed.\n";
});
form.addEventListener("submit", (event) => {
event.preventDefault();
if (socket.readyState !== WebSocket.OPEN) {
return;
}
socket.send(`${input.value}\n`);
input.value = "";
});
});