Latest Transactions (Front page) AJAX calls for dataTables

This commit is contained in:
joeuhren
2020-11-20 17:32:06 -07:00
parent 487c55642d
commit 52f36e227b
3 changed files with 56 additions and 28 deletions
+23
View File
@@ -181,6 +181,29 @@ app.use('/ext/getbasicstats', function(req,res){
});
});
app.use('/ext/getlasttxsajax', function(req,res){
if(typeof req.query.length === 'undefined' || isNaN(req.query.length) || req.query.length > settings.index.last_txs){
req.query.length = settings.index.last_txs;
}
if(typeof req.query.start === 'undefined' || isNaN(req.query.start) || req.query.start < 0){
req.query.start = 0;
}
db.get_last_txs_ajax(req.query.start, req.query.length,function(txs, count){
var data = [];
for(i=0; i<txs.length; i++){
var row = [];
row.push(txs[i].blockindex);
row.push(txs[i].blockhash);
row.push(txs[i].txid);
row.push(txs[i].vout.length);
row.push((txs[i].total));
row.push(new Date((txs[i].timestamp) * 1000).toUTCString());
data.push(row);
}
res.json({"data":data, "draw": req.query.draw, "recordsTotal": count, "recordsFiltered": count});
});
});
app.use('/ext/getaddresstxsajax/:address', function(req,res){
req.query.length = parseInt(req.query.length);
if(isNaN(req.query.length) || req.query.length > settings.txcount){
+12
View File
@@ -496,6 +496,18 @@ module.exports = {
});
},
get_last_txs_ajax: function(start, length, cb) {
Tx.countDocuments({'total': {$gt: 1}}, function(err, count){
Tx.find({'total': {$gt: 1}}).sort({blockindex: 'desc'}).skip(Number(start)).limit(Number(length)).exec(function(err, txs){
if (err) {
return cb(err);
} else {
return cb(txs, count);
}
});
});
},
get_address_txs_ajax: function(hash, start, length, cb) {
var totalCount = 0;
Address.findOne({a_id: hash}, function(err, addressTotalTxs) {
+21 -28
View File
@@ -16,7 +16,7 @@ block content
var displayLengthMax = (lengthMenuOpts[lengthMenuOpts.length-1]);
}
$(document).ready(function(){
var stable = $('#block-table').dataTable( {
var stable = $('#block-table').dataTable({
autoWidth: true,
searching: true,
ordering: false,
@@ -42,37 +42,32 @@ block content
//{ data: 'time', width: '20%' },
]
});
var rtable = $('#recent-table').dataTable( {
autoWidth: true,
var rtable = $('#recent-table').dataTable({
autoWidth: false,
searching: false,
ordering: false,
responsive: true,
responsive: false,
lengthChange: true,
processing: true,
serverSide: true,
iDisplayLength: displayLengthMax,
lengthMenu: lengthMenuOpts,
ajax: {
url: '/ext/getlasttxs/-0.00000001',
dataSrc: function ( json ) {
for ( var i=0;i<json.data.length; i++ ) {
json.data[i]['timestamp'] = new Date((json.data[i]['timestamp']) * 1000).toUTCString();
json.data[i]['txid'] = "<a href='/tx/" + json.data[i]['txid'] + "'>" + json.data[i]['txid'] + "</a>";
json.data[i]['blockindex'] = "<a href='/block/" + json.data[i]['blockhash'] + "'>" + json.data[i]['blockindex'] + "</a>";
var amount = (json.data[i]['total'] / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
var amountParts = amount.split('.');
json.data[i]['total'] = amountParts[0] + '.<span class="decimal">' + amountParts[1] + '</span>';
json.data[i]['recipients'] = json.data[i]['vout'].length;
}
return json.data;
}
ajax: '/ext/getlasttxsajax',
rowCallback: function(row, data, index) {
var blockindex = data[0]; //variables for better readability
var blockhash = data[1]; //variables for better readability
var txhash = data[2]; //variables for better readability
var outputs = data[3]; //variables for better readability
var amount = (data[4] / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true}); //variables for better readability
var amountParts = amount.split('.');
var amount = amountParts[0] + '.<span class="decimal">' + amountParts[1] + '</span>';
var timestamp = data[5]; //variables for better readability
$("td:eq(0)", row).html('<a href="/block/' + blockhash + '">' + blockindex + '</a>');
$("td:eq(1)", row).html('<a href="/tx/' + txhash + '">' + txhash + '</a>').addClass("d-none d-md-none d-lg-table-cell text-center");
$("td:eq(2)", row).html(outputs).addClass("d-none d-md-none d-lg-table-cell text-center");
$("td:eq(3)", row).html(amount);
$("td:eq(4)", row).html(timestamp);
},
columns: [
{ data: 'blockindex', width: '8%' },
{ data: 'txid', width: '40%' },
{ data: 'recipients', width:'5%' },
{ data: 'total', width: '15%' },
{ data: 'timestamp', width: '25%' },
]
});
setInterval( function () {
rtable.api().ajax.reload(null, false);
@@ -103,6 +98,4 @@ block content
th.text-center #{settings.locale.mkt_amount} (#{settings.symbol})
th.text-center #{settings.locale.timestamp}
tbody.text-center
.footer-padding
.footer-padding