diff options
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r-- | app/assets/javascripts/controllers/about.coffee.erb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/assets/javascripts/controllers/about.coffee.erb b/app/assets/javascripts/controllers/about.coffee.erb index 79688e0..b72c0d0 100644 --- a/app/assets/javascripts/controllers/about.coffee.erb +++ b/app/assets/javascripts/controllers/about.coffee.erb @@ -5,3 +5,41 @@ Views.about = node.onclick = (e) -> e.preventDefault() Helpers.openTwitterIntent(node.getAttribute("href")) + status: -> + vm = new Vue + el: "#status" + data: + nodes: {} + active_nodes: [] + inactive_nodes: [] + loading: false + error: null + methods: + uptime: (i) -> + diff = Math.floor(Date.now() / 1000) - this.nodes[i].activated_at + if diff < 5 * 60 + diff.toString() + " seconds" + else if diff < 5 * 60 * 60 + Math.floor(diff / 60).toString() + " minutes" + else if diff < 48 * 60 * 60 + Math.floor(diff / 60 / 60).toString() + " hours" + else + Math.floor(diff / 60 / 60 / 24).toString() + " days" + reload: (e = null) -> + e.preventDefault() if e + return if vm.loading + vm.loading = true + superagent + .get "/i/status.json" + .accept "json" + .end (err, res) -> + json = res.body + vm.loading = false + if json.error + vm.error = json.error + else + vm.error = null + vm.nodes = json.nodes + vm.active_nodes = json.active_nodes + vm.inactive_nodes = json.inactive_nodes + vm.reload() |