From 50aceaf719bb58adf4a52dbceb6cce7cb7d366c0 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 16 May 2022 17:53:57 -0700 Subject: [PATCH] Improved device list view for local devices, #3949 --- views/default.handlebars | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) 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)) {