allow editing the node location field in the UI
diff --git a/ui/js/coffee/warble_clientlist.coffee b/ui/js/coffee/warble_clientlist.coffee
index 2b0ecee..4119d0c 100644
--- a/ui/js/coffee/warble_clientlist.coffee
+++ b/ui/js/coffee/warble_clientlist.coffee
@@ -49,6 +49,27 @@
deleteNode = (id, stats) ->
xdelete('node/modify', {id: id}, {}, location.reload())
+nodeLocation = (id, obj) ->
+ if not document.getElementById("tnodeloc_#{id}")
+ loc = obj.innerText
+ obj.innerHTML = ""
+ ip = mk('input', {data: loc, id: "tnodeloc_#{id}", type: 'text', onkeydown: "saveNodeLocation(#{id}, this, event);"})
+ app(obj, ip)
+ ip.focus()
+
+
+saveNodeLocation = (id, obj, e) ->
+ if e.key == 'Enter'
+ nloc = obj.value
+ post('node/modify', { id: id, location: nloc}, {id: id, location: nloc}, savedNodeLocation)
+ else if e.key == 'Escape'
+ savedNodeLocation({}, {id: id, location: obj.getAttribute('data')})
+
+savedNodeLocation = (json, state) ->
+ obj = document.getElementById("nodeloc_#{state.id}")
+ obj.innerHTML = ""
+ app(obj, txt(state.location))
+
clientlist = (json, state) ->
slist = mk('div')
@@ -98,10 +119,13 @@
app(d, t)
# node location
- t = mk('td')
+ t = mk('td', {id: "nodeloc_#{source.id}", onclick: "nodeLocation(#{source.id}, this, event);"})
app(t, txt(source.location||"(unknown)"))
app(d, t)
+
+
+
# node verified?
t = mk('td')
t.style.color = if source.verified then "#393" else '#942'