Show Detail by default Option on Alert Widget (#13309)

* Show Detail by default on Alert Widget

* .

* change to row count length limitation

* .

* .
This commit is contained in:
SourceDoctor
2021-10-03 01:12:18 +02:00
committed by GitHub
parent 9ef94323f5
commit 8e1b9e2989
5 changed files with 21 additions and 4 deletions

View File

@@ -42,6 +42,7 @@ class AlertsController extends WidgetController
'location' => 1,
'sort' => 1,
'hidenavigation' => 0,
'uncollapse_key_count' => 1,
];
public function getView(Request $request)

View File

@@ -753,8 +753,10 @@ function alert_details($details)
$details = json_decode(gzuncompress($details), true);
}
$fault_detail = '';
$max_row_length = 0;
$all_fault_detail = '';
foreach ($details['rule'] as $o => $tmp_alerts) {
$fault_detail = '';
$fallback = true;
$fault_detail .= '#' . ($o + 1) . ': ';
if ($tmp_alerts['bill_id']) {
@@ -861,9 +863,13 @@ function alert_details($details)
}
$fault_detail .= '<br>';
$max_row_length = strlen(strip_tags($fault_detail)) > $max_row_length ? strlen(strip_tags($fault_detail)) : $max_row_length;
$all_fault_detail .= $fault_detail;
}//end foreach
return $fault_detail;
return [$all_fault_detail, $max_row_length];
}//end alert_details()
function dynamic_override_config($type, $name, $device)

View File

@@ -110,7 +110,7 @@ $format = $vars['format'];
foreach (dbFetchRows($sql, $param) as $alert) {
$log = dbFetchCell('SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1', [$alert['rule_id'], $alert['device_id']]);
$alert_log_id = dbFetchCell('SELECT id FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1', [$alert['rule_id'], $alert['device_id']]);
$fault_detail = alert_details($log);
[$fault_detail, $max_row_length] = alert_details($log);
$info = json_decode($alert['info'], true);
$alert_to_ack = '<button type="button" class="btn btn-danger command-ack-alert fa fa-eye" aria-hidden="true" title="Mark as acknowledged" data-target="ack-alert" data-state="' . $alert['state'] . '" data-alert_id="' . $alert['id'] . '" data-alert_state="' . $alert['state'] . '" name="ack-alert"></button>';
@@ -135,7 +135,13 @@ foreach (dbFetchRows($sql, $param) as $alert) {
}
}
$hostname = '<div class="incident">' . generate_device_link($alert, format_hostname($alert, shorthost($alert['hostname']))) . '<div id="incident' . ($alert['id']) . '" class="collapse">' . $fault_detail . '</div></div>';
$hostname = '<div class="incident">' . generate_device_link($alert, format_hostname($alert, shorthost($alert['hostname']))) . '<div id="incident' . ($alert['id']) . '"';
if (is_numeric($vars['uncollapse_key_count'])) {
$hostname .= $max_row_length < (int) $vars['uncollapse_key_count'] ? '' : ' class="collapse"';
} else {
$hostname .= ' class="collapse"';
}
$hostname .= '>' . $fault_detail . '</div></div>';
$severity = $alert['severity'];
$severity_ico = '<span class="alert-status label-' . alert_layout($severity)['background_color'] . '">&nbsp;</span>';

View File

@@ -27,6 +27,7 @@
group: '{{ $device_group }}',
proc: '{{ $proc }}',
sort: '{{ $sort }}',
uncollapse_key_count: '{{ $uncollapse_key_count }}',
device_id: '{{ $device }}'
}),
responseHandler: response => {

View File

@@ -60,6 +60,9 @@
<option value="0" @if($location == 0) selected @endif>@lang('hide')</option>
</select>
</div>
<div class="form-group">
<label for="uncollapse_key_count-{{ $id }}" class="control-label">@lang('Automatic uncollapse Alert if length below characters'):</label>
<input class="form-control" type="uncollapse_key_count" min="1" step="1" name="uncollapse_key_count" id="uncollapse_key_count-{{ $id }}" value="{{ $uncollapse_key_count }}">
<div class="form-group">
<label for="sort-{{ $id }}" class="control-label">@lang('Sort alerts by'):</label>
<select class="form-control" name="sort" id="sort-{{ $id }}">