Add server manager

Only removing is supported for now
This commit is contained in:
2025-10-14 14:27:54 +02:00
parent 7274285f95
commit 6c35320164
4 changed files with 125 additions and 1 deletions

View File

@@ -17,6 +17,30 @@ class trserver extends EventTarget {
#sessionHeader;
#requests = [];
#elements = {
serverlist: {
row: document.createElement('div'),
name: document.createElement('div'),
buttons: {}
}
};
get element() {
return this.#elements.serverlist.row;
}
addServerListButton(name, button) {
if (this.#elements.serverlist.buttons[name] != null) {
this.removeServerListButton(name);
}
this.#elements.serverlist.buttons[name] = button;
this.#elements.serverlist.row.appendChild(button);
}
removeServerListButton(name) {
if (this.#elements.serverlist.buttons[name] != null) {
this.#elements.serverlist.row.removeChild(this.#elements.serverlist.buttons[name]);
this.#elements.serverlist.buttons[name] = null;
}
}
#torrentControls = {};
addControl(hash, control) {
this.#torrentControls[hash] = control;
@@ -50,6 +74,12 @@ class trserver extends EventTarget {
this.#rpcurl = initdata.rpcurl;
this.#authHeader = initdata.auth;
this.#sessionHeader = null;
this.#elements.serverlist.row.classList.add('d-flex', 'flex-row');
this.#elements.serverlist.row.appendChild(this.#elements.serverlist.name);
this.#elements.serverlist.name.classList.add('flex-grow-1');
this.#elements.serverlist.name.appendChild(document.createTextNode(this.name));
}
#rpccall_prepare(method, args) {