add settings

This commit is contained in:
2025-06-09 19:08:41 -05:00
parent 5739c2d394
commit ecb59b3647

View File

@ -5,67 +5,43 @@
2019-2020 Carlos Mesa under MIT License. 2019-2020 Carlos Mesa under MIT License.
*/ */
class WebConsolePersistenceManager{ class WebConsolePersistenceManager{
/** /**
* Saves or updates server into WebStorage * Saves or updates server into WebStorage
*/ */
saveServer(serverObject){ saveServer(serverObject){
//Check if server exists //Check if server exists
var i; var i; var found = false; var servers = this.getAllServers();
var found = false;
var servers = this.getAllServers();
for (i = 0; i < servers.length; i++) { for (i = 0; i < servers.length; i++) {
if(servers[i].serverName == serverObject.serverName){ if(servers[i].serverName == serverObject.serverName){
//Exists, replacing it //Exists, replacing it
servers[i] = serverObject; servers[i] = serverObject; found = true;
found = true;
} }
} }
//Not found, adding it //Not found, adding it
if(found == false){ if(found == false){ servers.push(serverObject); }
servers.push(serverObject);
}
this.replaceAllServers(servers); this.replaceAllServers(servers);
} }
/** /**
* Delete server from saved servers * Delete server from saved servers
*/ */
deleteServer(serverName){ deleteServer(serverName){
//Find server //Find server
var i; var i; var index = -1; var servers = this.getAllServers();
var index = -1;
var servers = this.getAllServers();
for (i = 0; i < servers.length; i++) { for (i = 0; i < servers.length; i++) {
if(servers[i].serverName == serverName){ if(servers[i].serverName == serverName){ index = i; }
index = i;
}
} }
if(index > -1){ servers.splice(index, 1); } //Delete it
//Delete it this.replaceAllServers(servers); //Save to WebStorage
if(index > -1){
servers.splice(index, 1);
}
//Save to WebStorage
this.replaceAllServers(servers);
} }
/** /**
* Get server details as object * Get server details as object
*/ */
getServer(serverName){ getServer(serverName){
var i; var i; var servers = this.getAllServers();
var servers = this.getAllServers();
for (i = 0; i < servers.length; i++) { for (i = 0; i < servers.length; i++) {
if(servers[i].serverName == serverName){ if(servers[i].serverName == serverName){ return servers[i]; }
return servers[i];
}
} }
} }
/** /**
* Get all servers * Get all servers
*/ */
@ -73,29 +49,22 @@ class WebConsolePersistenceManager{
var storageObj = JSON.parse(window.localStorage.WebConsole); var storageObj = JSON.parse(window.localStorage.WebConsole);
return storageObj.servers; return storageObj.servers;
} }
/** /**
* Save language for this client * Save language for this client
*/ */
setLanguage(lang){ setLanguage(lang){
//Retrieve saved data var storageObj = JSON.parse(window.localStorage.WebConsole); //Retrieve saved data
var storageObj = JSON.parse(window.localStorage.WebConsole);
storageObj.language = lang; storageObj.language = lang;
window.localStorage.WebConsole = JSON.stringify(storageObj); //Save to WebStorage
//Save to WebStorage
window.localStorage.WebConsole = JSON.stringify(storageObj);
} }
/** /**
* Get saved language for this client * Get saved language for this client
*/ */
getLanguage(){ getLanguage(){
var storageObj = JSON.parse(window.localStorage.WebConsole); var storageObj = JSON.parse(window.localStorage.WebConsole);
if(!storageObj.language) if(!storageObj.language) return "en_US";
return "en_US";
return storageObj.language; return storageObj.language;
} }
/** /**
* Create server list if not defined * Create server list if not defined
*/ */
@ -105,12 +74,10 @@ class WebConsolePersistenceManager{
var storageObj = new Object(); var storageObj = new Object();
storageObj.servers = new Array(); storageObj.servers = new Array();
storageObj.language = "en_US"; storageObj.language = "en_US";
//Save to WebStorage //Save to WebStorage
window.localStorage.WebConsole = JSON.stringify(storageObj); window.localStorage.WebConsole = JSON.stringify(storageObj);
} }
} }
/** /**
* Replaces all server list with provided list * Replaces all server list with provided list
*/ */
@ -118,59 +85,46 @@ class WebConsolePersistenceManager{
//Retrieve saved data //Retrieve saved data
var storageObj = JSON.parse(window.localStorage.WebConsole); var storageObj = JSON.parse(window.localStorage.WebConsole);
storageObj.servers = newServerList; storageObj.servers = newServerList;
//Save to WebStorage //Save to WebStorage
window.localStorage.WebConsole = JSON.stringify(storageObj); window.localStorage.WebConsole = JSON.stringify(storageObj);
} }
/** /**
* Create settings object if not defined or populate with new options if updating * Create settings object if not defined or populate with new options if updating
*/ */
initializeSettings(){ initializeSettings(){
this.initializeLocalStorage(); this.initializeLocalStorage();
//Create settings object //Create settings object
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings; var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
if (typeof currentSettings === 'undefined') { if (typeof currentSettings === 'undefined') { currentSettings = new Object(); }
currentSettings = new Object();
}
//Setting array initialization. If you need to add more settings, add them here. Any object is valid as a value (not only bool) //Setting array initialization. If you need to add more settings, add them here. Any object is valid as a value (not only bool)
var settings = { var settings = {
dateTimePrefix : new Setting("dateTimePrefix", true), dateTimePrefix : new Setting("dateTimePrefix", true),
retrieveLogFile : new Setting("retrieveLogFile", true) retrieveLogFile : new Setting("retrieveLogFile", true),
infoRefreshInterval : new Setting("infoRefreshInterval", 2500),
consoleFontSize : new Setting("consoleFontSize", 14)
} }
//Set settings //Set settings
jQuery.each(settings, (key, settingObj) =>{ jQuery.each(settings, (key, settingObj) =>{
if(!currentSettings.hasOwnProperty(settingObj.name)) if(!currentSettings.hasOwnProperty(settingObj.name)) currentSettings[settingObj.name] = settingObj.defaultValue;
currentSettings[settingObj.name] = settingObj.defaultValue;
}); });
//Save all //Save all
var storageObj = JSON.parse(window.localStorage.WebConsole); var storageObj = JSON.parse(window.localStorage.WebConsole);
storageObj.settings = currentSettings; storageObj.settings = currentSettings;
window.localStorage.WebConsole = JSON.stringify(storageObj); window.localStorage.WebConsole = JSON.stringify(storageObj);
} }
/** /**
* Update setting value * Update setting value
*/ */
setSetting(name, value){ setSetting(name, value){
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings; var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
currentSettings[name] = value; currentSettings[name] = value;
//Save all //Save all
var storageObj = JSON.parse(window.localStorage.WebConsole); var storageObj = JSON.parse(window.localStorage.WebConsole);
storageObj.settings = currentSettings; storageObj.settings = currentSettings;
window.localStorage.WebConsole = JSON.stringify(storageObj); window.localStorage.WebConsole = JSON.stringify(storageObj);
} }
/** /**
* Get setting value * Get setting value
*/ */
getSetting(name){ getSetting(name){ return JSON.parse(window.localStorage.WebConsole).settings[name]; }
return JSON.parse(window.localStorage.WebConsole).settings[name];
}
} }