Files
trweb/js/trdom_servermanager.js
Fehér Roland 9d13a71dc1 Modularize code
Split JS into per-class files
Cut parts of trweb class out
Move init code from event handler to constructor
2025-10-08 14:30:54 +02:00

61 lines
1.5 KiB
JavaScript

"use strict";
class trdom_servermanager {
#logcb;
#log(loglevel, msg) {
if (this.#logcb !== null) {
this.#logcb('trdom_servermanager', loglevel, msg);
}
}
#servers = {};
getServers() {
return this.#servers;
}
#registerServer;
#loadcb;
#loadServers() {
let serverjson = this.#loadcb('servers');
this.#servers = {};
if (serverjson == null) {
this.#log(4, 'No saved server data found');
}
else {
let serverdata = JSON.parse(serverjson);
for (const [key, value] of Object.entries(serverdata)) {
this.#registerServer(key, value);
}
this.#log(5, `Loaded ${Object.keys(this.#servers).length} servers`);
}
}
loadServers() {
this.#loadServers();
}
#savecb;
#saveServers() {
let serverdata = {};
for (const [key, value] of Object.entries(this.#servers)) {
serverdata[key] = value.getInstanceData();
}
this.#log(5, `Saving ${Object.keys(serverdata).length} servers`);
this.#savecb('servers', JSON.stringify(serverdata));
}
saveServers() {
this.#saveServers();
}
constructor (loadcb = null, savecb = null, logcb = null, registerServer = null) {
this.#loadcb = loadcb;
this.#savecb = savecb;
this.#logcb = logcb
this.#registerServer = registerServer;
//this.#servers = this.#loadServers();
}
}