add tags to csv
Signed-off-by: Simon Smith <simonsmith5521@gmail.com>
Simon Smith committed
Oct 6, 2023 at 09:31 UTC
4702926773e9e3650a7767e3226dfd882e5b767b
2 files changed
+19
-4
meshuser.js
+11
-3
@@ -4928,7 +4928,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
4928
if (type == 'csv') {
4929
try {
4930
// Create the CSV file
4931
- output = 'id,name,rname,host,icon,ip,osdesc,groupname,av,update,firewall,bitlocker,avdetails,cpu,osbuild,biosDate,biosVendor,biosVersion,boardName,boardVendor,boardVersion,productUuid,totalMemory,agentOpenSSL,agentCommitDate,agentCommitHash,agentCompileTime,netIfCount,macs,addresses,lastConnectTime,lastConnectAddr\r\n';
4931
+ output = 'id,name,rname,host,icon,ip,osdesc,groupname,av,update,firewall,bitlocker,avdetails,tags,cpu,osbuild,biosDate,biosVendor,biosVersion,boardName,boardVendor,boardVersion,productUuid,totalMemory,agentOpenSSL,agentCommitDate,agentCommitHash,agentCompileTime,netIfCount,macs,addresses,lastConnectTime,lastConnectAddr\r\n';
4932
for (var i = 0; i < results.length; i++) {
4933
const nodeinfo = results[i];
4934
@@ -4950,10 +4950,18 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
4950
var avdetails = '', firstav = true;
4951
for (var a in n.av) { if (typeof n.av[a].product == 'string') { if (firstav) { firstav = false; } else { avdetails += '|'; } avdetails += (n.av[a].product + '/' + ((n.av[a].enabled) ? 'enabled' : 'disabled') + '/' + ((n.av[a].updated) ? 'updated' : 'notupdated')); } }
4952
output += ',' + csvClean(avdetails);
4953
+ } else {
4954
+ output += ',';
4955
+ }
4956
+ if (typeof n.tags == 'object') {
4957
+ var tagsdetails = '', firsttags = true;
4958
+ for (var a in n.tags) { if (firsttags) { firsttags = false; } else { tagsdetails += '|'; } tagsdetails += n.tags[a]; }
4959
+ output += ',' + csvClean(tagsdetails);
4960
+ } else {
4961
+ output += ',';
4962
}
4954
- else { output += ','; }
4963
} else {
4956
- output += ',,,,,,,,,,,,';
4964
+ output += ',,,,,,,,,,,,,';
4965
}
4966
4967
// System infomation
views/default.handlebars
+8
-1
@@ -5763,7 +5763,7 @@
5763
meshserver.send({ action: 'getDeviceDetails', nodeids: chkNodeIds, tz: tz, tf: new Date().getTimezoneOffset(), l: getLang(), type: 'csv' }); // With details
5764
} else {
5765
// Without details
5766
- var csv = "id,name,rname,host,icon,ip,osdesc,state,groupname,conn,pwr,av,update,firewall,bitlocker,avdetails" + '\r\n', r = [];
5766
+ var csv = "id,name,rname,host,icon,ip,osdesc,state,groupname,conn,pwr,av,update,firewall,bitlocker,avdetails,tags" + '\r\n', r = [];
5767
for (var i in chkNodeIds) {
5768
var n = getNodeFromId(chkNodeIds[i]);
5769
csv += '"' + n._id.split(',').join('') + '","' + n.name.split(',').join('') + '","' + (n.rname?(n.rname.split(',').join('')):'') + '","' + (n.host?(n.host.split(',').join('')):'') + '","' + n.icon + '","' + (n.ip?n.ip:'') + '","' + (n.osdesc?(n.osdesc.split(',').join('')):'') + '","' + n.state + '","' + meshes[n.meshid].name.split(',').join('') + '","' + (n.conn?n.conn:'') + '","' + (n.pwr?n.pwr:'') + '"';
@@ -5782,6 +5782,13 @@
5782
else {
5783
csv += ',';
5784
}
5785
+ if (typeof n.tags == 'object') {
5786
+ var tagsdetails = '', firsttags = true;
5787
+ for (var a in n.tags) { if (firsttags) { firsttags = false; } else { tagsdetails += '|'; } tagsdetails += n.tags[a]; }
5788
+ csv += ',"' + csvClean(tagsdetails) + '"'; }
5789
+ else {
5790
+ csv += ',';
5791
+ }
5792
csv += '\r\n';
5793
}
5794
saveAs(stringToUtf8Blob(csv), "devicelist.csv");