feature: Added feature to filter delayed alerts on widget (#8704)

* Added feature to filter delayed alerts on widget

* fix build job error

* change filter name to fired
This commit is contained in:
Roger
2018-05-16 05:54:02 +10:00
committed by Neil Lathwood
parent 52544468b7
commit e22642c73f
2 changed files with 27 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ $alert_severities = array(
//if( defined('SHOW_SETTINGS') || empty($widget_settings) ) { //if( defined('SHOW_SETTINGS') || empty($widget_settings) ) {
if (defined('SHOW_SETTINGS')) { if (defined('SHOW_SETTINGS')) {
$current_acknowledged = isset($widget_settings['acknowledged']) ? $widget_settings['acknowledged'] : ''; $current_acknowledged = isset($widget_settings['acknowledged']) ? $widget_settings['acknowledged'] : '';
$current_fired = isset($widget_settings['fired']) ? $widget_settings['fired'] : '';
$current_severity = isset($widget_settings['severity']) ? $widget_settings['severity'] : ''; $current_severity = isset($widget_settings['severity']) ? $widget_settings['severity'] : '';
$current_state = isset($widget_settings['state']) ? $widget_settings['state'] : ''; $current_state = isset($widget_settings['state']) ? $widget_settings['state'] : '';
$current_group = isset($widget_settings['group']) ? $widget_settings['group'] : ''; $current_group = isset($widget_settings['group']) ? $widget_settings['group'] : '';
@@ -61,6 +62,20 @@ if (defined('SHOW_SETTINGS')) {
</select> </select>
</div> </div>
</div> </div>
<div class="form-group row">
<div class="col-sm-4">
<label for="fired" class="control-label">Show only Fired alerts: </label>
</div>
<div class="col-sm-8">
<select class="form-control" name="fired">';
$common_output[] = '<option value=""' . ($current_fired == '' ? ' selected' : ' ') . '>not filtered</option>';
$common_output[] = '<option value="1"' . ($current_fired == '1' ? ' selected' : ' ') . '>show only Fired alerts</option>';
$common_output[] = '
</select>
</div>
</div>
<div class="form-group row"> <div class="form-group row">
<div class="col-sm-4"> <div class="col-sm-4">
<label for="min_severity" class="control-label">Displayed severity:</label> <label for="min_severity" class="control-label">Displayed severity:</label>
@@ -136,6 +151,7 @@ if (defined('SHOW_SETTINGS')) {
} else { } else {
$device_id = $device['device_id']; $device_id = $device['device_id'];
$acknowledged = $widget_settings['acknowledged']; $acknowledged = $widget_settings['acknowledged'];
$fired = $widget_settings['fired'];
$state = $widget_settings['state']; $state = $widget_settings['state'];
$min_severity = $widget_settings['min_severity']; $min_severity = $widget_settings['min_severity'];
$group = $widget_settings['group']; $group = $widget_settings['group'];
@@ -159,6 +175,10 @@ if (defined('SHOW_SETTINGS')) {
} }
} }
if (is_numeric($fired)) {
$title = "Fired $title";
}
if (is_numeric($group)) { if (is_numeric($group)) {
$group_row = dbFetchRow("SELECT * FROM device_groups WHERE id = ?", array($group)); $group_row = dbFetchRow("SELECT * FROM device_groups WHERE id = ?", array($group));
if ($group_row) { if ($group_row) {
@@ -217,6 +237,9 @@ var alerts_grid = $("#alerts_' . $unique_id . '").bootgrid({
if (is_numeric($acknowledged)) { if (is_numeric($acknowledged)) {
$common_output[] = "acknowledged: '$acknowledged',\n"; $common_output[] = "acknowledged: '$acknowledged',\n";
} }
if (is_numeric($fired)) {
$common_output[] = "fired: '$fired',\n";
}
if (isset($state) && $state != '') { if (isset($state) && $state != '') {
$common_output[] = "state: '$state',\n"; $common_output[] = "state: '$state',\n";
} }

View File

@@ -49,6 +49,10 @@ if (is_numeric($vars['acknowledged'])) {
$where .= " AND `alerts`.`state`" . ($vars['acknowledged'] ? "=" : "!=") . $alert_states['acknowledged']; $where .= " AND `alerts`.`state`" . ($vars['acknowledged'] ? "=" : "!=") . $alert_states['acknowledged'];
} }
if (is_numeric($vars['fired'])) {
$where .= " AND `alerts`.`alerted`=" . $alert_states['alerted'];
}
if (is_numeric($vars['state'])) { if (is_numeric($vars['state'])) {
$where .= " AND `alerts`.`state`=" . $vars['state']; $where .= " AND `alerts`.`state`=" . $vars['state'];
if ($vars['state'] == $alert_states['recovered']) { if ($vars['state'] == $alert_states['recovered']) {