diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars index c653ec6a..a43da118 100644 --- a/views/default-mobile.handlebars +++ b/views/default-mobile.handlebars @@ -854,7 +854,7 @@
-
+
@@ -1228,6 +1228,8 @@ var authCookie = '{{{authCookie}}}'; var authRelayCookie = '{{{authRelayCookie}}}'; var authCookieRenewTimer = null; + var webRelayPort = parseInt('{{{webRelayPort}}}'); + var webRelayDns = '{{{webRelayDns}}}'; var meshserver = null; var xdr = null; var usergroups = null; @@ -1911,6 +1913,8 @@ node.rdpport = message.event.node.rdpport; node.rfbport = message.event.node.rfbport; node.sshport = message.event.node.sshport; + node.httpport = message.event.node.httpport; + node.httpsport = message.event.node.httpsport; node.consent = message.event.node.consent; node.pmt = message.event.node.pmt; if (message.event.node.agent != null) { @@ -3572,6 +3576,10 @@ x = '
'; if ((meshrights & 0x8000) != 0) { x += '' + "Delete Device" + ''; } x += '
'; + if (webRelayPort != 0) { + x += '' + "HTTP" + ((node.httpport && (node.httpport != 80)) ? '/' + node.httpport : '') + ' '; + x += '' + "HTTPS" + ((node.httpsport && (node.httpsport != 443)) ? '/' + node.httpsport : '') + ' '; + } //if (mesh.mtype == 2) x += 'Interfaces '; //if (xxmap != null) x += 'Location '; x += '

' @@ -3808,7 +3816,7 @@ // Draw device power bars. The bars are 766px wide. function drawDeviceTimeline() { - if (currentNode.mtype == 3) return; + if (currentNode.mtype == 3) { QH('p10html2', '
'); return; } var timeline = null, now = Date.now(); if (currentNode._id == powerTimelineNode) { timeline = powerTimeline; } @@ -3918,6 +3926,23 @@ meshserver.send({ action: 'removedevices', nodeids: [nodeid] }); } + function p10WebRouter(nodeid, protocol, port, addr) { + var relayid = null; + var node = getNodeFromId(nodeid); + if (node.mtype == 3) { // Setup device relay if needed + var mesh = meshes[node.meshid]; + if (mesh && mesh.relayid) { relayid = mesh.relayid; addr = node.host; } + } + var servername = serverinfo.name; + if ((servername.indexOf('.') == -1) || ((features & 2) != 0)) { servername = window.location.hostname; } // If the server name is not set or it's in LAN-only mode, use the URL hostname as server name. + if (webRelayDns != '') { servername = webRelayDns; } + var url = 'https://' + servername + ':' + webRelayPort + '/control-redirect.ashx?n=' + nodeid + '&p=' + port + '&appid=' + protocol + '&c=' + authRelayCookie; // Protocol: 1 = HTTP, 2 = HTTPS + if (addr != null) { url += '&addr=' + addr; } + if (relayid != null) { url += '&relayid=' + relayid; } + safeNewWindow(url, 'WebRelay'); + return false; + } + function p10showiconselector() { if (xxdialogMode) return; var rights = GetNodeRights(currentNode);