vpnmanager/static/js/devices.js
2018-11-28 16:38:35 +01:00

31 lines
964 B
JavaScript

function timeSince(obj) {
last = new Date(obj)
var seconds = Math.floor((new Date() - last) / 1000);
interval = Math.floor(seconds / 3600);
out = "";
if (interval > 24) return "at " + last.toDateString().substr(4) + " " + last.toLocaleTimeString();
if (interval > 1) out = interval + " hours ";
interval = Math.floor(seconds / 60);
if (seconds < 120) out = seconds + " seconds "
else if (interval > 1) out = out + interval + " minutes ";
return out + "ago"
}
function styleStatus(msg, device) {
device_status = $("#" + device + "-indicator");
device_ip = $("#" + device + "-ip");
device_status.css("color", msg.status == 1 ? "green" : (msg.status == 0 ? "red" : "grey"))
if (msg.hasOwnProperty("ip")) {
device_ip.text(msg.ip + (msg.status == 1 ? "" :" (" + timeSince(msg.time) + ")"));
};
};
function updateStatus(device_id) {
$.getJSON( "/devices/" + device_id + "/ping/", function(json) { styleStatus(json, device_id); });
};