aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-21 18:41:16 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-21 18:41:16 +0200
commit81b68b6cbb561e925488fe193172eff18bfe3031 (patch)
treefb2cb0070013ee2b42c570a9003f91fd397b26ec
parentbe7e08a3b891a28479af77dcf1d0e016fd9ff35f (diff)
downloadisda-81b68b6cbb561e925488fe193172eff18bfe3031.tar
isda-81b68b6cbb561e925488fe193172eff18bfe3031.tar.bz2
isda-81b68b6cbb561e925488fe193172eff18bfe3031.tar.zst
prevent thousands of tasks being added through live update
-rw-r--r--src/webui_live.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/webui_live.js b/src/webui_live.js
index 13df60d..a521f52 100644
--- a/src/webui_live.js
+++ b/src/webui_live.js
@@ -1,5 +1,7 @@
/// <reference lib="dom" />
+if (document.location.hash.includes("nows")) return
+
const ws = new WebSocket("/webui_ws")
ws.onopen = () => console.log("ws open");
ws.onerror = () => console.warn("ws error");
@@ -24,7 +26,10 @@ ws.onmessage = ev => {
if (e && e.parentElement == parent) e.outerHTML = u.html
else {
e?.remove()
- parent.innerHTML += u.html
+ // prevent adding thousands of tasks
+ // TODO maybe do this server-sided
+ if (parent.children.length < 256)
+ parent.innerHTML += u.html
}
} else if (u.t == "remove_task") {
document.getElementById(u.key)?.remove()