Compare commits

..

4 Commits

Author SHA1 Message Date
91df15309a Delete servers using console 2025-10-14 15:20:41 +02:00
b3636f2710 Support adding servers 2025-10-14 15:20:20 +02:00
6e410f04a1 Cleanup 2025-10-14 14:36:44 +02:00
b74a4d8462 delete instead of = null 2025-10-14 14:35:19 +02:00
3 changed files with 47 additions and 15 deletions

View File

@@ -53,8 +53,12 @@ class trdom_servermanager extends EventTarget {
server.refreshTorrentList(); server.refreshTorrentList();
} }
addServer(name, url, user, pass) { addServer(name, url, user = null, pass = '') {
this.#registerServer(name, {'rpcurl': url, 'auth': `Basic ${btoa(`${user}:${pass}`)}`}); let initdata = {rpcurl: url};
if (user != null) {
initdata.auth = `Basic ${btoa(`${user}:${pass}`)}`
}
this.#registerServer(name, initdata);
this.#saveServers(); this.#saveServers();
} }
@@ -136,7 +140,43 @@ class trdom_servermanager extends EventTarget {
switch (e.currentTarget.getAttributeNS('trweb', 'servermanagerbutton')) { switch (e.currentTarget.getAttributeNS('trweb', 'servermanagerbutton')) {
case 'add': case 'add':
e.stopPropagation(); e.stopPropagation();
window.alert('Server add form isn\'t implemented'); let addName = window.prompt('Enter name for the new server');
if (addName != null) {
if (addName == '') {
window.alert('No name was provided, aborting');
}
else {
if (this.#servers[addName] != null) {
window.alert('Server with the provided name already exists, aborting');
}
else {
let addUrl = window.prompt('Enter server URL', 'http://localhost:9091/transmission/rpc');
if (addUrl != null) {
if (addUrl == '') {
window.alert('No URL provided, aborting');
}
else {
let addUser;
let addPass;
addUser = window.prompt('Enter username, leave empty of not required');
if (addUser == null) {
return;
}
if (addUser == '') {
addUser = null;
}
else {
addPass = window.prompt(`Enter password for user ${addUser}`);
if (addPass == null) {
return;
}
}
this.addServer(addName, addUrl, addUser, addPass);
}
}
}
}
}
break; break;
case 'block': case 'block':
e.stopPropagation(); e.stopPropagation();

View File

@@ -37,7 +37,7 @@ class trserver extends EventTarget {
removeServerListButton(name) { removeServerListButton(name) {
if (this.#elements.serverlist.buttons[name] != null) { if (this.#elements.serverlist.buttons[name] != null) {
this.#elements.serverlist.row.removeChild(this.#elements.serverlist.buttons[name]); this.#elements.serverlist.row.removeChild(this.#elements.serverlist.buttons[name]);
this.#elements.serverlist.buttons[name] = null; delete this.#elements.serverlist.buttons[name];
} }
} }

View File

@@ -113,17 +113,9 @@ class trweb {
this.#dom_servermanager.addServer(name, url, user, pass); this.#dom_servermanager.addServer(name, url, user, pass);
} }
/*removeServer(name) { removeServer(name) {
delete this.#dom_servermanager.getServers()[name]; this.#dom_servermanager.removeServer(name);
}
for (const [hash, entry] of Object.entries(this.#knownTorrents)) {
entry.element.removeChild(entry.element_server[name]);
delete entry.servers[name];
delete entry.element_server[name]
}
this.#dom_servermanager.saveServers();
}*/
} }
var trinstance = new trweb('trcontainer', null, null, function(msg) {console.info(`TRWEB: ${msg}`)}); var trinstance = new trweb('trcontainer', null, null, function(msg) {console.info(`TRWEB: ${msg}`)});