diff --git a/freechat-client/src/settings.js b/freechat-client/src/settings.js new file mode 100644 index 0000000..50184ac --- /dev/null +++ b/freechat-client/src/settings.js @@ -0,0 +1,37 @@ +const { ipcRenderer } = require('electron') +const $ = require('jquery') +const auth = require('./auth.js') + +exports.add_server_to_config = async function() { + $('#admin-json-err').text('') + try { + const data = JSON.parse($('#admin-json').val()) + const config = await ipcRenderer.invoke('config-request') + if(!config['servers']) { + config['servers'] = [] + } + config['servers'].push(data) + + await ipcRenderer.invoke('config-update', config, config['path']) + + try { + await auth.login( + data['server']['protocol'], + data['server']['host'], + data['server']['port'], + data['user'] + ) + $('#admni-json-err').text('=|:^)') + } catch(err) { + // probably a bad config that got parsed properly + if(err.name == 'TypeError') { + $('#admin-json-err').text("New server config did not have required JSON values to login but was saved") + } else { + $('#admin-json-err').text("Config parsed but couldn't login") + } + } + } catch(err) { + $('#admin-json-err').text('Failed to setup new config') + console.log(err) + } +}