add settings
This commit is contained in:
@ -1,176 +1,130 @@
|
|||||||
/**
|
/**
|
||||||
WebConsole Persistence Manager for WebConsole
|
WebConsole Persistence Manager for WebConsole
|
||||||
Used to save your servers and config into your browser
|
Used to save your servers and config into your browser
|
||||||
https://github.com/mesacarlos
|
https://github.com/mesacarlos
|
||||||
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 found = false; var servers = this.getAllServers();
|
||||||
var i;
|
for (i = 0; i < servers.length; i++) {
|
||||||
var found = false;
|
if(servers[i].serverName == serverObject.serverName){
|
||||||
var servers = this.getAllServers();
|
//Exists, replacing it
|
||||||
for (i = 0; i < servers.length; i++) {
|
servers[i] = serverObject; found = true;
|
||||||
if(servers[i].serverName == serverObject.serverName){
|
}
|
||||||
//Exists, replacing it
|
}
|
||||||
servers[i] = serverObject;
|
//Not found, adding it
|
||||||
found = true;
|
if(found == false){ servers.push(serverObject); }
|
||||||
}
|
this.replaceAllServers(servers);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
//Not found, adding it
|
* Delete server from saved servers
|
||||||
if(found == false){
|
*/
|
||||||
servers.push(serverObject);
|
deleteServer(serverName){
|
||||||
}
|
//Find server
|
||||||
|
var i; var index = -1; var servers = this.getAllServers();
|
||||||
this.replaceAllServers(servers);
|
for (i = 0; i < servers.length; i++) {
|
||||||
}
|
if(servers[i].serverName == serverName){ index = i; }
|
||||||
|
}
|
||||||
/**
|
if(index > -1){ servers.splice(index, 1); } //Delete it
|
||||||
* Delete server from saved servers
|
this.replaceAllServers(servers); //Save to WebStorage
|
||||||
*/
|
}
|
||||||
deleteServer(serverName){
|
/**
|
||||||
//Find server
|
* Get server details as object
|
||||||
var i;
|
*/
|
||||||
var index = -1;
|
getServer(serverName){
|
||||||
var servers = this.getAllServers();
|
var i; 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]; }
|
||||||
index = i;
|
}
|
||||||
}
|
}
|
||||||
}
|
/**
|
||||||
|
* Get all servers
|
||||||
//Delete it
|
*/
|
||||||
if(index > -1){
|
getAllServers(){
|
||||||
servers.splice(index, 1);
|
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
||||||
}
|
return storageObj.servers;
|
||||||
|
}
|
||||||
//Save to WebStorage
|
/**
|
||||||
this.replaceAllServers(servers);
|
* Save language for this client
|
||||||
}
|
*/
|
||||||
|
setLanguage(lang){
|
||||||
/**
|
var storageObj = JSON.parse(window.localStorage.WebConsole); //Retrieve saved data
|
||||||
* Get server details as object
|
storageObj.language = lang;
|
||||||
*/
|
window.localStorage.WebConsole = JSON.stringify(storageObj); //Save to WebStorage
|
||||||
getServer(serverName){
|
}
|
||||||
var i;
|
/**
|
||||||
var servers = this.getAllServers();
|
* Get saved language for this client
|
||||||
for (i = 0; i < servers.length; i++) {
|
*/
|
||||||
if(servers[i].serverName == serverName){
|
getLanguage(){
|
||||||
return servers[i];
|
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
||||||
}
|
if(!storageObj.language) return "en_US";
|
||||||
}
|
return storageObj.language;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
/**
|
* Create server list if not defined
|
||||||
* Get all servers
|
*/
|
||||||
*/
|
initializeLocalStorage(){
|
||||||
getAllServers(){
|
if (typeof window.localStorage.WebConsole === 'undefined') {
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
//Create empty object
|
||||||
return storageObj.servers;
|
var storageObj = new Object();
|
||||||
}
|
storageObj.servers = new Array();
|
||||||
|
storageObj.language = "en_US";
|
||||||
/**
|
//Save to WebStorage
|
||||||
* Save language for this client
|
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
||||||
*/
|
}
|
||||||
setLanguage(lang){
|
}
|
||||||
//Retrieve saved data
|
/**
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
* Replaces all server list with provided list
|
||||||
storageObj.language = lang;
|
*/
|
||||||
|
replaceAllServers(newServerList){
|
||||||
//Save to WebStorage
|
//Retrieve saved data
|
||||||
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
||||||
}
|
storageObj.servers = newServerList;
|
||||||
|
//Save to WebStorage
|
||||||
/**
|
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
||||||
* Get saved language for this client
|
}
|
||||||
*/
|
/**
|
||||||
getLanguage(){
|
* Create settings object if not defined or populate with new options if updating
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
*/
|
||||||
if(!storageObj.language)
|
initializeSettings(){
|
||||||
return "en_US";
|
this.initializeLocalStorage();
|
||||||
return storageObj.language;
|
//Create settings object
|
||||||
}
|
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
|
||||||
|
if (typeof currentSettings === 'undefined') { 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)
|
||||||
* Create server list if not defined
|
var settings = {
|
||||||
*/
|
dateTimePrefix : new Setting("dateTimePrefix", true),
|
||||||
initializeLocalStorage(){
|
retrieveLogFile : new Setting("retrieveLogFile", true),
|
||||||
if (typeof window.localStorage.WebConsole === 'undefined') {
|
infoRefreshInterval : new Setting("infoRefreshInterval", 2500),
|
||||||
//Create empty object
|
consoleFontSize : new Setting("consoleFontSize", 14)
|
||||||
var storageObj = new Object();
|
}
|
||||||
storageObj.servers = new Array();
|
//Set settings
|
||||||
storageObj.language = "en_US";
|
jQuery.each(settings, (key, settingObj) =>{
|
||||||
|
if(!currentSettings.hasOwnProperty(settingObj.name)) currentSettings[settingObj.name] = settingObj.defaultValue;
|
||||||
//Save to WebStorage
|
});
|
||||||
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
//Save all
|
||||||
}
|
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
||||||
}
|
storageObj.settings = currentSettings;
|
||||||
|
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
||||||
/**
|
}
|
||||||
* Replaces all server list with provided list
|
/**
|
||||||
*/
|
* Update setting value
|
||||||
replaceAllServers(newServerList){
|
*/
|
||||||
//Retrieve saved data
|
setSetting(name, value){
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
|
||||||
storageObj.servers = newServerList;
|
currentSettings[name] = value;
|
||||||
|
//Save all
|
||||||
//Save to WebStorage
|
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
||||||
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
storageObj.settings = currentSettings;
|
||||||
}
|
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Create settings object if not defined or populate with new options if updating
|
* Get setting value
|
||||||
*/
|
*/
|
||||||
initializeSettings(){
|
getSetting(name){ return JSON.parse(window.localStorage.WebConsole).settings[name]; }
|
||||||
this.initializeLocalStorage();
|
|
||||||
|
|
||||||
//Create settings object
|
|
||||||
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
|
|
||||||
if (typeof currentSettings === 'undefined') {
|
|
||||||
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)
|
|
||||||
var settings = {
|
|
||||||
dateTimePrefix : new Setting("dateTimePrefix", true),
|
|
||||||
retrieveLogFile : new Setting("retrieveLogFile", true)
|
|
||||||
}
|
|
||||||
|
|
||||||
//Set settings
|
|
||||||
jQuery.each(settings, (key, settingObj) =>{
|
|
||||||
if(!currentSettings.hasOwnProperty(settingObj.name))
|
|
||||||
currentSettings[settingObj.name] = settingObj.defaultValue;
|
|
||||||
});
|
|
||||||
|
|
||||||
//Save all
|
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
|
||||||
storageObj.settings = currentSettings;
|
|
||||||
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update setting value
|
|
||||||
*/
|
|
||||||
setSetting(name, value){
|
|
||||||
var currentSettings = JSON.parse(window.localStorage.WebConsole).settings;
|
|
||||||
currentSettings[name] = value;
|
|
||||||
|
|
||||||
//Save all
|
|
||||||
var storageObj = JSON.parse(window.localStorage.WebConsole);
|
|
||||||
storageObj.settings = currentSettings;
|
|
||||||
window.localStorage.WebConsole = JSON.stringify(storageObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get setting value
|
|
||||||
*/
|
|
||||||
getSetting(name){
|
|
||||||
return JSON.parse(window.localStorage.WebConsole).settings[name];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user