From f7300b8b5b25e888048f764ab0781b8b004f4159 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 8 Feb 2021 17:53:35 -0800 Subject: [PATCH] Added support for array of altmessaging. --- meshuser.js | 3 ++- views/default.handlebars | 16 +++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/meshuser.js b/meshuser.js index 9d01743f..da894d9d 100644 --- a/meshuser.js +++ b/meshuser.js @@ -459,7 +459,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } if (matchingDomains.length > 0) { serverinfo.amtAcmFqdn = matchingDomains; } } - if ((typeof domain.altmessenging == 'object') && (typeof domain.altmessenging.name == 'string') && (typeof domain.altmessenging.url == 'string')) { serverinfo.altmessenging = { name: domain.altmessenging.name, url: domain.altmessenging.url }; } + if ((typeof domain.altmessenging == 'object') && (typeof domain.altmessenging.name == 'string') && (typeof domain.altmessenging.url == 'string')) { serverinfo.altmessenging = [{ name: domain.altmessenging.name, url: domain.altmessenging.url }]; } + if (Array.isArray(domain.altmessenging)) { serverinfo.altmessenging = []; for (var i in domain.altmessenging) { if ((typeof domain.altmessenging[i] == 'object') && (typeof domain.altmessenging[i].name == 'string') && (typeof domain.altmessenging[i].url == 'string')) { serverinfo.altmessenging.push({ name: domain.altmessenging[i].name, url: domain.altmessenging[i].url }); } } } serverinfo.https = true; serverinfo.redirport = args.redirport; diff --git a/views/default.handlebars b/views/default.handlebars index a66e2e76..52db6ce4 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -5980,7 +5980,9 @@ if ((meshrights & 8) && ((connectivity & 1) || ((node.pmt == 1) && ((features2 & 2) != 0)))) { x += ''; } //if ((connectivity & 1) && (meshrights & 8) && (node.agent.id < 5)) { x += ''; } if ((meshrights & 8) && (connectivity & 1) || ((node.pmt == 1) && ((features2 & 2) != 0))) { x += ''; } - if ((serverinfo != null) && (serverinfo.altmessenging != null) && (meshrights & 8) && (connectivity & 1)) { x += ''; } + if ((serverinfo != null) && (serverinfo.altmessenging != null) && (meshrights & 8) && (connectivity & 1)) { + for (var i in serverinfo.altmessenging) { x += ''; } + } if ((serverinfo.guestdevicesharing !== false) && (node.agent != null) && (node.agent.caps & 3) && (connectivity & 1) && ((meshrights & 0x80008) == 0x80008) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 0x1000) == 0))) { x += ''; } // Custom UI @@ -6315,9 +6317,9 @@ meshserver.send({ action: 'meshmessenger', nodeid: decodeURIComponent(currentNode._id) }); } - function altDeviceChat(e) { + function altDeviceChat(e, i) { if (xxdialogMode) return; - var url = serverinfo.altmessenging.url.split('{0}').join(currentNode._id.split('/').join('-')); + var url = serverinfo.altmessenging[i].url.split('{0}').join(currentNode._id.split('/').join('-')); meshserver.send({ action: 'msg', type: 'openUrl', nodeid: currentNode._id, url: url }); safeNewWindow(url, 'altmessenger:' + currentNode._id, 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=560'); } @@ -11819,12 +11821,12 @@ return false; } - function altUserChat(e, userid, name) { + function altUserChat(e, userid, name, i) { if (xxdialogMode) return; haltEvent(e); - var url = serverinfo.altmessenging.url.split('{0}').join(userid.split('/').join('-')); + var url = serverinfo.altmessenging[i].url.split('{0}').join(userid.split('/').join('-')); safeNewWindow(url, 'altmessenger:' + userid); - meshserver.send({ action: 'notifyuser', userid: decodeURIComponent(userid), msg: serverinfo.altmessenging.name, msgid: 11, url: url }); + meshserver.send({ action: 'notifyuser', userid: decodeURIComponent(userid), msg: serverinfo.altmessenging[i].name, msgid: 11, url: url }); return false; } @@ -12732,7 +12734,7 @@ if (!self && (activeSessions > 0)) { x += ''; x += ''; - if ((serverinfo != null) && (serverinfo.altmessenging != null)) { x += ''; } + if ((serverinfo != null) && (serverinfo.altmessenging != null)) { for (var i in serverinfo.altmessenging) { x += ''; } } } // Setup the panel