false, 'count' => -1, 'delay' => 300, 'invert' => false, 'interval' => 300, ); foreach ($default_rules as $add_rule) { $extra = $default_extra; if (isset($add_rule['extra'])) { $extra = array_replace($extra, json_decode($add_rule['extra'], true)); } $qb = QueryBuilderParser::fromOld($add_rule['rule']); $insert = array( 'rule' => '', 'builder' => json_encode($qb), 'query' => $qb->toSql(), 'severity' => 'critical', 'extra' => json_encode($extra), 'disabled' => 0, 'name' => $add_rule['name'] ); dbInsert($insert, 'alert_rules'); } unset($qb); } require_once 'includes/modal/new_alert_rule.inc.php'; require_once 'includes/modal/delete_alert_rule.inc.php'; require_once 'includes/modal/alert_rule_collection.inc.php'; ?>
0) { $results = $_POST['results']; } else { $results = 50; } 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 ""; echo ""; echo ''; echo "'; echo ''; echo ""; } echo ''; echo ''; echo ''; echo "\r\n"; }//end foreach if (($count % $results) > 0) { echo ' '; } echo '
# Name Rule Severity Status Extra Enabled Action
'; if (LegacyAuth::user()->hasGlobalAdmin()) { echo ''; echo ' - OR - '; echo ''; } echo '
#".((int) $rule['id'])."
'.$rule['name'].'"; if ($rule_extra['invert'] === true) { echo 'Inverted '; } if (empty($rule['builder'])) { $rule_display = $rule['rule']; } elseif ($rule_extra['options']['override_query'] === 'on') { $rule_display = 'Custom SQL Query'; } else { $rule_display = QueryBuilderParser::fromJson($rule['builder'])->toSql(false); } echo ''.htmlentities($rule_display).''.$rule['severity'].' "; if ($rule_extra['mute'] === true) { echo "Max: '.$rule_extra['count'].'
Delay: '.$rule_extra['delay'].'
Interval: '.$rule_extra['interval'].'
'; if (LegacyAuth::user()->hasGlobalAdmin()) { echo ""; } echo ''; if (LegacyAuth::user()->hasGlobalAdmin()) { echo "
"; echo " "; echo ""; } echo '
'.generate_pagination($count, $results, $page_number).'
'; if ($count < 1) { if (LegacyAuth::user()->hasGlobalAdmin()) { echo '

'; } } ?>