Compare commits

..

2 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
2 changed files with 47 additions and 3 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

@@ -112,6 +112,10 @@ class trweb {
addServer(name, url, user, pass) { addServer(name, url, user, pass) {
this.#dom_servermanager.addServer(name, url, user, pass); this.#dom_servermanager.addServer(name, url, user, pass);
} }
removeServer(name) {
this.#dom_servermanager.removeServer(name);
}
} }
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}`)});