Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 36 additions & 34 deletions cronjobs/notifications.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,47 +29,49 @@
$monitoring->endCronjob($cron_name, 'E0009', 0, true, false);
}

$log->logDebug(" IDLE Worker Notifications ...");
// Find all IDLE workers
$aWorkers = $worker->getAllIdleWorkers();
if (empty($aWorkers)) {
$log->logDebug(" no idle workers found");
} else {
$log->logInfo(" found " . count($aWorkers) . " IDLE workers");
foreach ($aWorkers as $aWorker) {
$aData = $aWorker;
$aData['username'] = $user->getUserName($aWorker['account_id']);
$aData['subject'] = 'IDLE Worker : ' . $aWorker['username'];
$aData['worker'] = $aWorker['username'];
$aData['email'] = $user->getUserEmail($aData['username']);
$log->logDebug(" " . $aWorker['username'] . "...");
if (!$notification->sendNotification($aWorker['account_id'], 'idle_worker', $aData))
$log->logDebug(" Failed sending notifications: " . $notification->getCronError());
if ($setting->getValue('notifications_disable_idle_worker') != 1) {
$log->logDebug(" IDLE Worker Notifications ...");
// Find all IDLE workers
$aWorkers = $worker->getAllIdleWorkers();
if (empty($aWorkers)) {
$log->logDebug(" no idle workers found");
} else {
$log->logInfo(" found " . count($aWorkers) . " IDLE workers");
foreach ($aWorkers as $aWorker) {
$aData = $aWorker;
$aData['username'] = $user->getUserName($aWorker['account_id']);
$aData['subject'] = 'IDLE Worker : ' . $aWorker['username'];
$aData['worker'] = $aWorker['username'];
$aData['email'] = $user->getUserEmail($aData['username']);
$log->logDebug(" " . $aWorker['username'] . "...");
if (!$notification->sendNotification($aWorker['account_id'], 'idle_worker', $aData))
$log->logDebug(" Failed sending notifications: " . $notification->getCronError());
}
}
}


$log->logDebug(" Reset IDLE Worker Notifications ...");
// We notified, lets check which recovered
$aNotifications = $notification->getAllActive('idle_worker');
if (!empty($aNotifications)) {
$log->logInfo(" found " . count($aNotifications) . " active notification(s)");
foreach ($aNotifications as $aNotification) {
$aData = json_decode($aNotification['data'], true);
$aWorker = $worker->getWorker($aData['id']);
$log->logDebug(" " . $aWorker['username'] . " ...");
if ($aWorker['hashrate'] > 0) {
if ($notification->setInactive($aNotification['id'])) {
$log->logDebug(" updated #" . $aNotification['id'] . " for " . $aWorker['username'] . " as inactive");
$log->logDebug(" Reset IDLE Worker Notifications ...");
// We notified, lets check which recovered
$aNotifications = $notification->getAllActive('idle_worker');
if (!empty($aNotifications)) {
$log->logInfo(" found " . count($aNotifications) . " active notification(s)");
foreach ($aNotifications as $aNotification) {
$aData = json_decode($aNotification['data'], true);
$aWorker = $worker->getWorker($aData['id']);
$log->logDebug(" " . $aWorker['username'] . " ...");
if ($aWorker['hashrate'] > 0) {
if ($notification->setInactive($aNotification['id'])) {
$log->logDebug(" updated #" . $aNotification['id'] . " for " . $aWorker['username'] . " as inactive");
} else {
$log->logError(" failed to update #" . $aNotification['id'] . " for " . $aWorker['username']);
}
} else {
$log->logError(" failed to update #" . $aNotification['id'] . " for " . $aWorker['username']);
$log->logDebug(" still inactive");
}
} else {
$log->logDebug(" still inactive");
}
} else {
$log->logDebug(" no active IDLE worker notifications");
}
} else {
$log->logDebug(" no active IDLE worker notifications");
}

require_once('cron_end.inc.php');
Expand Down
7 changes: 7 additions & 0 deletions public/include/config/admin_settings.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -425,3 +425,10 @@
'name' => 'notifications_disable_block', 'value' => $setting->getValue('notifications_disable_block'),
'tooltip' => 'Enable/Disable block notifications globally. Will remove the user option too.'
);
$aSettings['notifications'][] = array(
'display' => 'Disable IDLE Worker Notifications', 'type' => 'select',
'options' => array( 0 => 'No', 1 => 'Yes'),
'default' => 0,
'name' => 'notifications_disable_idle_worker', 'value' => $setting->getValue('notifications_disable_idle_worker'),
'tooltip' => 'Enable/Disable IDLE worker notifications globally. Will remove the user option too.'
);
1 change: 1 addition & 0 deletions public/include/pages/account/notifications.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

// Fetch global settings
$smarty->assign('DISABLE_BLOCKNOTIFICATIONS', $setting->getValue('notifications_disable_block'));
$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));

// Fetch user notification settings
$aSettings = $notification->getNotificationSettings($_SESSION['USERDATA']['id']);
Expand Down
1 change: 1 addition & 0 deletions public/include/pages/account/workers.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
break;
}

$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));
$aWorkers = $worker->getWorkers($_SESSION['USERDATA']['id']);
if (!$aWorkers) $_SESSION['POPUP'][] = array('CONTENT' => 'You have no workers configured', 'TYPE' => 'errormsg');

