From 8cf001d24c63da00bba1300b6affdc39dd10acda Mon Sep 17 00:00:00 2001 From: cubedro Date: Tue, 19 May 2015 11:07:48 +0300 Subject: [PATCH] performance improvements --- app.js | 5 -- dist/css/netstats.min.css | 2 +- dist/index.html | 2 +- dist/js/netstats.min.js | 2 +- dist/js/netstats.min.js.map | 2 +- models/collection.js | 10 +-- public/css/style.css | 6 ++ public/js/controllers.js | 164 ++++++++++++------------------------ public/js/directives.js | 88 +++++++++++++++++-- public/js/script.js | 2 +- views/index.jade | 11 +-- 11 files changed, 159 insertions(+), 135 deletions(-) diff --git a/app.js b/app.js index 36d9eb8..d19e40f 100644 --- a/app.js +++ b/app.js @@ -157,11 +157,6 @@ api.on('connection', function(spark) { }); askedForHistory = false; - - client.write({ - action: 'charts', - data: Nodes.getCharts() - }); }); spark.on('node-ping', function(data) diff --git a/dist/css/netstats.min.css b/dist/css/netstats.min.css index 43f33e8..17ebdd5 100644 --- a/dist/css/netstats.min.css +++ b/dist/css/netstats.min.css @@ -11,4 +11,4 @@ .toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}} @font-face{font-family:minimal-icons;src:url(../fonts/minimal-icons.eot?59779169);src:url(../fonts/minimal-icons.eot?59779169#iefix)format('embedded-opentype'),url(../fonts/minimal-icons.svg?59779169#minimal-icons)format('svg');font-weight:400;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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ABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKxAAAqsQAFQrEACCqxAAVCsQAIKrEABUK5AAAACSqxAAVCuQAAAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbEADCq4Af+FsASNsQIARAA=)format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:minimal-icons;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.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'}.icon-uncle:before{content:'\e813'}.icon-hashrate:before{content:'\e814'}.icon-gasprice:before{content:'\e815'} body,html{width:100%}body{min-width:1900px;font-smooth:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.big-info.chart i,.blocks-holder,.second-row .box i,.small-value,span.small-title span.small,svg .axis text,table i,table td{-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}table td{font-size:14px;white-space:nowrap!important}.propagationBox{position:relative;width:8px;height:8px;float:left;top:5px;margin-right:5px;-webkit-border-radius:2px;border-radius:2px}.bg-success,.text-success .propagationBox{background:#7bcc3a}.bg-info,.text-info .propagationBox{background:#10a0de}.bg-warning,.text-warning .propagationBox{background:#FFD162}.bg-orange,.text-orange .propagationBox{background:#ff8a00}.bg-danger,.text-danger .propagationBox{background:#F74B4B}.text-gray .propagationBox{background:0 0!important;border:1px solid #777}.bg-danger,.bg-info,.bg-orange,.bg-success,.bg-warning{color:#000}.text-gray{color:#777!important}.text-orange{color:#ff8a00}.container-fluid{padding-left:30px;padding-right:30px}.stat-holder{background:#090909;border:1px solid rgba(255,255,255,.05)}.big-info{padding-top:15px;padding-bottom:15px}.big-info .icon-full-width i{display:block;width:85px;height:70px;font-size:70px;line-height:70px;margin-right:15px;margin-left:-15px}.big-info div.small-title-miner,.big-info span.small-title{display:block}div.small-title-miner,span.small-title{font-weight:700;font-size:14px;line-height:20px;letter-spacing:1px;text-transform:uppercase;color:#aaa}span.small-title span.small{font-size:11px;font-weight:600;line-height:16px;letter-spacing:0;color:#666}.big-info .big-details{display:block;font-weight:200;font-size:50px;line-height:55px;letter-spacing:-4px;word-spacing:nowrap!important}.big-info .big-details .small-hash{font-size:87%}.big-info .big-details-holder{position:absolute;top:15px;left:99px}.big-info.chart{padding-top:12px;height:120px;-webkit-box-sizing:border-box - box-sizing: border-box}.big-info.chart .big-details{position:absolute;top:40px}.big-info.chart.double-chart{height:242px}.blocks-holder{width:288px;padding-top:6px;margin-left:-2px}.blocks-holder div.small-title-miner{font-family:"Lucida Console","Courier New",Courier,monospace;font-size:11px;letter-spacing:-.1px;text-transform:none;white-space:nowrap;color:#777}.blocks-holder .block-count{font-family:'Lucida Console',"Courier New",Courier,monospace;font-weight:700;font-size:10px;padding-top:3px;float:right}.blocks-holder .block{width:6px;height:6px;margin:2px 1px 6px 0;float:left;-webkit-border-radius:1px;border-radius:1px;opacity:.8}.blocks-holder .block:first-child{margin-left:0}.blocks-holder .block:last-child{margin-right:0}.second-row .box{height:40px;line-height:24px!important;padding:5px 15px}.big-info.chart i,.second-row .box i{position:relative;top:2px;left:-3px;font-size:24px;margin-right:7px;float:left}.big-info.chart i{font-size:24px;top:-2px}.small-value{font-weight:300;float:right}.second-row .box .small-value{float:right}.big-info .small-value{position:absolute;right:14px;top:10px}table td,table th{border-color:#222!important}table td{line-height:18px!important}table th{color:#888}table th i{line-height:1em;font-size:20px}table td i{position:relative;top:2px;left:2px}table td.peerPropagationChart{padding:4px 5px!important}.table>tbody>tr>td,.table>thead>tr>th{padding:5px}.td-nodecheck,.th-nodecheck{width:38px;text-align:center}.td-nodecheck i{left:0}.th-nodename{width:300px;text-overflow:ellipsis}.th-nodetype{width:220px}.th-latency{width:100px}.th-blockhash{width:150px}.th-blocktime{width:110px}.th-peerPropagationTime{width:120px}.th-peerPropagationChart{width:140px}.nodeInfo .tooltip .tooltip-inner{max-width:400px;text-align:left;font-size:12px}.map-holder{padding:0}.d3-tip,.jqsfield{padding:5px 0}#mapHolder{position:relative;display:block;width:100%;height:282px;overflow:hidden}#mapHolder>svg{right:0;bottom:0;width:100%;height:100%;display:inline-block;position:absolute;top:0;left:0}.hoverinfo,.jqsfield{width:auto;text-align:center}.jqsfield{position:relative;left:-50%;word-wrap:wrap}.jqsfield .tooltip-arrow{position:absolute;bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#fff}.d3-tip .tooltip-arrow,.datamaps-hoverover .tooltip-arrow{position:absolute;top:-5px;left:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#fff}.d3-tip .tooltip-arrow{top:0;left:50%}.hoverinfo{position:relative;left:-50%;color:#333;border:none!important;box-shadow:none!important;border-radius:3px!important;padding:5px!important;line-height:14px!important}.hoverinfo .propagationBox{top:3px}svg{overflow:visible!important}svg .bars .bar{opacity:1;shape-rendering:auto}svg .bars .handle,svg .bars .highlight{opacity:0}svg .bars g:hover .highlight{opacity:1}svg .line{fill:none;stroke:red;stroke-width:1.3px;stroke-linejoin:round;stroke-linecap:round;shape-rendering:geometric-precision}svg .bar text{text-anchor:end;font-size:12px}svg .axis line,svg .axis path{fill:none;stroke:rgba(255,255,255,.15);shape-rendering:crispEdges}svg .axis text{fill:#777;font-size:10px;letter-spacing:0;font-family:"Source Sans Pro";font-weight:700}svg .y.axis .tick:first-child text{opacity:0} \ No newline at end of file + box-sizing: border-box}.big-info.chart .big-details{position:absolute;top:40px}.big-info.chart.double-chart{height:242px}.blocks-holder{width:288px;padding-top:6px;margin-left:-2px}.blocks-holder div.small-title-miner{font-family:"Lucida Console","Courier New",Courier,monospace;font-size:11px;letter-spacing:-.1px;text-transform:none;white-space:nowrap;color:#777}.blocks-holder .block-count{font-family:'Lucida Console',"Courier New",Courier,monospace;font-weight:700;font-size:10px;padding-top:3px;float:right}.blocks-holder .block{width:6px;height:6px;margin:2px 1px 6px 0;float:left;-webkit-border-radius:1px;border-radius:1px;opacity:.8}.blocks-holder .block:first-child{margin-left:0}.blocks-holder .block:last-child{margin-right:0}.second-row .box{height:40px;line-height:24px!important;padding:5px 15px}.big-info.chart i,.second-row .box i{position:relative;top:2px;left:-3px;font-size:24px;margin-right:7px;float:left}.big-info.chart i{font-size:24px;top:-2px}.small-value{font-weight:300;float:right}.second-row .box .small-value{float:right}.big-info .small-value{position:absolute;right:14px;top:10px}table td,table th{border-color:#222!important}table td{line-height:18px!important}table th{color:#888}table th i{line-height:1em;font-size:20px}table td i{position:relative;top:2px;left:2px}table td.peerPropagationChart{padding:4px 5px!important}nodepropagchart{display:inline-block;width:107px;height:20px;vertical-align:top}.table>tbody>tr>td,.table>thead>tr>th{padding:5px}.td-nodecheck,.th-nodecheck{width:38px;text-align:center}.td-nodecheck i{left:0}.th-nodename{width:300px;text-overflow:ellipsis}.th-nodetype{width:220px}.th-latency{width:100px}.th-blockhash{width:150px}.th-blocktime{width:110px}.th-peerPropagationTime{width:120px}.th-peerPropagationChart{width:140px}.nodeInfo .tooltip .tooltip-inner{max-width:400px;text-align:left;font-size:12px}.map-holder{padding:0}.d3-tip,.jqsfield{padding:5px 0}#mapHolder{position:relative;display:block;width:100%;height:282px;overflow:hidden}#mapHolder>svg{right:0;bottom:0;width:100%;height:100%;display:inline-block;position:absolute;top:0;left:0}.hoverinfo,.jqsfield{width:auto;text-align:center}.jqsfield{position:relative;left:-50%;word-wrap:wrap}.jqsfield .tooltip-arrow{position:absolute;bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#fff}.d3-tip .tooltip-arrow,.datamaps-hoverover .tooltip-arrow{position:absolute;top:-5px;left:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#fff}.d3-tip .tooltip-arrow{top:0;left:50%}.hoverinfo{position:relative;left:-50%;color:#333;border:none!important;box-shadow:none!important;border-radius:3px!important;padding:5px!important;line-height:14px!important}.hoverinfo .propagationBox{top:3px}svg{overflow:visible!important}svg .bars .bar{opacity:1;shape-rendering:auto}svg .bars .handle,svg .bars .highlight{opacity:0}svg .bars g:hover .highlight{opacity:1}svg .line{fill:none;stroke:red;stroke-width:1.3px;stroke-linejoin:round;stroke-linecap:round;shape-rendering:geometric-precision}svg .bar text{text-anchor:end;font-size:12px}svg .axis line,svg .axis path{fill:none;stroke:rgba(255,255,255,.15);shape-rendering:crispEdges}svg .axis text{fill:#777;font-size:10px;letter-spacing:0;font-family:"Source Sans Pro";font-weight:700}svg .y.axis .tick:first-child text{opacity:0} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 15f292b..5caac2b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Ethereum Network Status
best block{{'#'}}{{ bestBlock | number}}
uncles  (current / last 50){{ bestStats.block.uncles.length }}/{{ uncleCount }}
last block{{ lastBlock | blockTimeFilter }}
avg block time{{ avgBlockTime | avgTimeFilter }}
avg network hashrate
difficulty{{ lastDifficulty | number }}
active nodes{{nodesActive}}/{{nodesTotal}}
gas price{{ bestStats.gasPrice.toString() | gasPriceFilter }}
page latency{{latency}} ms
uptime{{ upTimeTotal | upTimeFilter }}
block time
difficulty
block propagation
last blocks miners
{{miner.blocks}}
{{miner.miner | minerNameFilter : miner.name}}
uncle count  (25 blocks per bar)
transactions
gas spending
 
{{node.info.name}} ({{node.info.ip}})
{{node.stats | latencyFilter}}{{node.stats.peers}}{{node.stats.pending}}{{'#'}}{{ node.stats.block.number | number }}{{node.stats.block.hash | hashFilter}}{{node.stats.block.totalDifficulty | number}}{{node.stats.block.transactions.length || 0}}{{node.stats.block.uncles.length || 0}}{{node.stats.block.received | blockTimeFilter }}
{{node.stats.block.propagation | blockPropagationFilter}}
{{ node.stats | blockPropagationAvgFilter : bestBlock }}{{ node.stats.uptime | upTimeFilter }}
\ No newline at end of file +Ethereum Network Status
best block{{'#'}}{{ bestBlock | number}}
uncles  (current / last 50){{ bestStats.block.uncles.length }}/{{ uncleCount }}
last block{{ lastBlock | blockTimeFilter }}
avg block time{{ avgBlockTime | avgTimeFilter }}
avg network hashrate
difficulty{{ lastDifficulty | number }}
active nodes{{nodesActive}}/{{nodesTotal}}
gas price{{ bestStats.gasPrice.toString() | gasPriceFilter }}
page latency{{latency}} ms
uptime{{ upTimeTotal | upTimeFilter }}
block time
difficulty
block propagation
last blocks miners
{{miner.blocks}}
{{miner.miner | minerNameFilter : miner.name}}
uncle count  (25 blocks per bar)
transactions
gas spending
 
{{node.info.name}} ({{node.info.ip}})
{{node.stats | latencyFilter}}{{node.stats.peers}}{{node.stats.pending}}{{'#'}}{{ node.stats.block.number | number }}{{node.stats.block.hash | hashFilter}}{{node.stats.block.totalDifficulty | number}}{{node.stats.block.transactions.length || 0}}{{node.stats.block.uncles.length || 0}}{{node.stats.block.received | blockTimeFilter }}
{{node.stats.block.propagation | blockPropagationFilter}}
{{ node.stats | blockPropagationAvgFilter : bestBlock }}{{ node.stats.uptime | upTimeFilter }}
\ No newline at end of file diff --git a/dist/js/netstats.min.js b/dist/js/netstats.min.js index 63674c5..84325ea 100644 --- a/dist/js/netstats.min.js +++ b/dist/js/netstats.min.js @@ -344,5 +344,5 @@ d3.tip=function(){function t(t){v=d(t),w=v.createSVGPoint(),document.body.append (function(a,b,c){(function(a){typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)})(function(d){"use strict";var e={},f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L=0;f=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new h(' {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new h(' {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new h(' {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new h("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:c,tooltipFormat:new h("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new h(' {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:"#4a2",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new h("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;z-index: 10000;}.jqsfield {}',g=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=h=g({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e=this,f=a,g,h,i,j,k;return this.format.replace(this.fre,function(){var a;return h=arguments[1],i=arguments[3],g=e.precre.exec(h),g?(k=g[2],h=g[1]):k=!1,j=f[h],j===c?"":i&&b&&b[i]?(a=b[i],a.get?b[i].get(j)||j:b[i][j]||j):(n(j)&&(d.get("numberFormatter")?j=d.get("numberFormatter")(j):j=s(j,k,d.get("numberDigitGroupCount"),d.get("numberDigitGroupSep"),d.get("numberDecimalMark"))),j)})}}),d.spformat=function(a,b){return new h(a,b)},i=function(a,b,c){return ac?c:a},j=function(a,c){var d;return c===2?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},k=function(a){var b;switch(a){case"undefined":a=c;break;case"null":a=null;break;case"true":a=!0;break;case"false":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},l=function(a){var b,c=[];for(b=a.length;b--;)c[b]=k(a[b]);return c},m=function(a,b){var c,d,e=[];for(c=0,d=a.length;c0;h-=c)a.splice(h,0,e);return a.join("")},o=function(a,b,c){var d;for(d=b.length;d--;){if(c&&b[d]===null)continue;if(b[d]!==a)return!1}return!0},p=function(a){var b=0,c;for(c=a.length;c--;)b+=typeof a[c]=="number"?a[c]:0;return b},r=function(a){return d.isArray(a)?a:[a]},q=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement("style"),c.type="text/css",a.getElementsByTagName("head")[0].appendChild(c),c[typeof a.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data("_jqs_vcanvas")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement("canvas");if(!j.getContext||!j.getContext("2d")){if(!a.namespaces||!!a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d.fn.sparkline.canvas=function(a,b,c,d){return new J(a,b,c)}}else d.fn.sparkline.canvas=function(a,b,c,d){return new I(a,b,c,d)}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data("_jqs_mhandler"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data("_jqs_vcanvas");a&&a.reset()},d.RangeMapClass=t=g({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&typeof b=="string"&&b.indexOf(":")>-1&&(c=b.split(":"),c[0]=c[0].length===0?-Infinity:parseFloat(c[0]),c[1]=c[1].length===0?Infinity:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b=this.rangelist,d,e,f;if((f=this.map[a])!==c)return f;if(b)for(d=b.length;d--;){e=b[d];if(e[0]<=a&&e[1]>=a)return e[2]}return c}}),d.range_map=function(a){return new t(a)},u=g({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get("disableTooltips"),this.highlightEnabled=!b.get("disableHighlight")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event("sparklineClick");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind("mousemove.jqs"),d(a.body).bind("mousemove.jqs",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new v(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind("mousemove.jqs");var b=this.splist,c=b.length,e=!1,f,g;this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null);for(g=0;g