diff --git a/history.html b/history.html
index a153882..cb51067 100644
--- a/history.html
+++ b/history.html
@@ -218,17 +218,20 @@
}
.leaflet-marker-icon.node-new {
- filter: hue-rotate(203deg) brightness(2.5);
- -webkit-filter: hue-rotate(203deg) brightness(2.5);
+ filter: hue-rotate(88deg) brightness(1.5);
+ -webkit-filter: hue-rotate(88deg) brightness(1.5);
}
.leaflet-marker-icon.node-offline {
+ filter: saturate(160%);
+ -webkit-filter: saturate(160%);
+ }
+
+ .leaflet-marker-icon.node-alert {
-webkit-animation: blink 1s linear;
-webkit-animation-iteration-count: infinite;
animation: blink 1s linear;
animation-iteration-count: infinite;
- filter: saturate(160%);
- -webkit-filter: saturate(160%);
}
@-webkit-keyframes blink {
diff --git a/history.js b/history.js
index b3f0f0f..ba5a124 100644
--- a/history.js
+++ b/history.js
@@ -105,7 +105,8 @@ function handle_data(config, map) {
node.lastseen = moment.utc(node.lastseen)
})
- var age = moment().subtract(14, 'days')
+ var now = moment()
+ var age = moment(now).subtract(14, 'days')
var newnodes = limit("firstseen", age, sort("firstseen", nodes).filter(online))
var lostnodes = limit("lastseen", age, sort("lastseen", nodes).filter(offline))
@@ -158,7 +159,7 @@ function handle_data(config, map) {
var gotoAnything = new gotoBuilder(config, showNodeinfo, showLinkinfo)
- var markers = mkmap(map, newnodes, lostnodes, onlinenodes, links, gotoAnything)
+ var markers = mkmap(map, now, newnodes, lostnodes, onlinenodes, links, gotoAnything)
gotoAnything.addMarkers(markers)
@@ -208,7 +209,7 @@ function linkId(d) {
return ids.sort().join("-")
}
-function mkmap(map, newnodes, lostnodes, onlinenodes, graph, gotoAnything) {
+function mkmap(map, now, newnodes, lostnodes, onlinenodes, graph, gotoAnything) {
function mkMarker(dict, iconFunc) {
return function (d) {
var opt = { icon: iconFunc(d),
@@ -245,6 +246,10 @@ function mkmap(map, newnodes, lostnodes, onlinenodes, graph, gotoAnything) {
iconNew.className = "node-new"
iconNew = L.icon(iconNew)
+ var iconOfflineAlert = Object.assign({}, iconBase)
+ iconOfflineAlert.className = "node-offline node-alert"
+ iconOfflineAlert = L.icon(iconOfflineAlert)
+
L.control.zoom({ position: "topright" }).addTo(map)
L.tileLayer("https://otile{s}-s.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg", {
@@ -259,7 +264,13 @@ function mkmap(map, newnodes, lostnodes, onlinenodes, graph, gotoAnything) {
var nodes = newnodes.concat(lostnodes).filter(has_location)
var markers = nodes.map(mkMarker(markersDict, function (d) {
- return d.flags.online ? iconNew : iconOffline
+ if (d.flags.online)
+ return iconNew
+
+ if (d.lastseen.isAfter(moment(now).subtract(1, 'days')))
+ return iconOfflineAlert
+ else
+ return iconOffline
}))
var onlinemarkers = subtract(onlinenodes.filter(has_location), newnodes)