diff --git a/views/default.handlebars b/views/default.handlebars
index 91644a73..3c433517 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -4505,6 +4505,14 @@
if ((node.conn & 8) != 0) { states.push('' + "Relay" + ''); }
if ((node.conn & 16) != 0) { states.push('' + "MQTT" + ''); }
}
+ if (node.mtype == 3) {
+ var mesh = meshes[node.meshid];
+ if (mesh && mesh.relayid) {
+ states.push('' + "Relay" + '');
+ } else {
+ states.push('' + "Local" + '');
+ }
+ }
if (node.desc && (deviceViewSettings.devsCols.indexOf('desc') >= 0)) { name = '
' + EscapeHtml(node.desc) + '
' + name + '
'; }
@@ -4523,12 +4531,19 @@
if (!Array.isArray(deviceViewSettings.devsCols)) { deviceViewSettings.devsCols = ['user','ip','conn']; }
// Display configured columns
- if (deviceViewSettings.devsCols.indexOf('agtype') >= 0) { r += '' + EscapeHtml((node.agent && node.agent.id && (node.agent.id <= agentsStr.length))?agentsStr[node.agent.id]:'').replace(',', ' '); } // Agent type
+ if (deviceViewSettings.devsCols.indexOf('agtype') >= 0) { r += ' | ' + EscapeHtml(((node.mtype != 3) && node.agent && node.agent.id && (node.agent.id <= agentsStr.length))?agentsStr[node.agent.id]:'').replace(',', ' '); } // Agent type
if (deviceViewSettings.devsCols.indexOf('agver') >= 0) { r += ' | ' + EscapeHtml((node.agent && node.agent.core)?node.agent.core:'').replace(',', ' '); } // Agent core
- if (deviceViewSettings.devsCols.indexOf('os') >= 0) { r += ' | ' + EscapeHtml(node.osdesc?node.osdesc:''); } // Operating System
+ if (deviceViewSettings.devsCols.indexOf('os') >= 0) { // Operating System
+ if (node.mtype == 3) {
+ var osstr = ''; if (node.agent.id == 4) { osstr = 'Windows'; } if (node.agent.id == 6) { osstr = 'Linux'; } if (node.agent.id == 29) { osstr = 'MacOS'; }
+ r += ' | ' + EscapeHtml(osstr);
+ } else {
+ r += ' | ' + EscapeHtml(node.osdesc?node.osdesc:'');
+ }
+ }
if (deviceViewSettings.devsCols.indexOf('links') >= 0) { r += ' | ' + getShortRouterLinks(node); } // Links
if (deviceViewSettings.devsCols.indexOf('user') >= 0) { r += ' | ' + getUserShortStr(node); } // User
- if (deviceViewSettings.devsCols.indexOf('ip') >= 0) { r += ' | ' + (node.ip != null ? node.ip : ''); } // IP address
+ if (deviceViewSettings.devsCols.indexOf('ip') >= 0) { var ip = ''; if (node.mtype == 3) { ip = node.host; } else if (node.ip) { ip = node.ip; } r += ' | ' + ip; } // IP address
if (deviceViewSettings.devsCols.indexOf('conn') >= 0) { r += ' | ' + states.join(' + '); } // Connectivity
if (deviceViewSettings.devsCols.indexOf('lastseen') >= 0) { r += ' | '; if (node.conn > 0) { r += "Connected"; } else if (node.lastconnect != null) { r += printDateTime(new Date(node.lastconnect)); } }
@@ -4549,7 +4564,7 @@
var x = '', meshrights = GetNodeRights(node);
// RDP link, show this link only of the remote machine is Windows.
- if (((node.conn & 1) != 0) && (node.agent) && ((meshrights & 8) != 0) && (node.agent.id != 14)) {
+ if ((((node.conn & 1) != 0) || (node.mtype == 3)) && (node.agent) && ((meshrights & 8) != 0) && (node.agent.id != 14)) {
if ((node.agent.id > 0) && (node.agent.id < 5)) {
if (navigator.platform.toLowerCase() == 'win32') {
if ((serverinfo.devicemeshrouterlinks == null) || (serverinfo.devicemeshrouterlinks.rdp != false)) {
|