From ddd31a53549c0136a1214ddb8a333b27f1fe46b5 Mon Sep 17 00:00:00 2001 From: cubedro Date: Wed, 18 Feb 2015 09:54:04 +0200 Subject: [PATCH] design improvements --- public/css/minimal-icons-codes.css | 20 +++++++ public/css/minimal-icons-embedded.css | 73 +++++++++++++++++++++++++ public/css/minimal-icons-ie7-codes.css | 20 +++++++ public/css/minimal-icons-ie7.css | 4 +- public/css/minimal-icons.css | 16 +++--- public/fonts/minimal-icons.eot | Bin 9536 -> 10060 bytes public/fonts/minimal-icons.svg | 4 +- public/fonts/minimal-icons.ttf | Bin 9348 -> 9872 bytes public/fonts/minimal-icons.woff | Bin 5964 -> 6308 bytes public/js/controllers.js | 10 ++++ public/js/filters.js | 19 ++++++- views/index.jade | 59 +++++++++++++------- 12 files changed, 193 insertions(+), 32 deletions(-) create mode 100644 public/css/minimal-icons-codes.css create mode 100644 public/css/minimal-icons-embedded.css create mode 100644 public/css/minimal-icons-ie7-codes.css diff --git a/public/css/minimal-icons-codes.css b/public/css/minimal-icons-codes.css new file mode 100644 index 0000000..c266dc8 --- /dev/null +++ b/public/css/minimal-icons-codes.css @@ -0,0 +1,20 @@ + +.icon-truck:before { content: '\e800'; } /* '' */ +.icon-database:before { content: '\e801'; } /* '' */ +.icon-mining:before { content: '\e802'; } /* '' */ +.icon-check:before { content: '\e803'; } /* '' */ +.icon-cancel:before { content: '\e804'; } /* '' */ +.icon-loader:before { content: '\e805'; } /* '' */ +.icon-check-o:before { content: '\e806'; } /* '' */ +.icon-cancel-o:before { content: '\e807'; } /* '' */ +.icon-warning-o:before { content: '\e808'; } /* '' */ +.icon-network:before { content: '\e809'; } /* '' */ +.icon-block:before { content: '\e80a'; } /* '' */ +.icon-bulb:before { content: '\e80b'; } /* '' */ +.icon-node:before { content: '\e80c'; } /* '' */ +.icon-laptop:before { content: '\e80d'; } /* '' */ +.icon-time:before { content: '\e80e'; } /* '' */ +.icon-clock:before { content: '\e80f'; } /* '' */ +.icon-group:before { content: '\e810'; } /* '' */ +.icon-gas:before { content: '\e811'; } /* '' */ +.icon-difficulty:before { content: '\e812'; } /* '' */ \ No newline at end of file diff --git a/public/css/minimal-icons-embedded.css b/public/css/minimal-icons-embedded.css new file mode 100644 index 0000000..e54ec05 --- /dev/null +++ b/public/css/minimal-icons-embedded.css @@ -0,0 +1,73 @@ +@font-face { + font-family: 'minimal-icons'; + src: url('../fonts/minimal-icons.eot?82572300'); + src: url('../fonts/minimal-icons.eot?82572300#iefix') format('embedded-opentype'), + url('../fonts/minimal-icons.svg?82572300#minimal-icons') format('svg'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'minimal-icons'; + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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RyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKxAAAqsQAFQrEACCqxAAVCsQAIKrEABUK5AAAACSqxAAVCuQAAAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbEADCq4Af+FsASNsQIARAA=') format('truetype'); +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'minimal-icons'; + src: url('../fonts/minimal-icons.svg?82572300#minimal-icons') format('svg'); + } +} +*/ + + [class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "minimal-icons"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} +.icon-truck:before { content: '\e800'; } /* '' */ +.icon-database:before { content: '\e801'; } /* '' */ +.icon-mining:before { content: '\e802'; } /* '' */ +.icon-check:before { content: '\e803'; } /* '' */ +.icon-cancel:before { content: '\e804'; } /* '' */ +.icon-loader:before { content: '\e805'; } /* '' */ +.icon-check-o:before { content: '\e806'; } /* '' */ +.icon-cancel-o:before { content: '\e807'; } /* '' */ +.icon-warning-o:before { content: '\e808'; } /* '' */ +.icon-network:before { content: '\e809'; } /* '' */ +.icon-block:before { content: '\e80a'; } /* '' */ +.icon-bulb:before { content: '\e80b'; } /* '' */ +.icon-node:before { content: '\e80c'; } /* '' */ +.icon-laptop:before { content: '\e80d'; } /* '' */ +.icon-time:before { content: '\e80e'; } /* '' */ +.icon-clock:before { content: '\e80f'; } /* '' */ +.icon-group:before { content: '\e810'; } /* '' */ +.icon-gas:before { content: '\e811'; } /* '' */ +.icon-difficulty:before { content: '\e812'; } /* '' */ \ No newline at end of file diff --git a/public/css/minimal-icons-ie7-codes.css b/public/css/minimal-icons-ie7-codes.css new file mode 100644 index 0000000..6f6c4cb --- /dev/null +++ b/public/css/minimal-icons-ie7-codes.css @@ -0,0 +1,20 @@ + +.icon-truck { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-mining { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-loader { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-check-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-warning-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-network { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-bulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-node { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-gas { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-difficulty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/public/css/minimal-icons-ie7.css b/public/css/minimal-icons-ie7.css index 37410fd..676f6b8 100644 --- a/public/css/minimal-icons-ie7.css +++ b/public/css/minimal-icons-ie7.css @@ -26,4 +26,6 @@ .icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file +.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-gas { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-difficulty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/public/css/minimal-icons.css b/public/css/minimal-icons.css index 8d683d9..2a61386 100644 --- a/public/css/minimal-icons.css +++ b/public/css/minimal-icons.css @@ -1,10 +1,10 @@ @font-face { font-family: 'minimal-icons'; - src: url('../fonts/minimal-icons.eot?18158983'); - src: url('../fonts/minimal-icons.eot?18158983#iefix') format('embedded-opentype'), - url('../fonts/minimal-icons.woff?18158983') format('woff'), - url('../fonts/minimal-icons.ttf?18158983') format('truetype'), - url('../fonts/minimal-icons.svg?18158983#minimal-icons') format('svg'); + src: url('../fonts/minimal-icons.eot?55431205'); + src: url('../fonts/minimal-icons.eot?55431205#iefix') format('embedded-opentype'), + url('../fonts/minimal-icons.woff?55431205') format('woff'), + url('../fonts/minimal-icons.ttf?55431205') format('truetype'), + url('../fonts/minimal-icons.svg?55431205#minimal-icons') format('svg'); font-weight: normal; font-style: normal; } @@ -14,7 +14,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'minimal-icons'; - src: url('../fonts/minimal-icons.svg?18158983#minimal-icons') format('svg'); + src: url('../fonts/minimal-icons.svg?55431205#minimal-icons') format('svg'); } } */ @@ -66,4 +66,6 @@ .icon-laptop:before { content: '\e80d'; } /* '' */ .icon-time:before { content: '\e80e'; } /* '' */ .icon-clock:before { content: '\e80f'; } /* '' */ -.icon-group:before { content: '\e810'; } /* '' */ \ No newline at end of file +.icon-group:before { content: '\e810'; } /* '' */ +.icon-gas:before { content: '\e811'; } /* '' */ +.icon-difficulty:before { content: '\e812'; } /* '' */ \ No newline at end of file diff --git a/public/fonts/minimal-icons.eot b/public/fonts/minimal-icons.eot index cb2a55fc3c193e88d5458f17639476a8fbbdd1d1..c8b8ce5021caf761180751ddf5c4a818198ba38a 100644 GIT binary patch delta 855 zcmXX^OK1~O6umc-Ofu7U5+{>PGv-G=Gd8Vl`pFD7ZE8i3##&TRP!|&Vi`eMURw3NH#_z82eaJ5)GM))y6 zgE^U-F^P8(F4FFpoSK_hn6n)Lun=}9^5eNNn>O?jz_UnkJx_#V7xRtq55lp0VfMmE z_$VF0+f44@)Y;KoM`vP%aGr3Ykh@^Qr$%b%y-hfLCRZ3wbX+nBKLubo^X$xQ?AP~a z0KN*v*Uag0^TTQ8GJqT@!cD99m!0c>| ztDyDhhAg1RE6TcPs1_~4+O-UJdqHNwtr_j8322XI&U|dnswmoQwXge|_BdW#TUfM)tkwJXtJd0Ww}RWZ zZQG6^-r))~34WJ@$5xjO#p+0Lz}|JpOg`eK2KsFbh04WUnL+e{`m z+g$m6Gi|k|&HlVAoS^6XtM)y!3B$mabwE-X(NOIfKviq6&)?k@wAiCPYBVBPq@cy< zwsWYlb~d7>NRn=7cFoYcLKsz9iL`ai6PeOvuVhCSzYAO~!*SOmiYVc5N=e2g4E451 zF~8I4k4xGTF5|1~oKHP{!0lEd_k!L4ukfpCOFAILcEp4LE^*X>_i(t(D;#BtNkt!a zt4Sr%>-1BK--R!0{kXgkQR4Lr#661RZh+eGtC&6<5S&gS*rF|Q3QvR7#nu&*W!G1? zPCEO3LIbl^r{D4NgTFiXWvcW?Qa(Dg}f>b_E<6x>Z=6#K+ na)&&Pl>DeUW<@t0R+`T_8T#}5*r|z$Q={jmX6MQopQZ5+9^t`3 delta 355 zcmX@(cfgCyL6w1_MP(wJ8B2fX<<}&$%7|Uc8aaGQ_5M2yHo5RF885vC`CrF%PG}){zS;PobIZsMu Q@-eAWW}u?YUeZiF0C}Za`v3p{ diff --git a/public/fonts/minimal-icons.svg b/public/fonts/minimal-icons.svg index 1827646..98a057a 100644 --- a/public/fonts/minimal-icons.svg +++ b/public/fonts/minimal-icons.svg @@ -1,7 +1,7 @@ -Copyright (C) 2014 by original authors @ fontello.com +Copyright (C) 2015 by original authors @ fontello.com @@ -23,6 +23,8 @@ + + \ No newline at end of file diff --git a/public/fonts/minimal-icons.ttf b/public/fonts/minimal-icons.ttf index 27bbfa930e6c8aaf852ce7e2c16214b646695a10..1b7c4ae868791267d00a771a18e53d3dd86a18d4 100644 GIT binary patch delta 898 zcmXX_O=uHA6n-z8O|q-q#NAD{+2)V@?Ao-p=}&gCv8fd=t@Q^*K|E;aU&Kb2wu;q5 zL=;6@h(tkAJbCaQ#e-Tx5urjvLBt-sc#s}cq|}Rt)R*eOdo$lRZ@!sthPgIW+Ft|& z00FK51E&ri>Fmzx!%M_`r#LoR$XV}W{^tO=mtuJI!fb?iYU({o{Dd`GxLGP4C;S*- zi#3^>v55B&E>Z8AoSK_hm}8Fu*a%C>{CIAR)rY0iCfdnjuuY zn9gGQKSc|(s2DyagkAx0y;lFpc6RvN+SrY1b%UjxneK5L#Y+P<6j`?Zb6?XQ*Na;V zFYRG_?ZJbZy?#ehv1Qw~77X()Pq0Y{cw9WTc~}%{2TB7{-;JT_2CytbwTi%of-T_) z$<$~gtOf$No-y_p3#3D8eEnS*{bKt{Dz(z?$@g0syFFv|=RJ{Rk=}Xp20k(?FanN> z0Z7iHI%>TGsOcRIPd(isn={s{#iD{u4%y5eCx^Pj>4<7+vT2yQQ#Xz7Fvc{8On$qG zOY4eHcA^8<1g@UtxcR6m$~cl%QwbTveXVjl;C2TRa#3HzC44>4`L#3qB}t9m5BY+; z$}elJnV=Bg9v6bR$dLr^<#35tIjR&>sxcyIDK**W4p2$JgRkoSxU>*e6OA22)pajO zD*Q5L4hIFdTL`u4i=4{SK^k5ghAD+u~Wzz{tSBz{k+Qz|4@~AFOX=r|xwCDDnn~!;*6o3oa;1Zf9U%bOBWk&~aCs5)D5 z1&|LiSS>fPqJZHEPbiQNw2(m|FEKY&OTW-{va=H}eai2*ZVKfj=O$`iaR8M9mq6CM$^La?XXQW)RvuON^6|(PZ)x@l%W@ boAV`#7=bDtNvcfdk}72eD%#v9#l!;ur7Bqr diff --git a/public/fonts/minimal-icons.woff b/public/fonts/minimal-icons.woff index 24c30f175d215c6c2de1325a9afc6eb5c84c3f82..5d06fe00b1aaeedbe4c1a354e230d65fa5c563c5 100644 GIT binary patch delta 4529 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 delta 4211 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 JDgTo@7-?`W0>l6S diff --git a/public/js/controllers.js b/public/js/controllers.js index 10f676b..e49a2c4 100644 --- a/public/js/controllers.js +++ b/public/js/controllers.js @@ -11,7 +11,9 @@ function StatsCtrl($scope, $filter, socket, _, toastr) { $scope.nodesActive = 0; $scope.bestBlock = 0; $scope.lastBlock = 0; + $scope.lastDifficulty = 0; $scope.upTimeTotal = 0; + $scope.avgBlockTime = 0; $scope.nodes = []; $scope.map = []; @@ -117,6 +119,14 @@ function StatsCtrl($scope, $filter, socket, _, toastr) { return parseInt(node.stats.block.timestamp); }).stats.block.timestamp; + $scope.lastDifficulty = _.max($scope.nodes, function(node) { + return parseInt(node.stats.block.timestamp); + }).stats.block.difficulty; + + $scope.avgBlockTime = _.max($scope.nodes, function(node) { + return parseInt(node.stats.block.timestamp); + }).stats.blocktimeAvg; + $scope.upTimeTotal = _.reduce($scope.nodes, function(total, node) { return total + node.stats.uptime; }, 0) / $scope.nodes.length; diff --git a/public/js/filters.js b/public/js/filters.js index 725de41..0ac0534 100644 --- a/public/js/filters.js +++ b/public/js/filters.js @@ -44,7 +44,7 @@ angular.module('netStatsApp.filters', []) version = version.replace('eth version ', 'v') .replace("\n" + 'Network protocol version: ', ' (') .replace("\n" + 'Client database version: ', ',') - .replace("\n" + 'Build: ', ')
'); + .replace("\n" + 'Build: ', ') - '); return $sce.trustAsHtml(version); }; }) @@ -63,6 +63,16 @@ angular.module('netStatsApp.filters', []) return timeClass(timestamp); }; }) +.filter('avgTimeFilter', function() { + return function(time) { + return Math.round(time) + 's'; + }; +}) +.filter('avgTimeClass', function() { + return function(time) { + return blockTimeClass(time); + } +}) .filter('upTimeFilter', function() { return function(uptime) { return Math.round(uptime) + '%'; @@ -115,6 +125,11 @@ function timeClass(timestamp) var time = Math.floor((new Date()).getTime() / 1000); var diff = time - timestamp; + return blockTimeClass(diff); +} + +function blockTimeClass(diff) +{ if(diff <= 12) return 'text-success'; @@ -124,5 +139,5 @@ function timeClass(timestamp) if(diff <= 30) return 'text-warning'; - return 'text-danger'; + return 'text-danger' } \ No newline at end of file diff --git a/views/index.jade b/views/index.jade index b9b3538..21845ad 100644 --- a/views/index.jade +++ b/views/index.jade @@ -3,14 +3,14 @@ extends layout block content div.container-fluid(ng-controller='StatsCtrl') div.row - div.col-lg-6(ng-cloak) + div.col-lg-8(ng-cloak) div.col-sm-12 h1= title //- p Welcome to #{title} div.clearfix - div.col-xs-6.stat-holder + div.col-xs-4.stat-holder div.row.big-info.nodesactive(class="{{ nodesActive | nodesActiveClass : nodesTotal }}") div.pull-left.icon-full-width i.icon-bulb @@ -18,23 +18,15 @@ block content span.small-title active nodes span.big-details {{nodesActive}}/{{nodesTotal}} div.clearfix - div.col-xs-6.stat-holder - div.row.big-info.bestblock.text-info + div.col-xs-4.stat-holder + div.row.big-info.difficulty.text-info div.pull-left.icon-full-width - i.icon-block + i.icon-difficulty div.pull-left - span.small-title best block - span.big-details {{"#" + bestBlock}} + span.small-title difficulty + span.big-details {{ lastDifficulty }} div.clearfix - div.col-xs-6.stat-holder - div.row.big-info.blocktime(class="{{ lastBlock | timeClass }}") - div.pull-left.icon-full-width - i.icon-time - div.pull-left - span.small-title last block - span.big-details(am-time-ago="lastBlock", am-preprocess="unix") ∞ - div.clearfix - div.col-xs-6.stat-holder + div.col-xs-4.stat-holder div.row.big-info.uptime(class="{{ upTimeTotal | upTimeClass }}") div.pull-left.icon-full-width i.icon-clock @@ -42,10 +34,34 @@ block content span.small-title up-time span.big-details {{ upTimeTotal | upTimeFilter }} div.clearfix + div.col-xs-4.stat-holder + div.row.big-info.bestblock.text-info + div.pull-left.icon-full-width + i.icon-block + div.pull-left + span.small-title best block + span.big-details {{"#" + bestBlock}} + div.clearfix + div.col-xs-4.stat-holder + div.row.big-info.blocktime(class="{{ lastBlock | timeClass }}") + div.pull-left.icon-full-width + i.icon-time + div.pull-left + span.small-title last block + span.big-details(am-time-ago="lastBlock", am-preprocess="unix") ∞ + div.clearfix + div.col-xs-4.stat-holder + div.row.big-info.avgblocktime(class="{{ avgBlockTime | timeClass }}") + div.pull-left.icon-full-width + i.icon-gas + div.pull-left + span.small-title avg block time + span.big-details {{ avgBlockTime | avgTimeFilter }} + div.clearfix div.clearfix - div.col-lg-6 + div.col-lg-4 div.col-xs-12 nodemap#mapHolder(data="map") @@ -75,9 +91,10 @@ block content tbody tr(ng-repeat='node in nodes', class="{{ node.stats | mainClass : bestBlock }}") td(rel="{{node.id}}") - span(data-toggle="tooltip", data-placement="top", data-original-title="{{node.geo | geoTooltip}}") {{node.info.name}} - div.small {{node.info.ip}} - td.small + span.small(data-toggle="tooltip", data-placement="top", data-original-title="{{node.geo | geoTooltip}}") {{node.info.name}} +   -   + span.small {{node.info.ip}} + td div.small(ng-bind-html="node.info.node | nodeVersion") //- div.small {{node.info.os}}, {{node.info.os_v}} td(class="{{ node.stats.peers | peerClass }}") {{node.stats.peers}} @@ -86,6 +103,6 @@ block content td(class="{{ node.stats.block.number | blockClass : bestBlock }}") {{'#' + node.stats.block.number}} td(class="{{ node.stats.block.number | blockClass : bestBlock }}").hidden-sm.hidden-xs span.small {{node.stats.block.hash}} - div.small Difficulty: {{node.stats.block.difficulty | gasFilter}} | Gas used: {{node.stats.block.gasUsed | gasFilter}} | Min gas price: {{node.stats.block.minGasPrice | gasFilter}} | Gas limit: {{node.stats.block.gasLimit | gasFilter}} + //- div.small Difficulty: {{node.stats.block.difficulty | gasFilter}} | Gas used: {{node.stats.block.gasUsed | gasFilter}} | Min gas price: {{node.stats.block.minGasPrice | gasFilter}} | Gas limit: {{node.stats.block.gasLimit | gasFilter}} td(am-time-ago="node.stats.block.timestamp", am-preprocess="unix", class="{{ node.stats.block.timestamp | timeClass }}") ∞ td(class="{{ node.stats.uptime | upTimeClass }}") {{ node.stats.uptime | upTimeFilter }}