diff --git a/html/includes/reports/alert-log.inc.php b/html/includes/reports/alert-log.inc.php index 0db4ca80fe..b44023620b 100644 --- a/html/includes/reports/alert-log.inc.php +++ b/html/includes/reports/alert-log.inc.php @@ -14,9 +14,9 @@ $pdf->AddPage('L'); } if ($_SESSION['userlevel'] >= '5') { - $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id WHERE $where ORDER BY `time_logged` DESC"; + $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id WHERE $where ORDER BY `humandate` DESC"; } else { - $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id RIGHT JOIN devices_perms AS P ON E.device_id = P.device_id WHERE $where AND P.user_id = ? ORDER BY `time_logged` DESC"; + $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id RIGHT JOIN devices_perms AS P ON E.device_id = P.device_id WHERE $where AND P.user_id = ? ORDER BY `humandate` DESC"; $param[] = $_SESSION['user_id']; } diff --git a/html/includes/table/alertlog.inc.php b/html/includes/table/alertlog.inc.php new file mode 100644 index 0000000000..46e12efa77 --- /dev/null +++ b/html/includes/table/alertlog.inc.php @@ -0,0 +1,76 @@ += '5') { + $sql = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id WHERE $where"; +} else { + $sql = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id RIGHT JOIN devices_perms AS P ON E.device_id = P.device_id WHERE $where AND P.user_id = ?"; + $param[] = $_SESSION['user_id']; +} + +if (isset($searchPhrase) && !empty($searchPhrase)) { + $sql .= " AND (`D`.`hostname` LIKE '%$searchPhrase%' OR `E`.`time_logged` LIKE '%$searchPhrase%' OR `name` LIKE '%$searchPhrase%')"; +} + +$count_sql = "SELECT COUNT(`E`.`id`) $sql"; +$total = dbFetchCell($count_sql,$param); + +if (!isset($sort) || empty($sort)) { + $sort = 'time_logged DESC'; +} + +$sql .= " ORDER BY $sort"; + +if (isset($current)) { + $limit_low = ($current * $rowCount) - ($rowCount); + $limit_high = $rowCount; +} + +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"; + +foreach (dbFetchRows($sql,$param) as $alertlog) { + $dev = device_by_id_cache($alertlog['device_id']); + $alert_state = $alertlog['state']; + if ($alert_state=='0') { + $glyph_icon = 'ok'; + $glyph_color = 'green'; + $text = 'Ok'; + } + elseif ($alert_state=='1') { + $glyph_icon = 'remove'; + $glyph_color = 'red'; + $text = 'Alert'; + } + elseif ($alert_state=='2') { + $glyph_icon = 'info-sign'; + $glyph_color = 'lightgrey'; + $text = 'Ack'; + } + elseif ($alert_state=='3') { + $glyph_icon = 'arrow-down'; + $glyph_color = 'orange'; + $text = 'Worse'; + } + elseif ($alert_state=='4') { + $glyph_icon = 'arrow-up'; + $glyph_color = 'khaki'; + $text = 'Better'; + } + $response[] = array('humandate'=>$alertlog['humandate'], + 'hostname'=>generate_device_link($dev, shorthost($dev['hostname'])), + 'alert'=>htmlspecialchars($alertlog['alert']), + 'status'=>" $text"); +} + +$output = array('current'=>$current,'rowCount'=>$rowCount,'rows'=>$response,'total'=>$total); +echo _json_encode($output); diff --git a/html/pages/alert-log.inc.php b/html/pages/alert-log.inc.php index 2d18eb7138..6dcb128bc5 100644 --- a/html/pages/alert-log.inc.php +++ b/html/pages/alert-log.inc.php @@ -1,116 +1,78 @@ 0) { - $numresults = $_POST['results_amount']; -} else { - $numresults = 250; -} -if (isset($_POST['page_number']) && $_POST['page_number'] > 0) { - $page_number = $_POST['page_number']; -} else { - $page_number = 1; -} -$start = ($page_number - 1) * $numresults; + $pagetitle[] = "Alert Log"; print_optionbar_start(); -$where = "1"; -if (is_numeric($_POST['device'])) -{ - $where .= ' AND E.device_id = ?'; - $param[] = $_POST['device']; -} -if ($_POST['string']) -{ - $where .= " AND R.rule LIKE ?"; - $param[] = "%".$_POST['string']."%"; -} ?>
-
- -
- ".$hostname.""); } ?>
- + +
= '5') -{ - $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id WHERE $where ORDER BY `time_logged` DESC"; -} else { - $query = " FROM `alert_log` AS E LEFT JOIN devices AS D ON E.device_id=D.device_id RIGHT JOIN alert_rules AS R ON E.rule_id=R.id RIGHT JOIN devices_perms AS P ON E.device_id = P.device_id WHERE $where AND P.user_id = ? ORDER BY `time_logged` DESC"; - - $param[] = $_SESSION['user_id']; -} -$count_query = "SELECT COUNT(time_logged) $query"; -$count = dbFetchCell($count_query,$param); -$full_query = "SELECT D.device_id,name,state,time_logged,DATE_FORMAT(time_logged, '%D %b %Y %T') as humandate $query LIMIT $start,$numresults"; echo('
- Alert Log entries

- Export to pdf Export to pdf + Alert Log entries
-
'. generate_pagination($count,$numresults,$page_number) .'
-
- +
+
-
- '); -foreach (dbFetchRows($full_query, $param) as $alert_entry) -{ - include("includes/print-alerts.inc.php"); -} -if ($count % $numresults > 0) { - echo(' - - '); -} -echo('
'. generate_pagination($count,$numresults,$page_number) .'
- - -'); + '); ?> -