|
|
|
HandlebarsIntl.registerWith(Handlebars);
|
|
|
|
|
|
|
|
$(function() {
|
|
|
|
switch (location.hash) {
|
|
|
|
case '#blocks':
|
|
|
|
window.homeTab = false;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
window.homeTab = true;
|
|
|
|
}
|
|
|
|
var userLang = (navigator.language || navigator.userLanguage) || 'en-US';
|
|
|
|
window.intlData = { locales: userLang };
|
|
|
|
var statsSource = $("#stats-template").html();
|
|
|
|
var statsTemplate = Handlebars.compile(statsSource);
|
|
|
|
var blocksSource = $("#blocks-template").html();
|
|
|
|
var blocksTemplate = Handlebars.compile(blocksSource);
|
|
|
|
refreshStats(statsTemplate, blocksTemplate);
|
|
|
|
|
|
|
|
$('#homeTab').on('click', function() {
|
|
|
|
window.homeTab = true;
|
|
|
|
refreshStats(statsTemplate, blocksTemplate);
|
|
|
|
});
|
|
|
|
$('#blocksTab').on('click', function() {
|
|
|
|
window.homeTab = false;
|
|
|
|
refreshStats(statsTemplate, blocksTemplate);
|
|
|
|
});
|
|
|
|
setInterval(function() {
|
|
|
|
refreshStats(statsTemplate, blocksTemplate);
|
|
|
|
}, 5000)
|
|
|
|
});
|
|
|
|
|
|
|
|
function refreshStats(statsTemplate, blocksTemplate) {
|
|
|
|
$.getJSON("/stats", function(stats) {
|
|
|
|
$("#alert").addClass('hide');
|
|
|
|
|
|
|
|
// Sort miners by ID
|
|
|
|
if (stats.miners) {
|
|
|
|
stats.miners = stats.miners.sort(compareMiners);
|
|
|
|
}
|
|
|
|
// Reverse sort blocks by height
|
|
|
|
if (stats.blocks) {
|
|
|
|
stats.blocks = stats.blocks.sort(compareBlocks);
|
|
|
|
}
|
|
|
|
|
|
|
|
var html = null;
|
|
|
|
$('.nav-pills > li').removeClass('active');
|
|
|
|
|
|
|
|
if (window.homeTab) {
|
|
|
|
html = statsTemplate(stats, { data: { intl: window.intlData } });
|
|
|
|
$('.nav-pills > li > #homeTab').parent().addClass('active');
|
|
|
|
} else {
|
|
|
|
html = blocksTemplate(stats, { data: { intl: window.intlData } });
|
|
|
|
$('.nav-pills > li > #blocksTab').parent().addClass('active');
|
|
|
|
}
|
|
|
|
$('#stats').html(html);
|
|
|
|
}).fail(function() {
|
|
|
|
$("#alert").removeClass('hide');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function compareMiners(a, b) {
|
|
|
|
if (a.name < b.name)
|
|
|
|
return -1;
|
|
|
|
if (a.name > b.name)
|
|
|
|
return 1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
function compareBlocks(a, b) {
|
|
|
|
if (a.height > b.height)
|
|
|
|
return -1;
|
|
|
|
if (a.height < b.height)
|
|
|
|
return 1;
|
|
|
|
return 0;
|
|
|
|
}
|