Merge pull request #755 from TheSerapher/dashboard-nrpatten
Dashboard nrpatten
This commit is contained in:
commit
503be61f08
@ -47,14 +47,17 @@ $dNetworkHashrateAdjusted = $dNetworkHashrate / 1000 * $dNetworkHashrateModifier
|
|||||||
// Worker information
|
// Worker information
|
||||||
$aWorkers = $worker->getWorkers($user_id, $interval);
|
$aWorkers = $worker->getWorkers($user_id, $interval);
|
||||||
|
|
||||||
|
// Coin price
|
||||||
|
$aPrice = $setting->getValue('price');
|
||||||
|
|
||||||
// Output JSON format
|
// Output JSON format
|
||||||
$data = array(
|
$data = array(
|
||||||
'raw' => array( 'personal' => array( 'hashrate' => $dPersonalHashrate ), 'pool' => array( 'hashrate' => $dPoolHashrate ), 'network' => array( 'hashrate' => $dNetworkHashrate / 1000 ) ),
|
'raw' => array( 'personal' => array( 'hashrate' => $dPersonalHashrate ), 'pool' => array( 'hashrate' => $dPoolHashrate ), 'network' => array( 'hashrate' => $dNetworkHashrate / 1000 ) ),
|
||||||
'personal' => array (
|
'personal' => array (
|
||||||
'hashrate' => $dPersonalHashrateAdjusted, 'sharerate' => $dPersonalSharerate,
|
'hashrate' => $dPersonalHashrateAdjusted, 'sharerate' => $dPersonalSharerate,
|
||||||
'shares' => array('valid' => $aUserRoundShares['valid'], 'invalid' => $aUserRoundShares['invalid']),
|
'shares' => array('valid' => $aUserRoundShares['valid'], 'invalid' => $aUserRoundShares['invalid']),
|
||||||
'balance' => $transaction->getBalance($user_id), 'estimates' => $aEstimates, 'workers' => $aWorkers),
|
'balance' => $transaction->getBalance($user_id), 'estimates' => $aEstimates, 'workers' => $aWorkers ),
|
||||||
'pool' => array( 'hashrate' => $dPoolHashrateAdjusted, 'shares' => $aRoundShares ),
|
'pool' => array( 'workers' => $worker->getCountAllActiveWorkers(), 'hashrate' => $dPoolHashrateAdjusted, 'shares' => $aRoundShares, 'price' => $aPrice ),
|
||||||
'network' => array( 'hashrate' => $dNetworkHashrateAdjusted, 'difficulty' => $dDifficulty, 'block' => $iBlock ),
|
'network' => array( 'hashrate' => $dNetworkHashrateAdjusted, 'difficulty' => $dDifficulty, 'block' => $iBlock ),
|
||||||
);
|
);
|
||||||
echo $api->get_json($data);
|
echo $api->get_json($data);
|
||||||
|
|||||||
45
public/include/pages/api/getnavbardata.inc.php
Normal file
45
public/include/pages/api/getnavbardata.inc.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Make sure we are called from index.php
|
||||||
|
if (!defined('SECURITY')) die('Hacking attempt');
|
||||||
|
|
||||||
|
// Check if the API is activated
|
||||||
|
$api->isActive();
|
||||||
|
|
||||||
|
// Fetch RPC information
|
||||||
|
if ($bitcoin->can_connect() === true) {
|
||||||
|
$dNetworkHashrate = $bitcoin->getnetworkhashps();
|
||||||
|
$dDifficulty = $bitcoin->getdifficulty();
|
||||||
|
$iBlock = $bitcoin->getblockcount();
|
||||||
|
} else {
|
||||||
|
$dNetworkHashrate = 0;
|
||||||
|
$dDifficulty = 1;
|
||||||
|
$iBlock = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some settings
|
||||||
|
if ( ! $interval = $setting->getValue('statistics_ajax_data_interval')) $interval = 300;
|
||||||
|
if ( ! $dPoolHashrateModifier = $setting->getValue('statistics_pool_hashrate_modifier') ) $dPoolHashrateModifier = 1;
|
||||||
|
if ( ! $dNetworkHashrateModifier = $setting->getValue('statistics_network_hashrate_modifier') ) $dNetworkHashrateModifier = 1;
|
||||||
|
|
||||||
|
// Fetch raw data
|
||||||
|
$statistics->setGetCache(false);
|
||||||
|
$dPoolHashrate = $statistics->getCurrentHashrate($interval);
|
||||||
|
if ($dPoolHashrate > $dNetworkHashrate) $dNetworkHashrate = $dPoolHashrate;
|
||||||
|
$statistics->setGetCache(true);
|
||||||
|
|
||||||
|
// Apply pool modifiers
|
||||||
|
$dPoolHashrateAdjusted = $dPoolHashrate * $dPoolHashrateModifier;
|
||||||
|
$dNetworkHashrateAdjusted = $dNetworkHashrate / 1000 * $dNetworkHashrateModifier;
|
||||||
|
|
||||||
|
// Output JSON format
|
||||||
|
$data = array(
|
||||||
|
'raw' => array( 'workers' => $worker->getCountAllActiveWorkers(), 'pool' => array( 'hashrate' => $dPoolHashrate ) ),
|
||||||
|
'pool' => array( 'workers' => $worker->getCountAllActiveWorkers(), 'hashrate' => $dPoolHashrateAdjusted ),
|
||||||
|
'network' => array( 'hashrate' => $dNetworkHashrateAdjusted, 'difficulty' => $dDifficulty, 'block' => $iBlock ),
|
||||||
|
);
|
||||||
|
echo $api->get_json($data);
|
||||||
|
|
||||||
|
// Supress master template
|
||||||
|
$supress_master = 1;
|
||||||
|
?>
|
||||||
@ -1,9 +1,8 @@
|
|||||||
{if $smarty.session.AUTHENTICATED|default}
|
{if $smarty.session.AUTHENTICATED|default}
|
||||||
{assign var=payout_system value=$GLOBAL.config.payout_system}
|
{assign var=payout_system value=$GLOBAL.config.payout_system}
|
||||||
{include file="dashboard/overview.tpl"}
|
{include file="dashboard/overview.tpl"}
|
||||||
{include file="dashboard/round_data.tpl"}
|
|
||||||
{include file="dashboard/default_$payout_system.tpl"}
|
{include file="dashboard/default_$payout_system.tpl"}
|
||||||
{include file="dashboard/account_data.tpl"}
|
{include file="dashboard/round_data.tpl"}
|
||||||
{include file="dashboard/workers.tpl"}
|
{include file="dashboard/account_data.tpl"}{include file="dashboard/workers.tpl"}
|
||||||
{include file="dashboard/js.tpl"}
|
{include file="dashboard/js.tpl"}
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@ -1,60 +1,73 @@
|
|||||||
<article class="module width_quarter">
|
<article class="module width_quarter">
|
||||||
<header><h3>Dashboard</h3></header>
|
<header><h3>PPLNS Stats</h3></header>
|
||||||
<div class="module_content">
|
<div class="module_content">
|
||||||
<table align="center" width="50%">
|
<table width="100%">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>PPLNS Target</b></td>
|
<td><b>PPLNS Target</b></td>
|
||||||
<td>{$GLOBAL.pplns.target|number_format}</td>
|
<td id="b-pplns" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><b><u>Your Stats</u></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Hashrate</b></td>
|
||||||
|
<td class="right"><span id="b-hashrate"></span> {$GLOBAL.hashunits.pool}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Share Rate</b></td>
|
||||||
|
<td class="right"><span id="b-sharerate"></span> S/s</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<table align="left" width="50%">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Valid</b></td>
|
<td><b>Pool Valid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.valid|number_format}</i></td>
|
<td id="b-pvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Valid<b></td>
|
<td><b>Your Valid<b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.valid|number_format}</i><font size='1px'></font></b></td>
|
<td id="b-yvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Invalid</b></td>
|
<td><b>Pool Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.roundshares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-pivalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Invalid</b></td>
|
<td><b>Your Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.userdata.shares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-yivalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<table align="right" width="50%">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><b><u>{$GLOBAL.config.currency} Round Estimate</u></b></td>
|
<td colspan="2"><b><u>{$GLOBAL.config.currency} Round Estimate</u></b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Block</b></td>
|
<td><b>Block</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_block|number_format:"3"}</td>
|
<td id="b-block" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Fees</b></td>
|
<td><b>Fees</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_fee|number_format:"3"}</td>
|
<td id="b-fee" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Donation</b></td>
|
<td><b>Donation</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_donation|number_format:"3"}</td>
|
<td id="b-donation" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Payout</b></td>
|
<td><b>Payout</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_payout|number_format:"3"}</td>
|
<td id="b-payout" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><b><u>{$GLOBAL.config.currency} Info</u></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Difficulty</b></td>
|
||||||
|
<td id="b-diff" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Block</b></td>
|
||||||
|
<td id="b-nblock" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
|
|||||||
@ -1,39 +1,33 @@
|
|||||||
<article class="module width_quarter">
|
<article class="module width_quarter">
|
||||||
<header><h3>Dashboard</h3></header>
|
<header><h3>PPS Stats</h3></header>
|
||||||
<div class="module_content">
|
<div class="module_content">
|
||||||
<table width="50%" align="center">
|
<table width="100%">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>PPS Value</b></td>
|
<td><b>PPS Value</b></td>
|
||||||
<td>{$GLOBAL.ppsvalue}</td>
|
<td>{$GLOBAL.ppsvalue}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr><td colspan="2"> </td></tr>
|
||||||
</table>
|
|
||||||
<table align="left" width="50%">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Valid</b></td>
|
<td><b>Pool Valid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.valid|number_format}</i></td>
|
<td id="b-pvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Valid</b></td>
|
<td><b>Your Valid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.valid|number_format}</i></td>
|
<td id="b-yvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Invalid</b></td>
|
<td><b>Pool Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.roundshares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-pivalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Invalid</b></td>
|
<td><b>Your Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.userdata.shares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-yivalid class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr><td colspan="2"> </td></tr>
|
||||||
</table>
|
|
||||||
<table align="left" width="50%">
|
|
||||||
<tbody>
|
|
||||||
<tr><td colspan="2"><b><u>{$GLOBAL.config.currency} Estimates</u></b></td></tr>
|
<tr><td colspan="2"><b><u>{$GLOBAL.config.currency} Estimates</u></b></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>in 24 hours</b></td>
|
<td><b>in 24 hours</b></td>
|
||||||
@ -47,6 +41,19 @@
|
|||||||
<td><b>in 14 days</b></td>
|
<td><b>in 14 days</b></td>
|
||||||
<td class="right">{($GLOBAL.userdata.sharerate * 14 * 24 * 60 * 60 * $GLOBAL.ppsvalue)|number_format:"8"}</td>
|
<td class="right">{($GLOBAL.userdata.sharerate * 14 * 24 * 60 * 60 * $GLOBAL.ppsvalue)|number_format:"8"}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr><td colspan="2"> </td></tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><b><u>{$GLOBAL.config.currency} Info</u></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Difficulty</b></td>
|
||||||
|
<td id="b-diff" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Block</b></td>
|
||||||
|
<td id="b-nblock" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr><td colspan="2"> </td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,49 +1,58 @@
|
|||||||
<article class="module width_quarter">
|
<article class="module width_quarter">
|
||||||
<header><h3>Dashboard</h3></header>
|
<header><h3>Prop Stats</h3></header>
|
||||||
<div class="module_content">
|
<div class="module_content">
|
||||||
<table align="left" width="50%">
|
<table width="100%">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
<td colspan="2"><b><u>Round Shares</u></b> <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Submitted shares since last found block (ie. round shares)'></span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Valid</b></td>
|
<td><b>Pool Valid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.valid|number_format}</i></td>
|
<td id="b-pvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Valid<b></td>
|
<td><b>Your Valid<b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.valid|number_format}</i><font size='1px'></font></b></td>
|
<td id="b-yvalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Pool Invalid</b></td>
|
<td><b>Pool Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.roundshares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.roundshares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-pivalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Your Invalid</b></td>
|
<td><b>Your Invalid</b></td>
|
||||||
<td class="right"><i>{$GLOBAL.userdata.shares.invalid|number_format}</i>{if $GLOBAL.roundshares.valid > 0}<font size='1px'> ({($GLOBAL.userdata.shares.invalid / ($GLOBAL.roundshares.valid + $GLOBAL.roundshares.invalid) * 100)|number_format:"2"}%)</font>{/if}</td>
|
<td id="b-yivalid" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr><td colspan="2"> </td></tr>
|
||||||
</table>
|
|
||||||
<table align="right" width="50%">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><b><u>{$GLOBAL.config.currency} Round Estimate</u></b></td>
|
<td colspan="2"><b><u>{$GLOBAL.config.currency} Round Estimate</u></b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Block</b></td>
|
<td><b>Block</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_block|number_format:"8"}</td>
|
<td id="b-block" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Fees</b></td>
|
<td><b>Fees</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_fee|number_format:"8"}</td>
|
<td id="b-fee" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Donation</b></td>
|
<td><b>Donation</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_donation|number_format:"8"}</td>
|
<td id="b-donation" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Payout</b></td>
|
<td><b>Payout</b></td>
|
||||||
<td class="right">{$GLOBAL.userdata.est_payout|number_format:"8"}</td>
|
<td id="b-payout" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr><td colspan="2"> </td></tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><b><u>{$GLOBAL.config.currency} Info</u></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Difficulty</b></td>
|
||||||
|
<td id="b-diff" class="right"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Current Block</b></td>
|
||||||
|
<td id="b-nblock" class="right"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td colspan="2"> </td></tr>
|
<tr><td colspan="2"> </td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@ -88,11 +88,11 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
// Helper to initilize gauges
|
// Helper to initilize gauges
|
||||||
function initGauges(data) {
|
function initGauges(data) {
|
||||||
g1 = new JustGage({id: "nethashrate", value: parseFloat(data.getdashboarddata.data.network.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.network.hashrate * 2), title: "Net Hashrate", label: "{/literal}{$GLOBAL.hashunits.network}{literal}"});
|
g1 = new JustGage({id: "nethashrate", value: parseFloat(data.getdashboarddata.data.network.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.network.hashrate * 2), title: "Net Hashrate", gaugeColor: '#6f7a8a', valueFontColor: '#555', shadowOpacity : 0.8, shadowSize : 0, shadowVerticalOffset : 10, label: "{/literal}{$GLOBAL.hashunits.network}{literal}"});
|
||||||
g2 = new JustGage({id: "poolhashrate", value: parseFloat(data.getdashboarddata.data.pool.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.pool.hashrate * 2), title: "Pool Hashrate", label: "{/literal}{$GLOBAL.hashunits.pool}{literal}"});
|
g2 = new JustGage({id: "poolhashrate", value: parseFloat(data.getdashboarddata.data.pool.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.pool.hashrate * 4), title: "Pool Hashrate", gaugeColor: '#6f7a8a', valueFontColor: '#555', shadowOpacity : 0.8, shadowSize : 0, shadowVerticalOffset : 10, label: "{/literal}{$GLOBAL.hashunits.pool}{literal}"});
|
||||||
g3 = new JustGage({id: "hashrate", value: parseFloat(data.getdashboarddata.data.personal.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.personal.hashrate * 2), title: "Hashrate", label: "{/literal}{$GLOBAL.hashunits.personal}{literal}"});
|
g3 = new JustGage({id: "hashrate", value: parseFloat(data.getdashboarddata.data.personal.hashrate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.personal.hashrate * 4), title: "Hashrate", gaugeColor: '#6f7a8a', valueFontColor: '#555', shadowOpacity : 0.8, shadowSize : 0, shadowVerticalOffset : 10, label: "{/literal}{$GLOBAL.hashunits.personal}{literal}"});
|
||||||
g4 = new JustGage({id: "sharerate", value: parseFloat(data.getdashboarddata.data.personal.sharerate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.personal.sharerate * 2), title: "Sharerate", label: "shares/s"});
|
g4 = new JustGage({id: "sharerate", value: parseFloat(data.getdashboarddata.data.personal.sharerate).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.data.personal.sharerate * 2), gaugeColor: '#6f7a8a', valueFontColor: '#555', shadowOpacity : 0.8, shadowSize : 0, shadowVerticalOffset : 10, title: "Sharerate", label: "shares/s"});
|
||||||
g5 = new JustGage({id: "querytime", value: parseFloat(data.getdashboarddata.runtime).toFixed(2), min: 0, max: Math.round(data.getdashboarddata.runtime * 3), title: "Querytime", label: "ms"});
|
g5 = new JustGage({id: "querytime", value: parseFloat(data.getdashboarddata.runtime).toFixed(0), min: 0, max: Math.round(data.getdashboarddata.runtime * 100), gaugeColor: '#6f7a8a', valueFontColor: '#555', shadowOpacity : 0.8, shadowSize : 0, shadowVerticalOffset : 10, title: "Querytime", label: "ms"});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper to refresh graphs
|
// Helper to refresh graphs
|
||||||
@ -101,7 +101,7 @@ $(document).ready(function(){
|
|||||||
g2.refresh(parseFloat(data.getdashboarddata.data.pool.hashrate).toFixed(2));
|
g2.refresh(parseFloat(data.getdashboarddata.data.pool.hashrate).toFixed(2));
|
||||||
g3.refresh(parseFloat(data.getdashboarddata.data.personal.hashrate).toFixed(2));
|
g3.refresh(parseFloat(data.getdashboarddata.data.personal.hashrate).toFixed(2));
|
||||||
g4.refresh(parseFloat(data.getdashboarddata.data.personal.sharerate).toFixed(2));
|
g4.refresh(parseFloat(data.getdashboarddata.data.personal.sharerate).toFixed(2));
|
||||||
g5.refresh(parseFloat(data.getdashboarddata.runtime).toFixed(2));
|
g5.refresh(parseFloat(data.getdashboarddata.runtime).toFixed(0));
|
||||||
if (storedPersonalHashrate.length > 20) { storedPersonalHashrate.shift(); }
|
if (storedPersonalHashrate.length > 20) { storedPersonalHashrate.shift(); }
|
||||||
if (storedPoolHashrate.length > 20) { storedPoolHashrate.shift(); }
|
if (storedPoolHashrate.length > 20) { storedPoolHashrate.shift(); }
|
||||||
if (storedPersonalSharerate.length > 20) { storedPersonalSharerate.shift(); }
|
if (storedPersonalSharerate.length > 20) { storedPersonalSharerate.shift(); }
|
||||||
@ -135,6 +135,21 @@ $(document).ready(function(){
|
|||||||
function refreshStaticData(data) {
|
function refreshStaticData(data) {
|
||||||
$('#b-confirmed').html(data.getdashboarddata.data.personal.balance.confirmed);
|
$('#b-confirmed').html(data.getdashboarddata.data.personal.balance.confirmed);
|
||||||
$('#b-unconfirmed').html(data.getdashboarddata.data.personal.balance.unconfirmed);
|
$('#b-unconfirmed').html(data.getdashboarddata.data.personal.balance.unconfirmed);
|
||||||
|
$('#b-price').html((parseFloat(data.getdashboarddata.data.pool.price).toFixed(4)));
|
||||||
|
$('#b-dworkers').html(data.getdashboarddata.data.pool.workers);
|
||||||
|
$('#b-hashrate').html((parseFloat(data.getdashboarddata.data.personal.hashrate).toFixed(2)));
|
||||||
|
$('#b-sharerate').html((parseFloat(data.getdashboarddata.data.personal.sharerate).toFixed(2)));
|
||||||
|
$('#b-yvalid').html(data.getdashboarddata.data.personal.shares.valid);
|
||||||
|
$('#b-yivalid').html(data.getdashboarddata.data.personal.shares.invalid);
|
||||||
|
$('#b-pvalid').html(data.getdashboarddata.data.pool.shares.valid);
|
||||||
|
$('#b-pivalid').html(data.getdashboarddata.data.pool.shares.invalid);
|
||||||
|
$('#b-diff').html(data.getdashboarddata.data.network.difficulty);
|
||||||
|
$('#b-nblock').html(data.getdashboarddata.data.network.block);
|
||||||
|
$('#b-payout').html((parseFloat(data.getdashboarddata.data.personal.estimates.payout).toFixed(4)));
|
||||||
|
$('#b-block').html((parseFloat(data.getdashboarddata.data.personal.estimates.block).toFixed(4)));
|
||||||
|
$('#b-fee').html((parseFloat(data.getdashboarddata.data.personal.estimates.fee).toFixed(4)));
|
||||||
|
$('#b-donation').html((parseFloat(data.getdashboarddata.data.personal.estimates.donation).toFixed(4)));
|
||||||
|
$('#b-pplns').html({/literal}{$GLOBAL.pplns.target}{literal});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Refresh worker information
|
// Refresh worker information
|
||||||
|
|||||||
@ -1,18 +1,20 @@
|
|||||||
<article class="module width_full">
|
<article class="module module width_3_quarter">
|
||||||
<header><h3>Overview</h3></header>
|
<header><h3>Overview {if $GLOBAL.config.price.currency}{$GLOBAL.config.currency}/{$GLOBAL.config.price.currency}: <span id="b-price"></span>{/if} / Pool Workers: <span id="b-dworkers"></span></h3></header>
|
||||||
<div class="module_content">
|
<div class="module_content">
|
||||||
|
<center>
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<div id="poolhashrate" style="width:100px; height:80px;"></div>
|
<div id="poolhashrate" style="width:120px; height:90px;"></div>
|
||||||
<div id="sharerate" style="width:100px; height:80px;"></div>
|
<div id="sharerate" style="width:120px; height:90px;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<div id="hashrate" style="width:200px; height:160px;"></div>
|
<div id="hashrate" style="width:220px; height:180px;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<div id="nethashrate" style="width:100px; height:80px;"></div>
|
<div id="nethashrate" style="width:120px; height:90px;"></div>
|
||||||
<div id="querytime" style="width:100px; height:80px;"></div>
|
<div id="querytime" style="width:120px; height:90px;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-left: 50px; display: inline-block; width: 70%;">
|
</center>
|
||||||
|
<div style="margin-left: 16px; display: inline-block; width: 100%;">
|
||||||
<div id="hashrategraph" style="height: 160px; width: 100%;"></div>
|
<div id="hashrategraph" style="height: 160px; width: 100%;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<article class="module width_quarter">
|
<article class="module width_3_quarter">
|
||||||
<header><h3>Round Information</h3></header>
|
<header><h3>Round Information</h3></header>
|
||||||
<div class="module_content">
|
<div class="module_content">
|
||||||
<div id="shareinfograph" style="width: 100%; height: 150px;"></div>
|
<div id="shareinfograph" style="width: 100%; height: 150px;"></div>
|
||||||
|
|||||||
@ -67,4 +67,21 @@
|
|||||||
<li class="icon-mail"><a href="{$smarty.server.PHP_SELF}?page=support">Support</a></li>
|
<li class="icon-mail"><a href="{$smarty.server.PHP_SELF}?page=support">Support</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<hr/>
|
||||||
|
</ul>
|
||||||
|
{if $smarty.session.AUTHENTICATED|default:"0" == 1}
|
||||||
|
<br />
|
||||||
|
{else}
|
||||||
|
<ul>
|
||||||
|
<center>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<i><u><b><font size="2">LIVE STATS</font></b></u></i>
|
||||||
|
<div id="mr" style="width:180px; height:120px;"></div>
|
||||||
|
<div id="hr" style="width:180px; height:120px;"></div>
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
{include file="global/navjs.tpl"}
|
||||||
|
{/if}
|
||||||
|
|||||||
87
public/templates/mpos/global/navjs.tpl
Normal file
87
public/templates/mpos/global/navjs.tpl
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<script>
|
||||||
|
{literal}
|
||||||
|
$(document).ready(function(){
|
||||||
|
var g1, g2;
|
||||||
|
|
||||||
|
// Ajax API URL
|
||||||
|
var url = "{/literal}{$smarty.server.PHP_SELF}?page=api&action=getnavbardata{literal}";
|
||||||
|
|
||||||
|
// Store our data globally
|
||||||
|
var storedHashrate=[];
|
||||||
|
var storedWorkers=[];
|
||||||
|
|
||||||
|
// Helper to initilize gauges
|
||||||
|
function initGauges(data) {
|
||||||
|
|
||||||
|
g1 = new JustGage({
|
||||||
|
id: "mr",
|
||||||
|
value: parseFloat(data.getnavbardata.data.pool.workers).toFixed(0),
|
||||||
|
min: 0,
|
||||||
|
max: Math.round(data.getnavbardata.data.pool.workers * 4),
|
||||||
|
title: "Miners",
|
||||||
|
gaugeColor: '#6f7a8a',
|
||||||
|
labelFontColor: '#555',
|
||||||
|
titleFontColor: '#555',
|
||||||
|
valueFontColor: '#555',
|
||||||
|
label: "Active Miners",
|
||||||
|
relativeGaugeSize: true,
|
||||||
|
showMinMax: true,
|
||||||
|
shadowOpacity : 0.8,
|
||||||
|
shadowSize : 0,
|
||||||
|
shadowVerticalOffset : 10
|
||||||
|
});
|
||||||
|
|
||||||
|
g2 = new JustGage({
|
||||||
|
id: "hr",
|
||||||
|
value: parseFloat(data.getnavbardata.data.pool.hashrate).toFixed(2),
|
||||||
|
min: 0,
|
||||||
|
max: Math.round(data.getnavbardata.data.pool.hashrate * 4),
|
||||||
|
title: "Pool Hasrate",
|
||||||
|
gaugeColor: '#6f7a8a',
|
||||||
|
labelFontColor: '#555',
|
||||||
|
titleFontColor: '#555',
|
||||||
|
valueFontColor: '#555',
|
||||||
|
label: "{/literal}{$GLOBAL.hashunits.pool}{literal}",
|
||||||
|
relativeGaugeSize: true,
|
||||||
|
showMinMax: true,
|
||||||
|
shadowOpacity : 0.8,
|
||||||
|
shadowSize : 0,
|
||||||
|
shadowVerticalOffset : 10
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper to refresh graphs
|
||||||
|
function refreshInformation(data) {
|
||||||
|
g1.refresh(parseFloat(data.getnavbardata.data.pool.workers).toFixed(0));
|
||||||
|
g2.refresh(parseFloat(data.getnavbardata.data.pool.hashrate).toFixed(2));
|
||||||
|
if (storedWorkers.length > 20) { storedWorkers.shift(); }
|
||||||
|
if (storedHashrate.length > 20) { storedHashrate.shift(); }
|
||||||
|
timeNow = new Date().getTime();
|
||||||
|
storedWorkers[storedWorkers.length] = [timeNow, data.getnavbardata.data.raw.pool.workers];
|
||||||
|
storedHashrate[storedHashrate.length] = [timeNow, data.getnavbardata.data.raw.pool.hashrate];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fetch initial data via Ajax, starts proper gauges to display
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
async: false, // Run all others requests after this only if it's done
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (data) { initGauges(data); }
|
||||||
|
});
|
||||||
|
|
||||||
|
// Our worker process to keep gauges and graph updated
|
||||||
|
(function worker() {
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(data) {
|
||||||
|
refreshInformation(data);
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
setTimeout(worker, {/literal}{($GLOBAL.config.statistics_ajax_refresh_interval * 1000)|default:"1000"}{literal})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
{/literal}
|
||||||
|
</script>
|
||||||
Loading…
Reference in New Issue
Block a user