diff --git a/html/ajax_search.php b/html/ajax_search.php index d6aa5fe2c6..2000e3182e 100755 --- a/html/ajax_search.php +++ b/html/ajax_search.php @@ -31,9 +31,9 @@ if (isset($_REQUEST['search'])) if( $_REQUEST['type'] == 'group' ) { include_once('../includes/device-groups.inc.php'); - foreach( dbFetchRows("SELECT name FROM device_groups WHERE name LIKE '%".$search."%'") as $group ) { + foreach( dbFetchRows("SELECT id,name FROM device_groups WHERE name LIKE '%".$search."%'") as $group ) { if( $_REQUEST['map'] ) { - $results[] = array('name'=>'g:'.$group['name']); + $results[] = array('name'=>'g:'.$group['name'],'group_id'=>$group['id']); } else { $results[] = array('name'=>$group['name']); } @@ -74,6 +74,7 @@ if (isset($_REQUEST['search'])) } $num_ports = dbFetchCell("SELECT COUNT(*) FROM `ports` WHERE device_id = ?", array($result['device_id'])); $device[]=array('name'=>$name, + 'device_id'=>$result['device_id'], 'url'=> generate_device_url($result), 'colours'=>$highlight_colour, 'device_ports'=>$num_ports, diff --git a/html/includes/table/alert-schedule.inc.php b/html/includes/table/alert-schedule.inc.php new file mode 100644 index 0000000000..dcea1023af --- /dev/null +++ b/html/includes/table/alert-schedule.inc.php @@ -0,0 +1,64 @@ + + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$where = 1; + +if ($_SESSION['userlevel'] >= '5') { + $sql = " FROM `alert_schedule` AS S LEFT JOIN `devices` AS `D` ON `S`.`device_id`=`D`.`device_id` WHERE $where"; +} else { + $sql = " FROM `alert_schedule` AS S, devices_perms AS P LEFT JOIN `devices` AS `D` WHERE $where AND `S`.`device_id` = `P`.`device_id` AND `P`.`user_id` = ?"; + $param[] = $_SESSION['user_id']; +} + +if (isset($searchPhrase) && !empty($searchPhrase)) { + $sql .= " AND (`D`.`hostname` LIKE '%$searchPhrase%' OR `S`.`start` LIKE '%$searchPhrase%' OR `S`.`end` LIKE '%$searchPhrase%')"; +} + +$count_sql = "SELECT COUNT(`id`) $sql"; +$total = dbFetchCell($count_sql,$param); +if (empty($total)) { + $total = 0; +} + +if (!isset($sort) || empty($sort)) { + $sort = '`D`.`hostname` ASC '; +} + +$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 DATE_FORMAT(`S`.`start`, '%D %b %Y %T') AS `start`, DATE_FORMAT(`S`.`end`, '%D %b %Y %T') AS `end`, `D`.`hostname`, `S`.`device_id` $sql"; + +foreach (dbFetchRows($sql,$param) as $schedule) { + if ($schedule['device_id'] == '-1') { + $host_link = 'All devices'; + } else { + $dev = device_by_id_cache($schedule['device_id']); + $host_link = generate_device_link($dev, shorthost($dev['hostname'])); + } + $response[] = array('hostname'=>$host_link, + 'start'=>$schedule['start'], + 'end'=>$schedule['end']); +} + +$output = array('current'=>$current,'rowCount'=>$rowCount,'rows'=>$response,'total'=>$total); +echo _json_encode($output); diff --git a/html/pages/alert-schedule.inc.php b/html/pages/alert-schedule.inc.php new file mode 100644 index 0000000000..23d44463ed --- /dev/null +++ b/html/pages/alert-schedule.inc.php @@ -0,0 +1,115 @@ + + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$pagetitle[] = "Alert Schedule"; + +?> + + + + +
+
+ + + + + + + + +
HostnameStartEnd
+
+
+