Expand Down
1 change: 1 addition & 0 deletions public/include/pages/admin/poolworkers.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

$aWorkers = $worker->getAllWorkers($iLimit, $interval, $start);

$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));
$smarty->assign('LIMIT', $iLimit);
$smarty->assign('WORKERS', $aWorkers);
$smarty->assign('CONTENT', 'default.tpl');
Expand Down
2 changes: 2 additions & 0 deletions public/templates/mpos/account/notifications/default.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<th align="left">Type</th>
<th align="center">Active</th>
</tr>
{if $DISABLE_IDLEWORKERNOTIFICATIONS|default:"" != 1}
<tr>
<td align="left">IDLE Worker</td>
<td>
Expand All @@ -25,6 +26,7 @@
</span>
</td>
</tr>
{/if}
{if $DISABLE_BLOCKNOTIFICATIONS|default:"" != 1}
<tr>
<td align="left">New Blocks</td>
Expand Down
4 changes: 2 additions & 2 deletions public/templates/mpos/account/workers/default.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<th align="left">Worker Login</th>
<th align="left">Worker Password</th>
<th align="center">Active</th>
{if $GLOBAL.config.disable_notifications != 1}<th align="center">Monitor</th>{/if}
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}<th align="center">Monitor</th>{/if}
<th align="right">Khash/s</th>
<th align="right">Difficulty</th>
<th align="center" style="padding-right: 25px;">Action</th>
Expand All @@ -51,7 +51,7 @@
<td align="left"{if $WORKERS[worker].hashrate > 0} style="color: orange"{/if}>{$username.0|escape}.<input name="data[{$WORKERS[worker].id}][username]" value="{$username.1|escape}" size="10" required/></td>
<td align="left"><input type="text" name="data[{$WORKERS[worker].id}][password]" value="{$WORKERS[worker].password|escape}" size="10" required></td>
<td align="center"><i class="icon-{if $WORKERS[worker].hashrate > 0}ok{else}cancel{/if}"></i></td>
{if $GLOBAL.config.disable_notifications != 1}
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}
<td>
<span class="toggle">
<label for="data[{$WORKERS[worker].id}][monitor]">
Expand Down
4 changes: 2 additions & 2 deletions public/templates/mpos/admin/poolworkers/default.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
<th align="left">Worker Name</th>
<th align="left">Password</th>
<th align="center">Active</th>
{if $GLOBAL.config.disable_notifications != 1}<th align="center">Monitor</th>{/if}
<th align="right">Khash/s</th>
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}<th align="center">Monitor</th>{/if}
<th align="right">Difficulty</th>
<th align="right" style="padding-right: 25px;">Avg Difficulty</th>
</tr>
Expand All @@ -38,7 +38,7 @@
<td align="left">{$WORKERS[worker].username|escape}</td>
<td align="left">{$WORKERS[worker].password|escape}</td>
<td align="center"><i class="icon-{if $WORKERS[worker].hashrate > 0}ok{else}cancel{/if}"></i></td>
{if $GLOBAL.config.disable_notifications != 1}
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}
<td align="center"><i class="icon-{if $WORKERS[worker].monitor}ok{else}cancel{/if}"></i></td>
{/if}
<td align="right">{$WORKERS[worker].hashrate|number_format|default:"0"}</td>
Expand Down