forked from hush/hnomp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
5.2 KiB
84 lines
5.2 KiB
$(function() {
|
|
initStatData();
|
|
|
|
statsSource.addEventListener('message', function (e) {
|
|
if (document.querySelector('#pagePayments') !== null) {
|
|
var stats = JSON.parse(e.data);
|
|
|
|
for (var f = 0; f < poolKeys.length; f++) {
|
|
var pool = poolKeys[f];
|
|
|
|
for (var i = 0; i < stats.pools[pool].payments.length; i++) {
|
|
var paymentstat = stats.pools[pool].payments[i];
|
|
|
|
var existingRow = document.querySelector('#payment' + pool + paymentstat.time);
|
|
|
|
if (existingRow == null) {
|
|
clearInterval(nextPaymentTimer);
|
|
paymentTimerOn = false;
|
|
|
|
//Add new
|
|
var insertPaymentTr = document.createElement('tr');
|
|
insertPaymentTr.id = 'payment' + pool + paymentstat.time;
|
|
insertPaymentTr.setAttribute('class', 'dynamicallyInserted');
|
|
insertPaymentTr.style.opacity = 0;
|
|
insertPaymentTr.style.transition = 'opacity 1s ease-in';
|
|
|
|
if (typeof paymentstat.txid !== 'undefined') {
|
|
var explorerlink = '<a href="' + explorerURL + 'tx/' + paymentstat.txid + '" target="_blank" rel="noopener noreferrer">' + paymentstat.blocks + '</a>';
|
|
} else {
|
|
var explorerlink = '<a>' + paymentstat.blocks + '</a>';
|
|
}
|
|
|
|
insertPaymentTr.innerHTML = '<td class="paymentblocks" title="Blocks:' + paymentstat.blocks.length + ' ' + paymentstat.opid + '">'
|
|
+ '<span class="responsiveTableLabel"><i class="fas fa-link fa-fw"></i></span> <span>Blocks: [' + paymentstat.blocks.length + '] </span>'
|
|
+ explorerlink + '<div class="fade">▼</div></td>';
|
|
insertPaymentTr.innerHTML += '<td><span class="responsiveTableLabel"><i class="far fa-clock fa-fw"></i> Time: </span>' + readableDate(paymentstat.time) + '</td>';
|
|
insertPaymentTr.innerHTML += '<td><span class="responsiveTableLabel"><i class="fas fa-users fa-fw"></i> Miners: </span>' + paymentstat.miners + '</td>';
|
|
insertPaymentTr.innerHTML += '<td><span class="responsiveTableLabel"><i class="fas fa-cog fa-fw"></i> Shares: </span>' + bigNumber(paymentstat.shares) + '</td>';
|
|
insertPaymentTr.innerHTML += '<td><span class="responsiveTableLabel"><i class="fas fa-money-bill-wave fa-fw"></i> Amount: </span>' + paymentstat.paid + ' ' + stats.pools[pool].symbol + '</td>';
|
|
|
|
var paymentTable = document.querySelector('#paymentTable' + pool + ' tbody');
|
|
if (paymentTable != null) {
|
|
paymentTable.insertBefore(insertPaymentTr, paymentTable.firstChild);
|
|
setTimeout(() => {
|
|
document.querySelectorAll('.dynamicallyInserted').forEach(function(newPayment) {
|
|
newPayment.style.opacity = 1;
|
|
});
|
|
}, 25);
|
|
console.log('Added new payment!');
|
|
}
|
|
} else {
|
|
//Update existing (txid) for private chains
|
|
if (typeof paymentstat.txid !== 'undefined' && (String(stats.pools[pool].name).startsWith("pirate") || String(stats.pools[pool].name).startsWith("arrr")) ) {
|
|
var explorer = 'https://explorer.pirate.black/tx/';
|
|
var paymentblock = document.querySelector('#payment' + pool + paymentstat.time + ' .paymentblocks a');
|
|
|
|
paymentblock.setAttribute('href', explorer + paymentstat.txid);
|
|
paymentblock.setAttribute('target', '_blank');
|
|
paymentblock.setAttribute('rel', 'noopener noreferrer');
|
|
}
|
|
}
|
|
}
|
|
|
|
//Global var from main.js - cleared on initStatData(), this needs to be started after the loop in case a new payment was added and old timer needs to be reset
|
|
if (!paymentTimerOn) {
|
|
nextPaymentTimer = setInterval(function() {
|
|
var timeElement = document.querySelector('#statsNextPayment' + pool);
|
|
if (timeElement !== null) {
|
|
var timeleft=(paymentInterval-parseInt((new Date().getTime() - parseInt(stats.pools[pool].payments[0].time))/1000));
|
|
if (timeleft > 0) {
|
|
timeElement.innerHTML = timeTil(timeleft);
|
|
timeElement.setAttribute('title', timeTilNumbers(timeleft));
|
|
} else {
|
|
timeElement.innerHTML = 'Now';
|
|
timeElement.setAttribute('title', '00:00:00');
|
|
}
|
|
}
|
|
}, 1000);
|
|
paymentTimerOn = true;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|