diff --git a/freechat-client/pages/index.html b/freechat-client/pages/index.html index c8182a2..158f617 100644 --- a/freechat-client/pages/index.html +++ b/freechat-client/pages/index.html @@ -114,50 +114,15 @@ (async () => { const { ipcRenderer } = require('electron') const auth = require('../src/auth.js') - const channels = require('../src/channels.js') - const { add_server_to_config } = require ('../src/settings.js') - - // used for basic styling on server buttons - const classes = 'btn btn-outline-secondary btn-nav-settings' - - // NOTE: this will probably take minute if your in a lot of servers - // even worse if server owners are running debug builds like tards - // get a new jwt from each server on startup $('#add-admin-json').click(async () => await add_server_to_config() ) try { - let config = await auth.init() - - for(const server_cfg of config.data['servers']) { - const remote = server_cfg['server'] - const user = server_cfg['user'] - - // html generation - const id = remote['hostname'] - const txt = remote['name'] - - $('#server-list').append( - $('').attr({ - type: 'button', - 'class' : classes, - id: id, - value: txt - }) - ) - - $(`#${id}`).on('click', async () => await channels.list(remote, user)) - } + await auth.init() } catch(err) { + console.log('Failure in IPC call') console.log(err) - $('#server-list').append( - $('').attr({ - type: 'button', - 'class': classes + ' disabled', - value: 'Problems setting up from config' - }) - ) } })() diff --git a/freechat-client/src/auth.js b/freechat-client/src/auth.js index 9fc7b9c..d30b4d3 100644 --- a/freechat-client/src/auth.js +++ b/freechat-client/src/auth.js @@ -2,6 +2,23 @@ const { ipcRenderer } = require('electron') const got = require('got') +function push_srv(remote, user, enabled) { + let classes = 'btn btn-outline-secondary btn-nav-settings' + if(!enabled) { classes += ' disabled' } + + let btn = $('').attr({ + type: 'button', + 'class': classes, + id: remote['hostname'], + value: remote['name'] + }) + + let cb = async () => { await channels.list(remote, user) } + $(`#${remote['hostname']}`).on('click', cb) + + $('#server-list').append(btn) +} + /** * @param {String} protocol http|https * @param {String} host Just the hostname one.two.xyz @@ -34,16 +51,19 @@ exports.init = async function() { const config = await ipcRenderer.invoke('config-request') for(const index in config.data['servers']) { - console.log('Initial login', config.data['servers'][index]) const remote = config.data['servers'][index]['server'] const user = config.data['servers'][index]['user'] try { - // update the jwt first const jwt = await login(remote['protocol'], remote['hostname'], remote['port'], user) config.data['servers'][index]['user']['jwt'] = jwt + user['jwt'] = jwt + + push_srv(remote, user, true); } catch (err) { - continue + push_srv(remote, user, false) + const e_container = { error: err, server: remote, creds: user } + console.log('Failure to communicate with server: ', e_container) } }