From 59b688e664e6b245b8488b02c9aba1df874162ab Mon Sep 17 00:00:00 2001 From: Noah Hilverling Date: Thu, 10 Jan 2019 09:36:03 +0100 Subject: [PATCH] Fix that event detail view is not showing time in correct timezone --- .../controllers/EventController.php | 72 +++++++------------ 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/modules/monitoring/application/controllers/EventController.php b/modules/monitoring/application/controllers/EventController.php index 4663be0c5..a0ac02bdc 100644 --- a/modules/monitoring/application/controllers/EventController.php +++ b/modules/monitoring/application/controllers/EventController.php @@ -38,13 +38,6 @@ class EventController extends Controller 'dt_end' => 'downtimeevent' ); - /** - * Cache for {@link time()} - * - * @var DateTimeZone - */ - protected $timeZone; - public function showAction() { $type = $this->params->shiftRequired('type'); @@ -106,31 +99,6 @@ class EventController extends Controller return $this->view->escape($condition ? $this->translate('Yes') : $this->translate('No')); } - /** - * Render the given timestamp as human readable HTML in the user agent's timezone or 'N/A' if NULL - * - * @param int|null $stamp - * - * @return string - */ - protected function time($stamp) - { - if ($stamp === null) { - return $this->view->escape($this->translate('N/A')); - } - - if ($this->timeZone === null) { - $timezoneDetect = new TimezoneDetect(); - $this->timeZone = new DateTimeZone( - $timezoneDetect->success() ? $timezoneDetect->getTimezoneName() : date_default_timezone_get() - ); - } - - return $this->view->escape( - DateTime::createFromFormat('U', $stamp)->setTimezone($this->timeZone)->format('Y-m-d H:i:s') - ); - } - /** * Render the given duration in seconds as human readable HTML or 'N/A' if NULL * @@ -370,7 +338,7 @@ class EventController extends Controller case 'dt_start': case 'dt_end': $details = array(array( - array($this->translate('Entry time'), $this->time($event->entry_time)), + array($this->translate('Entry time'), DateFormatter::formatTime($event->entry_time)), array($this->translate('Is fixed'), $this->yesOrNo($event->is_fixed)), array($this->translate('Is in effect'), $this->yesOrNo($event->is_in_effect)), array($this->translate('Was started'), $this->yesOrNo($event->was_started)) @@ -383,16 +351,28 @@ class EventController extends Controller } $details[] = array( - array($this->translate('Trigger time'), $this->time($event->trigger_time)), - array($this->translate('Scheduled start time'), $this->time($event->scheduled_start_time)), - array($this->translate('Actual start time'), $this->time($event->actual_start_time)), - array($this->translate('Scheduled end time'), $this->time($event->scheduled_end_time)) + array($this->translate('Trigger time'), DateFormatter::formatTime($event->trigger_time)), + array( + $this->translate('Scheduled start time'), + DateFormatter::formatTime($event->scheduled_start_time) + ), + array( + $this->translate('Actual start time'), + DateFormatter::formatTime($event->actual_start_time) + ), + array( + $this->translate('Scheduled end time'), + DateFormatter::formatTime($event->scheduled_end_time) + ) ); if ($type === 'dt_end') { $details[] = array( - array($this->translate('Actual end time'), $this->time($event->actual_end_time))) - ; + array( + $this->translate('Actual end time'), + DateFormatter::formatTime($event->actual_end_time) + ) + ); } $details[] = array( @@ -436,14 +416,14 @@ class EventController extends Controller } return array( - array($this->translate('Time'), $this->time($event->comment_time)), + array($this->translate('Time'), DateFormatter::formatTime($event->comment_time)), array($this->translate('Source'), $this->view->escape($commentSource)), array($this->translate('Entry type'), $this->view->escape($entryType)), array($this->translate('Author'), $this->contact($event->author_name)), array($this->translate('Is persistent'), $this->yesOrNo($event->is_persistent)), array($this->translate('Expires'), $this->yesOrNo($event->expires)), - array($this->translate('Expiration time'), $this->time($event->expiration_time)), - array($this->translate('Deletion time'), $this->time($event->deletion_time)), + array($this->translate('Expiration time'), DateFormatter::formatTime($event->expiration_time)), + array($this->translate('Deletion time'), DateFormatter::formatTime($event->deletion_time)), array($this->translate('Message'), $this->comment($event->comment_data)) ); case 'flapping': @@ -460,7 +440,7 @@ class EventController extends Controller } return array( - array($this->translate('Event time'), $this->time($event->event_time)), + array($this->translate('Event time'), DateFormatter::formatTime($event->event_time)), array($this->translate('Reason'), $this->view->escape($reasonType)), array($this->translate('State change'), $this->percent($event->percent_state_change)), array($this->translate('Low threshold'), $this->percent($event->low_threshold)), @@ -500,8 +480,8 @@ class EventController extends Controller } $details = array( - array($this->translate('Start time'), $this->time($event->start_time)), - array($this->translate('End time'), $this->time($event->end_time)), + array($this->translate('Start time'), DateFormatter::formatTime($event->start_time)), + array($this->translate('End time'), DateFormatter::formatTime($event->end_time)), array($this->translate('Reason'), $this->view->escape($notificationReason)), array( $this->translate('State'), @@ -521,7 +501,7 @@ class EventController extends Controller $isService = $event->service_description !== null; $details = array( - array($this->translate('State time'), $this->time($event->state_time)), + array($this->translate('State time'), DateFormatter::formatTime($event->state_time)), array($this->translate('State'), $this->state($isService, $event->state)), array($this->translate('Check attempt'), $this->view->escape(sprintf( $this->translate('%d of %d'),