From 6b166cd13a8caad8a54ffb7b8dbdbcf7248a9bbd Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Fri, 10 Apr 2020 21:19:53 -0500 Subject: [PATCH] WIP UI --- app/Models/AlertSchedule.php | 3 +- .../html/forms/schedule-maintenance.inc.php | 31 ++++++++--------- includes/html/modal/alert_schedule.inc.php | 1 + includes/html/table/alert-schedule.inc.php | 34 ++++++------------- 4 files changed, 27 insertions(+), 42 deletions(-) diff --git a/app/Models/AlertSchedule.php b/app/Models/AlertSchedule.php index 2308702f61..5cdc663ad8 100644 --- a/app/Models/AlertSchedule.php +++ b/app/Models/AlertSchedule.php @@ -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() { diff --git a/includes/html/forms/schedule-maintenance.inc.php b/includes/html/forms/schedule-maintenance.inc.php index 03d934313e..76e8cee976 100644 --- a/includes/html/forms/schedule-maintenance.inc.php +++ b/includes/html/forms/schedule-maintenance.inc.php @@ -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)); diff --git a/includes/html/modal/alert_schedule.inc.php b/includes/html/modal/alert_schedule.inc.php index 34b8193eb9..875e7187fa 100644 --- a/includes/html/modal/alert_schedule.inc.php +++ b/includes/html/modal/alert_schedule.inc.php @@ -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 ) { diff --git a/includes/html/table/alert-schedule.inc.php b/includes/html/table/alert-schedule.inc.php index 60b61535cc..dd207d1f7c 100644 --- a/includes/html/table/alert-schedule.inc.php +++ b/includes/html/table/alert-schedule.inc.php @@ -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([