diff --git a/common/config.js b/common/config.js index 21ca9c8950f2bed40a71d393e69b43f16b4f8660..18263cb1922a00fb0a942bf2d828bafd0dceac4f 100644 --- a/common/config.js +++ b/common/config.js @@ -37,10 +37,30 @@ var config = { this.database = __config.database.path; this.host = __config.lektord.host; this.port = __config.lektord.port; + this.attachmode = __config.lektord.attach; this.loglevel = __config.log.level; this.loglektord = __config.log.lektord; fs.writeFileSync(__configFile, ini.stringify(__config)); + + this.flush(); + }, + flush() { + const __config = { + database: { + path: this.database, + }, + lektord: { + host: this.host, + port: this.port, + attach: this.attachmode, + }, + log: { + level: this.loglevel, + lektord: this.loglektord, + }, + }; + fs.writeFileSync(__configFile, ini.stringify(__config)); }, }; diff --git a/instance/index.html b/instance/index.html index 04701552b834ae6a5c91a9cac2f81f5ea5619005..cfc848e92a1da0558f857a6caeaf3893e1025dd1 100644 --- a/instance/index.html +++ b/instance/index.html @@ -67,7 +67,7 @@ <fieldset class="form-group"> <div class="row"> <legend class="col-form-label col-sm-2 pt-0">Log level</legend> - <div class="col-sm-10"> + <div class="col-sm-10" id="inputLogLevel"> <div class="form-check"> <input class="form-check-input" @@ -84,10 +84,10 @@ class="form-check-input" type="radio" name="gridRadios" - id="logWARNINGS" - value="WARNINGS" + id="logWARNING" + value="WARNING" /> - <label class="form-check-label" for="logWARNINGS">Warnings</label> + <label class="form-check-label" for="logWARNING">Warning</label> </div> <div class="form-check"> <input diff --git a/instance/main.js b/instance/main.js index cd163b18ded4c253f12d22937ef0adea144b8fda..8b0dc0ea7d990fe7691238add7558355a53b86b0 100644 --- a/instance/main.js +++ b/instance/main.js @@ -43,10 +43,27 @@ function autoFillSettings() { $('#inputPort').val(config.port); $('#inputAttachMode').prop('checked', true); $('#inputDbPath').val(config.database); - $('#inputLogLektord').val(config.loglektord); + $('#inputLogLektord').prop('checked', config.loglektord); $(`#log${config.loglevel.toUpperCase()}`).prop('checked', true); } +function flushFillSettings() { + const set = { + host: $('#inputHost').val(), + port: $('#inputPort').val(), + attachmode: $('#inputAttachMode').prop('checked'), + db: $('#inputDbPath').val(), + loglektord: $('#inputLogLektord').prop('checked'), + loglevel: { + ERROR: $('#logERROR').prop('checked'), + WARNING: $('#logWARNING').prop('checked'), + INFO: $('#logINFO').prop('checked'), + DEBUG: $('#logDEBUG').prop('checked'), + }, + }; + ipcRenderer.send('set-settings', set); +} + window.onload = () => { createButtonList(buttonList); @@ -151,6 +168,7 @@ function createButtonList(list) { span.onclick = function () { modal.style.display = 'none'; + flushFillSettings(); }; window.onclick = function (event) { diff --git a/main.js b/main.js index 7cd3f73d65f3ffa599cc2e29dcbc62dad19b5fa9..68b997f9a5c77aea2ccbfce9b74c74e2b0cd6aed 100644 --- a/main.js +++ b/main.js @@ -252,3 +252,20 @@ ipcMain.on('get-song-time-data', (event, arg) => { }); } }); + +ipcMain.on('set-settings', (event, arg) => { + logger.info('main', `Settings are now: ${JSON.stringify(arg)}`); + config.host = arg.host; + config.port = arg.port; + config.database = arg.db; + config.loglektord = arg.loglektord; + config.attachmode = arg.attachmode; + + /* prettier-ignore */ + config.loglevel = arg.loglevel.ERROR ? 'error' + : arg.loglevel.WARNING ? 'warning' + : arg.loglevel.INFO ? 'info' + : 'debug'; + + config.flush(); +});