mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
WIP UI
This commit is contained in:
@@ -100,7 +100,8 @@ class AlertSchedule extends Model
|
||||
}
|
||||
|
||||
public function getEndRecurringDtAttribute() {
|
||||
return $this->end->toDateString();
|
||||
$end = $this->end;
|
||||
return $end->year == '9000' ? null : $end->toDateString();
|
||||
}
|
||||
|
||||
public function getEndRecurringHrAttribute() {
|
||||
|
@@ -114,10 +114,17 @@ if ($sub_type == 'new-maintenance') {
|
||||
if (empty($message)) {
|
||||
$alert_schedule = \App\Models\AlertSchedule::findOrNew($schedule_id);
|
||||
$alert_schedule->title = $title;
|
||||
$alert_schedule->recurring = $recurring;
|
||||
$alert_schedule->start = Carbon::parse($recurring ? "$start_recurring_dt $start_recurring_hr": $start)->tz('UTC');
|
||||
$alert_schedule->end = Carbon::parse($recurring ? "$end_recurring_dt $start_recurring_hr" : $end)->tz('UTC');
|
||||
$alert_schedule->notes = $notes;
|
||||
$alert_schedule->recurring = $recurring;
|
||||
$alert_schedule->start = $start;
|
||||
$alert_schedule->end = $end;
|
||||
|
||||
if ($recurring) {
|
||||
$alert_schedule->start_recurring_dt = $start_recurring_dt;
|
||||
$alert_schedule->start_recurring_hr = $start_recurring_hr;
|
||||
$alert_schedule->end_recurring_dt = $end_recurring_dt;
|
||||
$alert_schedule->end_recurring_hr = $end_recurring_hr;
|
||||
}
|
||||
$alert_schedule->save();
|
||||
|
||||
if ($alert_schedule->schedule_id > 0) {
|
||||
@@ -173,7 +180,7 @@ if ($sub_type == 'new-maintenance') {
|
||||
);
|
||||
} elseif ($sub_type == 'parse-maintenance') {
|
||||
$schedule_id = mres($_POST['schedule_id']);
|
||||
$schedule = dbFetchRow('SELECT * FROM `alert_schedule` WHERE `schedule_id`=?', array($schedule_id));
|
||||
$alert_schedule = \App\Models\AlertSchedule::findOrFail($schedule_id);
|
||||
$items = [];
|
||||
foreach (dbFetchRows('SELECT `alert_schedulable_type`, `alert_schedulable_id` FROM `alert_schedulables` WHERE `schedule_id`=?', [$schedule_id]) as $target) {
|
||||
$id = $target['alert_schedulable_id'];
|
||||
@@ -192,19 +199,9 @@ if ($sub_type == 'new-maintenance') {
|
||||
];
|
||||
}
|
||||
|
||||
$response = array(
|
||||
'start' => $schedule['start'],
|
||||
'end' => $schedule['end'],
|
||||
'title' => $schedule['title'],
|
||||
'notes' => $schedule['notes'],
|
||||
'recurring' => $schedule['recurring'],
|
||||
'start_recurring_dt' => ($schedule['start_recurring_dt'] != '0000-00-00' ? $schedule['start_recurring_dt']: '1970-01-02 00:00:01'),
|
||||
'end_recurring_dt' => ($schedule['end_recurring_dt']!= '0000-00-00' ? $schedule['end_recurring_dt'] : '1970-01-02 00:00:01'),
|
||||
'start_recurring_hr' => substr($schedule['start_recurring_hr'], 0, 5),
|
||||
'end_recurring_hr' => substr($schedule['end_recurring_hr'], 0, 5),
|
||||
'recurring_day' => $schedule['recurring_day'],
|
||||
'targets' => $items,
|
||||
);
|
||||
$response = $alert_schedule->toArray();
|
||||
$response['recurring_day'] = $alert_schedule->getAttribute('recurring_day');
|
||||
$response['targets'] = $items;
|
||||
} elseif ($sub_type == 'del-maintenance') {
|
||||
$schedule_id = mres($_POST['del_schedule_id']);
|
||||
dbDelete('alert_schedule', '`schedule_id`=?', array($schedule_id));
|
||||
|
@@ -155,6 +155,7 @@ $('#schedule-maintenance').on('show.bs.modal', function (event) {
|
||||
data: { type: "schedule-maintenance", sub_type: "parse-maintenance", schedule_id: schedule_id },
|
||||
dataType: "json",
|
||||
success: function(output) {
|
||||
console.log(output);
|
||||
var maps = $('#maps');
|
||||
var selected = [];
|
||||
$.each ( output['targets'], function( key, item ) {
|
||||
|
@@ -60,35 +60,21 @@ if (isset($sort) && !empty($sort)) {
|
||||
$query->orderBy('start')->orderBy('title');
|
||||
}
|
||||
|
||||
$now = Carbon::now(config('app.timezone'));
|
||||
$days = [
|
||||
'from' => ['1', '2', '3', '4', '5', '6', '7'],
|
||||
'to' => ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
|
||||
];
|
||||
$now = Carbon::now();
|
||||
|
||||
$schedules = $query->get()->map(function ($schedule) use ($now, $days) {
|
||||
$start = Carbon::parse($schedule->start, 'UTC')->tz(config('app.timezone'));
|
||||
$end = Carbon::parse($schedule->end, 'UTC')->tz(config('app.timezone'));
|
||||
|
||||
$status = $end < $now ? 1 : 0; // set or lapsed
|
||||
$schedules = $query->get()->map(function ($schedule) use ($now) {
|
||||
/** @var \App\Models\AlertSchedule $schedule */
|
||||
$status = $schedule->start < $now ? 1 : 0; // set or lapsed
|
||||
// check if current
|
||||
if ($now->between($start, $end) && (!$schedule->recurring || $now->between($start->toTimeString(), $end->toTimeString()))) {
|
||||
if ($now->between($schedule->start, $schedule->end) && (!$schedule->recurring || $now->between($schedule->start_recurring_hr, $schedule->end_recurring_hr))) {
|
||||
$status = 2;
|
||||
}
|
||||
|
||||
return [
|
||||
'title' => $schedule->title,
|
||||
'recurring' => $schedule->recurring ? 'yes' : 'no',
|
||||
'start' => $schedule->recurring ? '' : $start->toDateTimeString('minute'),
|
||||
'end' => $schedule->recurring ? '' : $end->toDateTimeString('minute'),
|
||||
'start_recurring_dt' => $schedule->recurring == 0 ? '' : $start->toDateString(),
|
||||
'end_recurring_dt' => $schedule->recurring == 0 || $end->year == 9000 ? '' : $end->toDateString(),
|
||||
'start_recurring_hr' => $schedule->recurring == 0 ? '' : $start->toTimeString('minute'),
|
||||
'end_recurring_hr' => $schedule->recurring == 0 ? '' : $end->toTimeString('minute'),
|
||||
'recurring_day' => $schedule->recurring == 0 ? '' : str_replace($days['from'], $days['to'], $schedule->recurring_day),
|
||||
'id' => $schedule->schedule_id,
|
||||
'status' => $status,
|
||||
];
|
||||
$data = $schedule->toArray();
|
||||
$data['recurring_day'] = implode(',', $data['recurring_day']);
|
||||
$data['status'] = $status;
|
||||
|
||||
return $data;
|
||||
});
|
||||
|
||||
echo json_encode([
|
||||
|
Reference in New Issue
Block a user