Support adding servers

This commit is contained in:
2025-10-14 15:20:20 +02:00
parent 6e410f04a1
commit b3636f2710

View File

@@ -53,8 +53,12 @@ class trdom_servermanager extends EventTarget {
server.refreshTorrentList();
}
addServer(name, url, user, pass) {
this.#registerServer(name, {'rpcurl': url, 'auth': `Basic ${btoa(`${user}:${pass}`)}`});
addServer(name, url, user = null, pass = '') {
let initdata = {rpcurl: url};
if (user != null) {
initdata.auth = `Basic ${btoa(`${user}:${pass}`)}`
}
this.#registerServer(name, initdata);
this.#saveServers();
}
@@ -136,7 +140,43 @@ class trdom_servermanager extends EventTarget {
switch (e.currentTarget.getAttributeNS('trweb', 'servermanagerbutton')) {
case 'add':
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;
case 'block':
e.stopPropagation();