✨ Moving as much auth/initialization logic out of index.html
➕ New local push function in auth for push server buttons onto the dom
This commit is contained in:
parent
911edd8114
commit
b5822cd3f1
@ -114,50 +114,15 @@
|
|||||||
(async () => {
|
(async () => {
|
||||||
const { ipcRenderer } = require('electron')
|
const { ipcRenderer } = require('electron')
|
||||||
const auth = require('../src/auth.js')
|
const auth = require('../src/auth.js')
|
||||||
const channels = require('../src/channels.js')
|
|
||||||
|
|
||||||
const { add_server_to_config } = require ('../src/settings.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() )
|
$('#add-admin-json').click(async () => await add_server_to_config() )
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let config = await auth.init()
|
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(
|
|
||||||
$('<input>').attr({
|
|
||||||
type: 'button',
|
|
||||||
'class' : classes,
|
|
||||||
id: id,
|
|
||||||
value: txt
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
$(`#${id}`).on('click', async () => await channels.list(remote, user))
|
|
||||||
}
|
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
|
console.log('Failure in IPC call')
|
||||||
console.log(err)
|
console.log(err)
|
||||||
$('#server-list').append(
|
|
||||||
$('<input>').attr({
|
|
||||||
type: 'button',
|
|
||||||
'class': classes + ' disabled',
|
|
||||||
value: 'Problems setting up from config'
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
</script>
|
</script>
|
||||||
|
@ -2,6 +2,23 @@ const { ipcRenderer } = require('electron')
|
|||||||
const got = require('got')
|
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 = $('<input>').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} protocol http|https
|
||||||
* @param {String} host Just the hostname one.two.xyz
|
* @param {String} host Just the hostname one.two.xyz
|
||||||
@ -34,16 +51,19 @@ exports.init = async function() {
|
|||||||
const config = await ipcRenderer.invoke('config-request')
|
const config = await ipcRenderer.invoke('config-request')
|
||||||
|
|
||||||
for(const index in config.data['servers']) {
|
for(const index in config.data['servers']) {
|
||||||
console.log('Initial login', config.data['servers'][index])
|
|
||||||
const remote = config.data['servers'][index]['server']
|
const remote = config.data['servers'][index]['server']
|
||||||
const user = config.data['servers'][index]['user']
|
const user = config.data['servers'][index]['user']
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// update the jwt first
|
|
||||||
const jwt = await login(remote['protocol'], remote['hostname'], remote['port'], user)
|
const jwt = await login(remote['protocol'], remote['hostname'], remote['port'], user)
|
||||||
config.data['servers'][index]['user']['jwt'] = jwt
|
config.data['servers'][index]['user']['jwt'] = jwt
|
||||||
|
user['jwt'] = jwt
|
||||||
|
|
||||||
|
push_srv(remote, user, true);
|
||||||
} catch (err) {
|
} 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user