extends layout block content script. var setting_txPerPage = parseInt("#{settings.masternodes_page.masternode_table.items_per_page}"); var lengthMenuOpts = !{JSON.stringify(settings.masternodes_page.masternode_table.page_length_options)}; var addedLength = false; for (i = 0; i < lengthMenuOpts.length; i++) { if (!addedLength) { if (lengthMenuOpts[i] > setting_txPerPage) { lengthMenuOpts.splice(i, 0, setting_txPerPage); addedLength = true; } else if (lengthMenuOpts[i] == setting_txPerPage) addedLength = true; } } if (!addedLength && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1]) lengthMenuOpts.push(setting_txPerPage); function secondsToHms(d) { d = Number(d); var h = Math.floor(d / 3600); var m = Math.floor(d % 3600 / 60); var s = Math.floor(d % 3600 % 60); var dy = Math.floor(h / 24); var h = h % 24; return ('0' + dy).slice(-2) + " day" + (('0' + dy).slice(-2) == 1 ? "" : "s") + " " + ('0' + h).slice(-2) + "h " + ('0' + m).slice(-2) + "m " + ('0' + s).slice(-2) + "s"; } $(document).ready(function() { var enabled_columns = { rank: false, network: false, status : false, addr: false, version : false, lastseen: false, activetime: false, lastpaid: false, ip_address: false, last_paid_block: false }; var labels = !{JSON.stringify(settings.labels)}; var ctable = $('#masternodes-table').dataTable({ autoWidth: true, searching: true, ordering: true, order: [[ 5, 'desc' ]], responsive: true, lengthChange: true, processing: true, iDisplayLength: setting_txPerPage, lengthMenu: lengthMenuOpts, scrollX: true, language: { paginate: { previous: '<', next: '>' } }, ajax: { url: '/ext/getmasternodelist', dataSrc: function(json) { for (i = 0; i < json.length; i++) { if (json[i]['rank'] != null && json[i]['rank'] > 0) enabled_columns.rank = true; if (json[i]['network'] != null && json[i]['network'] != '') enabled_columns.network = true; if (json[i]['ip_address'] != null && json[i]['ip_address'] != '') enabled_columns.ip_address = true; if (json[i]['version'] != null && json[i]['version'] > 0) enabled_columns.version = true; if (json[i]['lastseen'] != null && json[i]['lastseen'] > 0) enabled_columns.lastseen = true; if (json[i]['lastpaid'] != null && json[i]['lastpaid'] > 0) enabled_columns.lastpaid = true; if (json[i]['last_paid_block'] != null && json[i]['last_paid_block'] > 0) enabled_columns.last_paid_block = true; if (json[i]['activetime'] != null && json[i]['activetime'] > 0) enabled_columns.activetime = true; if (json[i]['status'] != null && json[i]['status'] != '') enabled_columns.status = true; if (json[i]['addr'] != null && json[i]['addr'] != '') enabled_columns.addr = true; var addr = json[i]['addr']; if (json[i]['lastseen'] != null) json[i]['lastseen'] = '' + format_unixtime(json[i]['lastseen']) + ''; if (json[i]['lastpaid'] != null && json[i]['lastpaid'] != '' && json[i]['lastpaid'] != '0') json[i]['lastpaid'] = '' + format_unixtime(json[i]['lastpaid']) + ''; else json[i]['lastpaid'] = 'N/A'; if (json[i]['activetime']) json[i]['activetime'] = secondsToHms(json[i]['activetime']); else json[i]['activetime'] = 'N/A'; json[i]['addr'] = "" + json[i]['addr'] + ('#{settings.claim_address_page.enabled}' == 'true' && json[i]['claim_name'] != null && json[i]['claim_name'] != '' ? ' (' + json[i]['claim_name'] + ')' : '') + ""; if (labels[addr] != null && labels[addr].enabled == true) { if (labels[addr].type) json[i]['addr'] = '
' + json[i]['addr']; else json[i]['addr'] = '' + json[i]['addr']; } } return json; } }, columns: [ { name: 'ip_address', data: 'ip_address', className: "ipAddressCol" }, { name: 'rank', data: 'rank', className: "rankCol" }, { name: 'network', data: 'network', className: "networkCol" }, { name: 'addr', data: 'addr', className: "addressCol" }, { name: 'version', data: 'version', className: "versionCol" }, { name: 'lastseen', data: 'lastseen', className: "lastSeenCol" }, { name: 'lastpaid', data: 'lastpaid', className: "lastPaidCol" }, { name: 'last_paid_block', data: 'last_paid_block', className: "lastPaidBlockCol" }, { name: 'activetime', data: 'activetime', className: "activeTimeCol" }, { name: 'status', data: 'status', className: "statusCol" } ], rowCallback: function(row, data, index) { $("td.addressCol", row).addClass("breakWord"); $("td.ipAddressCol", row).addClass("breakWord"); switch (data['status'].toUpperCase()) { case 'ENABLED': $("td.statusCol", row).addClass('table-success'); break; case 'REMOVE': $("td.statusCol", row).addClass('table-danger'); break; case 'EXPIRED': case 'WATCHDOG_EXPIRED': case 'NEW_START_REQUIRED': case 'UPDATE_REQUIRED': case 'POSE_BANNED': $("td.statusCol", row).addClass('table-warning'); break; default: $("td.statusCol", row).addClass('table-info'); break; } }, fnDrawCallback: function(settings) { fixDataTableColumns(); fixFooterHeightAndPosition(); enableTooltips(); }, fnInitComplete: function(settings, json) { setTimeout(function () { // Hide/show columns based on whether they have data or not ctable.api().column('rank:name').visible(enabled_columns.rank, false); ctable.api().column('network:name').visible(enabled_columns.network, false); ctable.api().column('version:name').visible(enabled_columns.version, false); ctable.api().column('lastseen:name').visible(enabled_columns.lastseen, false); ctable.api().column('activetime:name').visible(enabled_columns.activetime, false); ctable.api().column('ip_address:name').visible(enabled_columns.ip_address, false); ctable.api().column('last_paid_block:name').visible(enabled_columns.last_paid_block, false); ctable.api().column('status:name').visible(enabled_columns.status, false); ctable.api().column('addr:name').visible(enabled_columns.addr, false); ctable.api().column('lastpaid:name').visible(enabled_columns.lastpaid, false); fixDataTableColumns(); }, 0); } }); if ('#{settings.masternodes_page.page_header.show_last_updated}' == 'true') { const lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)}; if (lastUpdatedDate != 0) { $('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate)); if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) { $('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true)); enableTooltips(); } } else $('span#lastUpdatedDate').html(' N/A'); } if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.masternodes_page.page_header.show_img} == true) startRotateElement('img#header-img'); }); .col-md-12.cardSpacer if settings.masternodes_page.page_header.show_img == true || settings.masternodes_page.page_header.show_title == true || settings.masternodes_page.page_header.show_last_updated == true || settings.masternodes_page.page_header.show_description == true #page-header-container(style='align-items:' + (settings.masternodes_page.page_header.show_img == true && settings.masternodes_page.page_header.show_title == true && settings.masternodes_page.page_header.show_last_updated == true && settings.masternodes_page.page_header.show_description == true ? 'flex-start' : 'center')) if settings.masternodes_page.page_header.show_img == true #header-img-container img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path)) #page-title-container if settings.masternodes_page.page_header.show_title == true h3#page-title #{settings.localization.mn_title.replace('{1}', settings.coin.name)} if settings.masternodes_page.page_header.show_last_updated == true if settings.masternodes_page.page_header.show_title != true && settings.masternodes_page.page_header.show_description != true #page-title-container .sub-page-header span.fw-bold=settings.localization.last_updated + ':' span.text-muted#lastUpdatedDate else .sub-page-header(style='margin-bottom:' + (settings.masternodes_page.page_header.show_description == true ? '5' : '0') + 'px') span.fw-bold=settings.localization.last_updated + ':' span.text-muted#lastUpdatedDate if settings.masternodes_page.page_header.show_description == true if settings.masternodes_page.page_header.show_title != true && settings.masternodes_page.page_header.show_last_updated != true #page-title-container .sub-page-header.text-muted=settings.localization.mn_description.replace('{1}', settings.coin.name) else .sub-page-header.text-muted=settings.localization.mn_description.replace('{1}', settings.coin.name) .cardSpacer.clearfix .card.card-default.border-0.cardSpacer .card-header strong Masternode List table#masternodes-table.table.table-bordered.table-striped.table-paging.table-hover - var theadClasses = []; if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != '' - theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor); thead tr(class=theadClasses) th.text-center IP address th.text-center Pay rank th.text-center Network th.text-center Wallet address th.text-center Protocol th.text-center Last seen th.text-center Last paid th.text-center Last paid block th.text-center Active since th.text-center Status tbody.text-center