Show details of alert in the alert-logs

Move alert-detail generation to own function
This commit is contained in:
f0o
2015-05-17 11:44:33 +00:00
parent 83a3335c6d
commit 7aab831feb
4 changed files with 62 additions and 26 deletions

View File

@@ -39,10 +39,12 @@ if ($rowCount != -1) {
$sql .= " LIMIT $limit_low,$limit_high";
}
$sql = "SELECT D.device_id,name AS alert,state,time_logged,DATE_FORMAT(time_logged, '%D %b %Y %T') as humandate $sql";
$sql = "SELECT D.device_id,name AS alert,state,time_logged,DATE_FORMAT(time_logged, '%D %b %Y %T') as humandate,details $sql";
$rulei = 0;
foreach (dbFetchRows($sql,$param) as $alertlog) {
$dev = device_by_id_cache($alertlog['device_id']);
$fault_detail = alert_details($alertlog['details']);
$alert_state = $alertlog['state'];
if ($alert_state=='0') {
$glyph_icon = 'ok';
@@ -69,8 +71,10 @@ foreach (dbFetchRows($sql,$param) as $alertlog) {
$glyph_color = 'khaki';
$text = 'Better';
}
$response[] = array('time_logged'=>$alertlog['humandate'],
'hostname'=>generate_device_link($dev, shorthost($dev['hostname'])),
$response[] = array('id'=>$rulei++,
'time_logged'=>$alertlog['humandate'],
'details'=>'<a class="glyphicon glyphicon-plus incident-toggle" style="display:none" data-toggle="collapse" data-target="#incident'.($rulei).'" data-parent="#alerts"></a>',
'hostname'=>'<div class="incident">'.generate_device_link($dev, shorthost($dev['hostname'])).'<div id="incident'.($rulei).'" class="collapse">'.$fault_detail.'</div></div>',
'alert'=>htmlspecialchars($alertlog['alert']),
'status'=>"<b><span class='glyphicon glyphicon-".$glyph_icon."' style='color:".$glyph_color."'></span> $text</b>");
}

View File

@@ -39,29 +39,7 @@ $rulei = 0;
$format = $_POST['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", array($alert['rule_id'],$alert['device_id']));
$log_detail = json_decode(gzuncompress($log),true);
$fault_detail = '';
foreach ( $log_detail['rule'] as $o=>$tmp_alerts ) {
$fallback = true;
$fault_detail .= "#".($o+1).":&nbsp;";
if( $tmp_alerts['bill_id'] ) {
$fault_detail .= '<a href="'.generate_bill_url($tmp_alerts).'">'.$tmp_alerts['bill_name'].'</a>;&nbsp;';
$fallback = false;
}
if( $tmp_alerts['port_id'] ) {
$fault_detail .= generate_port_link($tmp_alerts).';&nbsp;';
$fallback = false;
}
if( $fallback === true ) {
foreach ($tmp_alerts as $k=>$v) {
if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc') || stristr($k,'msg')) && substr_count($k,'_') <= 1) {
$fault_detail .= "$k => '$v', ";
}
}
$fault_detail = rtrim($fault_detail,", ");
}
$fault_detail .= "<br>";
}
$fault_detail = alert_details($log);
$ico = "ok";
$col = "green";