|
|
|
@ -3,15 +3,8 @@ extends layout |
|
|
|
|
block content |
|
|
|
|
div.container-fluid(ng-controller='StatsCtrl') |
|
|
|
|
div.row(ng-cloak) |
|
|
|
|
div.col-xs-12 |
|
|
|
|
//- div.col-sm-12 |
|
|
|
|
//- h1= title |
|
|
|
|
//- p Welcome to #{title} |
|
|
|
|
|
|
|
|
|
//- div.clearfix |
|
|
|
|
|
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.nodesactive(class="{{ nodesActive | nodesActiveClass : nodesTotal }}") |
|
|
|
|
div.big-info.nodesactive(class="{{ nodesActive | nodesActiveClass : nodesTotal }}") |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-node |
|
|
|
|
div.pull-left |
|
|
|
@ -19,7 +12,7 @@ block content |
|
|
|
|
span.big-details {{nodesActive}}/{{nodesTotal}} |
|
|
|
|
div.clearfix |
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.uptime(class="{{ upTimeTotal | upTimeClass }}") |
|
|
|
|
div.big-info.uptime(class="{{ upTimeTotal | upTimeClass }}") |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-bulb |
|
|
|
|
div.pull-left |
|
|
|
@ -27,7 +20,7 @@ block content |
|
|
|
|
span.big-details {{ upTimeTotal | upTimeFilter }} |
|
|
|
|
div.clearfix |
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.difficulty.text-info |
|
|
|
|
div.big-info.difficulty.text-info |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-difficulty |
|
|
|
|
div.pull-left |
|
|
|
@ -35,7 +28,7 @@ block content |
|
|
|
|
span.big-details {{ lastDifficulty }} |
|
|
|
|
div.clearfix |
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.bestblock.text-info |
|
|
|
|
div.big-info.bestblock.text-info |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-block |
|
|
|
|
div.pull-left |
|
|
|
@ -43,7 +36,7 @@ block content |
|
|
|
|
span.big-details {{"#" + bestBlock}} |
|
|
|
|
div.clearfix |
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.blocktime(class="{{ lastBlock | timeClass }}") |
|
|
|
|
div.big-info.blocktime(class="{{ lastBlock | timeClass }}") |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-time |
|
|
|
|
div.pull-left |
|
|
|
@ -51,7 +44,7 @@ block content |
|
|
|
|
span.big-details {{ lastBlock | blockTimeFilter }} |
|
|
|
|
div.clearfix |
|
|
|
|
div.col-xs-2.stat-holder |
|
|
|
|
div.row.big-info.avgblocktime(class="{{ avgBlockTime | timeClass }}") |
|
|
|
|
div.big-info.avgblocktime(class="{{ avgBlockTime | timeClass }}") |
|
|
|
|
div.pull-left.icon-full-width |
|
|
|
|
i.icon-gas |
|
|
|
|
div.pull-left |
|
|
|
@ -61,7 +54,6 @@ block content |
|
|
|
|
|
|
|
|
|
div.clearfix |
|
|
|
|
|
|
|
|
|
div.col-xs-12 |
|
|
|
|
div.row |
|
|
|
|
div.col-xs-4.stats-boxes(style="padding-top: 30px;") |
|
|
|
|
div.row |
|
|
|
@ -85,7 +77,23 @@ block content |
|
|
|
|
span.small-title gas spending |
|
|
|
|
span.big-details.spark-gasspending |
|
|
|
|
|
|
|
|
|
div.col-xs-4 |
|
|
|
|
div.col-xs-2.stats-boxes(style="padding-top: 30px;") |
|
|
|
|
div.row |
|
|
|
|
div.col-xs-12.stat-holder |
|
|
|
|
div.big-info.chart.double-chart |
|
|
|
|
span.small-title last blocks miners |
|
|
|
|
div.blocks-holder(ng-repeat='miner in miners', data-toggle="tooltip", data-placement="right", title="{{miner.blocks}}") |
|
|
|
|
div.block-count ({{miner.blocks}}) |
|
|
|
|
div.small-title-miner {{miner.miner | minerNameFilter}} |
|
|
|
|
div.block(ng-repeat="i in getNumber(miner.blocks) track by $index", class="{{miner.blocks | minerBlocksClass}}") |
|
|
|
|
div.clearfix |
|
|
|
|
|
|
|
|
|
div.col-xs-2.stats-boxes(style="padding-top: 30px;") |
|
|
|
|
div.row |
|
|
|
|
//- div.col-xs-12.stat-holder |
|
|
|
|
//- div.big-info.chart |
|
|
|
|
//- span.small-title miners |
|
|
|
|
//- span.big-details test |
|
|
|
|
|
|
|
|
|
div.col-xs-4 |
|
|
|
|
div.col-xs-12 |
|
|
|
@ -93,14 +101,12 @@ block content |
|
|
|
|
|
|
|
|
|
div.clearfix |
|
|
|
|
|
|
|
|
|
div.col-xs-12 |
|
|
|
|
//- h1 Nodes in detail |
|
|
|
|
|
|
|
|
|
div.row |
|
|
|
|
table.table.table-striped |
|
|
|
|
thead |
|
|
|
|
tr.text-info |
|
|
|
|
th |
|
|
|
|
i.icon-node(data-toggle="tooltip", data-placement="top", title="Node") |
|
|
|
|
i.icon-node(data-toggle="tooltip", data-placement="top", title="Node name", ng-click="predicate = 'info.name'; reverse=!reverse") |
|
|
|
|
th.th-nodename |
|
|
|
|
i.icon-laptop(data-toggle="tooltip", data-placement="top", title="Node type") |
|
|
|
|
th.th-latency |
|
|
|
@ -112,7 +118,7 @@ block content |
|
|
|
|
th |
|
|
|
|
i.icon-network(data-toggle="tooltip", data-placement="top", title="Pending transactions") |
|
|
|
|
th |
|
|
|
|
i.icon-block(data-toggle="tooltip", data-placement="top", title="Last node block") |
|
|
|
|
i.icon-block(data-toggle="tooltip", data-placement="top", title="Last block", ng-click="predicate = ['-stats.block.number', 'stats.block.propagation']; reverse=!reverse") |
|
|
|
|
th.th-blockhash |
|
|
|
|
th |
|
|
|
|
i.icon-check-o(data-toggle="tooltip", data-placement="top", title="Block transactions") |
|
|
|
@ -123,7 +129,7 @@ block content |
|
|
|
|
th |
|
|
|
|
i.icon-bulb(data-toggle="tooltip", data-placement="top", title="Up-time") |
|
|
|
|
tbody |
|
|
|
|
tr(ng-repeat='node in nodes', class="{{ node.stats | mainClass : bestBlock }}") |
|
|
|
|
tr(ng-repeat='node in nodes | orderBy:predicate:reverse', class="{{ node.stats | mainClass : bestBlock }}") |
|
|
|
|
td(rel="{{node.id}}") |
|
|
|
|
span.small(data-toggle="tooltip", data-placement="top", data-original-title="{{node.geo | geoTooltip}}") {{node.info.name}} |
|
|
|
|
span.small  ({{node.info.ip}}) |
|
|
|
|