diff --git a/html/forms/schedule-maintenance.inc.php b/html/forms/schedule-maintenance.inc.php index dcbcad4fc..4699653c6 100644 --- a/html/forms/schedule-maintenance.inc.php +++ b/html/forms/schedule-maintenance.inc.php @@ -22,7 +22,12 @@ if ($sub_type == 'new-maintenance') { // Defaults $status = 'error'; + $update = 0; + $schedule_id = mres($_POST['schedule_id']); + if ($schedule_id > 0) { + $update = 1; + } $title = mres($_POST['title']); $notes = mres($_POST['notes']); $start = mres($_POST['start']); @@ -43,11 +48,21 @@ if ($sub_type == 'new-maintenance') { } if (empty($message)) { - $schedule_id = dbInsert(array('start'=>$start,'end'=>$end,'title'=>$title,'notes'=>$notes),'alert_schedule'); + if (empty($schedule_id)) { + $schedule_id = dbInsert(array('start'=>$start,'end'=>$end,'title'=>$title,'notes'=>$notes),'alert_schedule'); + } else { + dbUpdate(array('start'=>$start,'end'=>$end,'title'=>$title,'notes'=>$notes),'alert_schedule','`schedule_id`=?',array($schedule_id)); + } if ($schedule_id > 0) { $items = array(); $fail = 0; + + if ($update == 1) { + dbDelete('alert_schedule_items', '`schedule_id`=?', array($schedule_id)); + } + foreach( $_POST['maps'] as $target ) { + $target = target_to_id($target); $item = dbInsert(array('schedule_id'=>$schedule_id,'target'=>$target),'alert_schedule_items'); if ($item > 0) { array_push($items,$item); @@ -55,18 +70,18 @@ if ($sub_type == 'new-maintenance') { $fail = 1; } } - if ($fail == 1) { + if ($fail == 1 && $update == 0) { foreach ($items as $item) { dbDelete('alert_schedule_items', '`item_id`=?', array($item)); } dbDelete('alert_schedule', '`schedule_id`=?', array($schedule_id)); - $message = 'Creating maintenance schedule failed'.$yeah; + $message = 'Issue scheduling maintenance'; } else { $status = 'ok'; - $message = 'Created maintenance schedule'; + $message = 'Scheduling maintenance ok'; } } else { - $message = "Issue creating maintenance schedule"; + $message = "Issue scheduling maintenance"; } } @@ -74,13 +89,21 @@ if ($sub_type == 'new-maintenance') { } elseif ($sub_type == 'parse-maintenance') { - $schedule_id = $_POST['schedule_id']; + $schedule_id = mres($_POST['schedule_id']); $schedule = dbFetchRow("SELECT * FROM `alert_schedule` WHERE `schedule_id`=?",array($schedule_id)); $items = array(); foreach (dbFetchRows("SELECT `target` FROM `alert_schedule_items` WHERE `schedule_id`=?",array($schedule_id)) as $targets) { - $items[] = $targets; + $targets = id_to_target($targets['target']); + array_push($items,$targets); } $response = array('start'=>$schedule['start'],'end'=>$schedule['end'],'title'=>$schedule['title'],'notes'=>$schedule['notes'],'targets'=>$items); +} elseif ($sub_type == 'del-maintenance') { + $schedule_id = mres($_POST['del_schedule_id']); + dbDelete('alert_schedule_items','`schedule_id`=?',array($schedule_id)); + dbDelete('alert_schedule','`schedule_id`=?', array($schedule_id)); + $status = 'ok'; + $message = 'Maintenance schedule has been removed'; + $response = array('status'=>$status,'message'=>$message); } echo _json_encode($response); diff --git a/html/includes/modal/alert_schedule.inc.php b/html/includes/modal/alert_schedule.inc.php new file mode 100644 index 000000000..dd9b725af --- /dev/null +++ b/html/includes/modal/alert_schedule.inc.php @@ -0,0 +1,187 @@ + + * + * 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. + */ + +if(is_admin() !== false) { + +?> + +
+ + diff --git a/html/includes/modal/remove_alert_schedule.inc.php b/html/includes/modal/remove_alert_schedule.inc.php new file mode 100644 index 000000000..91613146f --- /dev/null +++ b/html/includes/modal/remove_alert_schedule.inc.php @@ -0,0 +1,78 @@ + + * + * 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. + */ + +if(is_admin() !== false) { + +?> + + + + diff --git a/html/includes/table/alert-schedule.inc.php b/html/includes/table/alert-schedule.inc.php index 5ec8ef795..ba6f9884c 100644 --- a/html/includes/table/alert-schedule.inc.php +++ b/html/includes/table/alert-schedule.inc.php @@ -32,7 +32,7 @@ if (empty($total)) { } if (!isset($sort) || empty($sort)) { - $sort = '`S`.`title` ASC '; + $sort = '`S`.`start` DESC '; } $sql .= " ORDER BY $sort"; @@ -49,10 +49,18 @@ if ($rowCount != -1) { $sql = "SELECT `S`.`schedule_id`, DATE_FORMAT(`S`.`start`, '%D %b %Y %T') AS `start`, DATE_FORMAT(`S`.`end`, '%D %b %Y %T') AS `end`, `S`.`title` $sql"; foreach (dbFetchRows($sql,$param) as $schedule) { + $status = 0; + if ($schedule['end'] < date('dS M Y H:i::s')) { + $status = 1; + } + if (date('dS M Y H:i::s') >= $schedule['start'] && date('dS M Y H:i::s') < $schedule['end']) { + $status = 2; + } $response[] = array('title'=>$schedule['title'], 'start'=>$schedule['start'], 'end'=>$schedule['end'], - 'id'=>$schedule['schedule_id']); + 'id'=>$schedule['schedule_id'], + 'status'=>$status); } $output = array('current'=>$current,'rowCount'=>$rowCount,'rows'=>$response,'total'=>$total); diff --git a/html/pages/alert-schedule.inc.php b/html/pages/alert-schedule.inc.php index 71a38085f..47dc8027f 100644 --- a/html/pages/alert-schedule.inc.php +++ b/html/pages/alert-schedule.inc.php @@ -16,73 +16,10 @@ $pagetitle[] = "Alert Schedule"; $no_refresh = TRUE; if(is_admin() !== false) { -?> +require_once("includes/modal/alert_schedule.inc.php"); +require_once("includes/modal/remove_alert_schedule.inc.php"); - +?>| Title | -Start | +Title | +Start | End | Actions |
|---|