start noting when a node hasn't responded in a while
all nodes should keep in touch with the master at least every 15 minutes
(preferably every 5!), so if they don't, something is probably wrong
diff --git a/ui/css/warble.min.css b/ui/css/warble.min.css
index 4bb27c5..395e956 100644
--- a/ui/css/warble.min.css
+++ b/ui/css/warble.min.css
@@ -3110,6 +3110,12 @@
color: #FFF;
}
+.clientcard.red {
+ background: linear-gradient(to bottom, #b21e40 0, #991e39 100%);
+ color: #FFF;
+
+}
+
.clientcard input {
background: rgba(255,255,200,0.45);
border: 1.5px inset #333;
diff --git a/ui/js/coffee/warble_clientlist.coffee b/ui/js/coffee/warble_clientlist.coffee
index 053dd0e..3f35b18 100644
--- a/ui/js/coffee/warble_clientlist.coffee
+++ b/ui/js/coffee/warble_clientlist.coffee
@@ -211,12 +211,20 @@
# node last ping
line = new HTML('div', {class: 'clientcardline'})
lp = new Date(source.lastping*1000.0)
+ now = new Date()
line.inject( [
new HTML('b', {}, "Last Active: "),
txt(moment(lp).fromNow() + " (" + lp.ISOBare() + ")")
])
d.inject(line)
+ # Check for inactive (dead?) nodes
+ if (moment(now).unix() - moment(lp).unix() > 900)
+ card.setAttribute("class", "clientcard red")
+ line.inject(txt(" - Node dead?!"))
+ lline.inject(txt(" - (no contact for > 15 minutes!)"))
+
+
#app(slist, tbl)
state.widget.inject(slist, true)