+Setting proper callbacks on
* Prefering server domains for get's in build_server_list * Fixing jsdoc for new_node to not be garbage
This commit is contained in:
parent
ac9668557b
commit
1e6a9ac844
@ -1,11 +1,10 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* {String} id | id for the
|
* @param {String} id HTML ID
|
||||||
* {Object} attrs | config object with the following valid fields and their types
|
* @param {String} type Base tag type => examples include 'button' 'div'
|
||||||
|
* @param {Object} attrs Config object with the following valid fields and their types
|
||||||
*
|
*
|
||||||
* NOTE: all these fields are optional
|
* @returns HTMLElement
|
||||||
* {Array<String>} attrs.class | classes to apply to the new node
|
|
||||||
* {String} attrs.textContent | Textual content to write
|
|
||||||
*/
|
*/
|
||||||
exports.new_node = function (id, type, attrs) {
|
exports.new_node = function (id, type, attrs) {
|
||||||
let node = document.createElement(type)
|
let node = document.createElement(type)
|
||||||
@ -26,19 +25,28 @@ exports.new_node = function(id, type, attrs) {
|
|||||||
* {String} dom_id | element container for the server list itself
|
* {String} dom_id | element container for the server list itself
|
||||||
* */
|
* */
|
||||||
exports.build_server_list = function (config, dom_id) {
|
exports.build_server_list = function (config, dom_id) {
|
||||||
if(!config['servers']) {
|
const channels = require('./channels.js')
|
||||||
return;
|
if(!config['servers']) { return; }
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let container = document.getElementById(dom_id)
|
let container = document.getElementById(dom_id)
|
||||||
|
|
||||||
for(const server of config['servers']) {
|
for(const server of config['servers']) {
|
||||||
let child = html.new_node(server['ip'] || server['url'], 'button', {
|
const id = server['domain'] || server['ip']
|
||||||
|
|
||||||
|
let child = html.new_node(id, 'button', {
|
||||||
'classList': ['btn', 'btn-outline-secondary', 'btn-nav-settings'],
|
'classList': ['btn', 'btn-outline-secondary', 'btn-nav-settings'],
|
||||||
'textContent': server['name'],
|
'textContent': server['name'],
|
||||||
'type': 'button'
|
'type': 'button',
|
||||||
|
'onClick': channels.get_channels(id, server['port'])
|
||||||
})
|
})
|
||||||
|
// Why not jquery? because it doesn't write to the node's attributes itself
|
||||||
|
// for some reason
|
||||||
|
child.addEventListener('click', function() {
|
||||||
|
// NOTE: at some point /invite/<code> will be handled on port
|
||||||
|
channels.get_channels(server['domain'], server['port'])
|
||||||
|
})
|
||||||
|
|
||||||
container.appendChild(child)
|
container.appendChild(child)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user