0,
'alerted' => 1,
'acknowledged' => 2,
'worse' => 3,
'better' => 4,
];
$alert_severities = [
// alert_rules.status is enum('ok','warning','critical')
'ok' => 1,
'warning' => 2,
'critical' => 3,
'ok only' => 4,
'warning only' => 5,
'critical only' => 6,
];
if (Auth::user()->hasGlobalAdmin()) {
$admin_verbose_details = '
Details | ';
}
//if( defined('SHOW_SETTINGS') || empty($widget_settings) ) {
if (defined('SHOW_SETTINGS')) {
$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_state = isset($widget_settings['state']) ? $widget_settings['state'] : '';
$current_group = isset($widget_settings['group']) ? $widget_settings['group'] : '';
$current_proc = isset($widget_settings['proc']) ? $widget_settings['proc'] : '';
$current_sorting = isset($widget_settings['sort']) ? $widget_settings['sort'] : '';
$common_output[] = '
';
} else {
$device_id = $device['device_id'];
$acknowledged = $widget_settings['acknowledged'];
$fired = $widget_settings['fired'];
$state = $widget_settings['state'];
$min_severity = $widget_settings['min_severity'];
$group = $widget_settings['group'];
$proc = $widget_settings['proc'];
$sort = $widget_settings['sort'];
$title = 'Alerts';
// state can be 0 or '', be sure they are treated differently
if (is_numeric($state)) {
$state_name = array_search($state, $alert_states);
$title = "$title ($state_name)";
} elseif ($state) {
$title = "$title ($state)";
}
if (is_numeric($acknowledged)) {
if ($acknowledged == '0') {
$title = "Unacknowledged $title";
} elseif ($acknowledged == '1') {
$title = "Acknowledged $title";
}
}
if (is_numeric($fired)) {
$title = "Fired $title";
}
if (is_numeric($group)) {
$group_row = dbFetchRow('SELECT * FROM device_groups WHERE id = ?', [$group]);
if ($group_row) {
$title = "$title for " . $group_row['name'];
}
}
if ($min_severity) {
$sev_name = $min_severity;
if (is_numeric($min_severity)) {
$sev_name = array_search($min_severity, $alert_severities);
$title = "$title " . ($min_severity > 3 ? '' : '>') . "=$sev_name";
}
}
if (! empty($sort)) {
$title = "$title " . 'sorted by severity (higher first)';
}
$widget_settings['title'] = $title;
$group = $widget_settings['group'];
$common_output[] = '
|
Timestamp |
Rule |
|
Hostname |
Location |
ACK |
Notes |
' . $admin_verbose_details . '';
if ($proc == '1') {
$common_output[] = 'URL | ';
}
$common_output[] = '
';
}