Updated computer power state timeline export to ISO format, added local browser time.

Ylian Saint-Hilaire committed Jun 16, 2021 at 14:23 UTC 8b3f24b5dc1372eaa6776b39bed7bb2914606f96
2 files changed +11 -5
views/default.handlebars
+1 -2
@@ -7242,8 +7242,7 @@
7242 ++count;
7243 date = new Date(date.getTime() - (1000 * 60 * 60 * 24)); // Substract one day
7244 }
7245 -
7246 - QH('p10html2', '<table cellpadding=2 cellspacing=0><thead><tr style=><th scope=col style=text-align:center;width:150px>' + "Day" + '</th><th scope=col style=text-align:center><a onclick=downloadFile("devicepowerevents.ashx?id=' + currentNode._id + (urlargs.key?('&key=' + urlargs.key):'') + '",null,true)><img title="' + "Download power events" + '" src="images/link4.png" /></a>' + "7 Day Power State" + '</th></tr></thead><tbody>' + x + '</tbody></table>');
7245 + QH('p10html2', '<table cellpadding=2 cellspacing=0><thead><tr style=><th scope=col style=text-align:center;width:150px>' + "Day" + '</th><th scope=col style=text-align:center><a onclick=downloadFile("devicepowerevents.ashx?id=' + currentNode._id + '&tf=' + new Date().getTimezoneOffset() + (urlargs.key?('&key=' + urlargs.key):'') + '",null,true)><img title="' + "Download power events" + '" src="images/link4.png" /></a>' + "7 Day Power State" + '</th></tr></thead><tbody>' + x + '</tbody></table>');
7246 }
7247
7248 // Return a color for the given power state
webserver.js
+10 -3
@@ -5208,17 +5208,24 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
5208 // Check if we have right to this node
5209 if (obj.GetNodeRights(user, node.meshid, node._id) == 0) { res.sendStatus(401); return; }
5210
5211 + // Get local time offset
5212 + var localTimeOffset = 0;
5213 + if (req.query.tf != null) { localTimeOffset = parseInt(req.query.tf) }
5214 + if (isNaN(localTimeOffset)) { localTimeOffset = 0; }
5215 +
5216 // Get the list of power events and send them
5217 setContentDispositionHeader(res, 'application/octet-stream', 'powerevents.csv', null, 'powerevents.csv');
5218 obj.db.getPowerTimeline(node._id, function (err, docs) {
5214 - var xevents = ['Time, State, Previous State'], prevState = 0;
5219 + var xevents = ['UTC Time, Local Time, State, Previous State'], prevState = 0;
5220 for (var i in docs) {
5221 if (docs[i].power != prevState) {
5222 prevState = docs[i].power;
5223 + var localTime = new Date(docs[i].time.getTime() + (localTimeOffset * 60000)).toISOString();
5224 + localTime = localTime.substring(0, localTime.length - 1);
5225 if (docs[i].oldPower != null) {
5219 - xevents.push(docs[i].time.toString() + ',' + docs[i].power + ',' + docs[i].oldPower);
5226 + xevents.push(docs[i].time.toISOString() + ',' + localTime + ',' + docs[i].power + ',' + docs[i].oldPower);
5227 } else {
5221 - xevents.push(docs[i].time.toString() + ',' + docs[i].power);
5228 + xevents.push(docs[i].time.toISOString() + ',' + localTime + ',' + docs[i].power);
5229 }
5230 }
5231 }