# |
Name |
Rule |
Severity |
Status |
Extra |
Enabled |
Action |
';
echo '';
if (LegacyAuth::user()->hasGlobalAdmin()) {
echo '';
echo ' - OR - ';
echo '';
}
echo ' |
| ';
$query = 'FROM alert_rules';
$where = '';
$param = [];
if (isset($device['device_id']) && $device['device_id'] > 0) {
$query .= ' LEFT JOIN alert_device_map ON alert_rules.id=alert_device_map.rule_id';
$where = 'WHERE (device_id=? OR device_id IS NULL)';
$param[] = $device['device_id'];
}
$count = dbFetchCell("SELECT COUNT(*) $query $where", $param);
if (isset($_POST['page_number']) && $_POST['page_number'] > 0 && $_POST['page_number'] <= $count) {
$page_number = $_POST['page_number'];
} else {
$page_number = 1;
}
$start = (($page_number - 1) * $results);
$full_query = "SELECT alert_rules.* $query $where ORDER BY alert_rules.id ASC LIMIT $start,$results";
foreach (dbFetchRows($full_query, $param) as $rule) {
$sub = dbFetchRows('SELECT * FROM alerts WHERE rule_id = ? ORDER BY `state` DESC, `id` DESC LIMIT 1', array($rule['id']));
$ico = 'check';
$col = 'success';
$extra = '';
if (sizeof($sub) == 1) {
$sub = $sub[0];
if ((int) $sub['state'] === 0) {
$ico = 'check';
$col = 'success';
} elseif ((int) $sub['state'] === 1 || (int) $sub['state'] === 2) {
$ico = 'exclamation';
$col = 'danger';
$extra = 'danger';
}
}
$alert_checked = '';
$orig_ico = $ico;
$orig_col = $col;
$orig_class = $extra;
if ($rule['disabled']) {
$ico = 'pause';
$col = '';
$extra = 'active';
} else {
$alert_checked = 'checked';
}
$rule_extra = json_decode($rule['extra'], true);
$device_count = dbFetchCell('SELECT COUNT(*) FROM alert_device_map WHERE rule_id=?', [$rule['id']]);
$group_count = dbFetchCell('SELECT COUNT(*) FROM alert_group_map WHERE rule_id=?', [$rule['id']]);
if ($device_count && $group_count) {
$popover_msg = 'Restricted rule';
$icon_indicator = 'fa fa-connectdevelop fa-fw text-primary';
} elseif ($device_count) {
$popover_msg = 'Device restricted rule';
$icon_indicator = 'fa fa-server fa-fw text-primary';
} elseif ($group_count) {
$popover_msg = 'Group restricted rule';
$icon_indicator = 'fa fa-th fa-fw text-primary';
} else {
$popover_msg = 'Global alert rule';
$icon_indicator = 'fa fa-globe fa-fw text-success';
}
echo "\r\n";
}//end foreach
if (($count % $results) > 0) {
echo '
'.generate_pagination($count, $results, $page_number).' |
';
}
echo '