From 7b6641dc848b6fd912b32de960760854715a35eb Mon Sep 17 00:00:00 2001 From: Matthias Jentsch Date: Tue, 21 Apr 2015 14:49:27 +0200 Subject: [PATCH] Add basic downtime controller and views refs #8902 --- .../controllers/DowntimeController.php | 79 ++++++++ .../views/scripts/downtime/show.phtml | 179 ++++++++++++++++++ 2 files changed, 258 insertions(+) create mode 100644 modules/monitoring/application/controllers/DowntimeController.php create mode 100644 modules/monitoring/application/views/scripts/downtime/show.phtml diff --git a/modules/monitoring/application/controllers/DowntimeController.php b/modules/monitoring/application/controllers/DowntimeController.php new file mode 100644 index 000000000..13e7f9e14 --- /dev/null +++ b/modules/monitoring/application/controllers/DowntimeController.php @@ -0,0 +1,79 @@ +params->get('downtime_id'); + + $this->downtime = $this->backend->select()->from('downtime', array( + 'id' => 'downtime_internal_id', + 'objecttype' => 'downtime_objecttype', + 'comment' => 'downtime_comment', + 'author_name' => 'downtime_author_name', + 'start' => 'downtime_start', + 'scheduled_start' => 'downtime_scheduled_start', + 'scheduled_end' => 'downtime_scheduled_end', + 'end' => 'downtime_end', + 'duration' => 'downtime_duration', + 'is_flexible' => 'downtime_is_flexible', + 'is_fixed' => 'downtime_is_fixed', + 'is_in_effect' => 'downtime_is_in_effect', + 'entry_time' => 'downtime_entry_time', + 'host_state' => 'downtime_host_state', + 'service_state' => 'downtime_service_state', + 'host_name', + 'host', + 'service', + 'service_description', + 'host_display_name', + 'service_display_name' + ))->where('downtime_internal_id', $downtimeId)->getQuery()->fetchRow(); + + $this->getTabs() + ->add( + 'downtime', + array( + 'title' => $this->translate( + 'Display detailed information about a downtime.' + ), + 'icon' => 'plug', + 'label' => $this->translate('Downtime'), + 'url' =>'monitoring/downtimes/show' + ) + )->activate('downtime')->extend(new DashboardAction()); + } + + public function showAction() + { + $this->view->downtime = $this->downtime; + $this->view->delDowntimeForm = new DeleteDowntimeCommandForm(); + $this->view->delDowntimeForm->setObjects($this->downtime); + $this->view->listAllLink = Url::fromPath('monitoring/list/downtimes'); + $this->view->showHostLink = Url::fromPath('monitoring/host/show') + ->setParam('host', $this->downtime->host); + $this->view->showServiceLink = Url::fromPath('monitoring/service/show') + ->setParam('host', $this->downtime->host) + ->setParam('service', $this->downtime->service_description); + } +} diff --git a/modules/monitoring/application/views/scripts/downtime/show.phtml b/modules/monitoring/application/views/scripts/downtime/show.phtml new file mode 100644 index 000000000..806897e90 --- /dev/null +++ b/modules/monitoring/application/views/scripts/downtime/show.phtml @@ -0,0 +1,179 @@ +service_description)) { + $isService = true; + $stateName = Service::getStateText($downtime->service_state); +} else { + $isService = false; + $stateName = Host::getStateText($downtime->host_state); +} +?> + +
+ compact): ?> + tabs; ?> + +

+ + link()->service( + $downtime->service_description, + $downtime->service_display_name, + $downtime->host_name, + $downtime->host_display_name + ); + $icon = $this->icon('service', $this->translate('Service')); + ?> + + icon('host', $this->translate('Host')); + $link = $this->link()->host($downtime->host_name, $downtime->host_display_name) + ?> + + translate( + 'Downtime for %s', + 'Downtime for host or service.' + ), + $link + ); ?> + +

+
+ +
+ + is_flexible): ?> + is_in_effect): ?> + translate('This flexible service downtime was started on %s at %s and lasts for %s until %s at %s.') + : $this->translate('This flexible host downtime was started on %s at %s and lasts for %s until %s at %s.'), + date('d.m.y', $downtime->start), + date('H:i', $downtime->start), + $this->format()->duration($downtime->duration), + date('d.m.y', $downtime->end), + date('H:i', $downtime->end) + ); ?> + + translate('This flexible service downtime has been scheduled to start between %s - %s and to last for %s.') + : $this->translate('This flexible host downtime has been scheduled to start between %s - %s and to last for %s.'), + date('d.m.y H:i', $downtime->scheduled_start), + date('d.m.y H:i', $downtime->scheduled_end), + $this->format()->duration($downtime->duration) + ); ?> + + + is_in_effect): ?> + translate('This fixed service downtime was started on %s at %s and expires on %s at %s.') + : $this->translate('This fixed host downtime was started on %s at %s and expires on %s at %s.'), + date('d.m.y', $downtime->start), + date('H:i', $downtime->start), + date('d.m.y', $downtime->end), + date('H:i', $downtime->end) + ); ?> + + translate('This fixed service downtime has been scheduled to start on %s at %s and to end on %s at %s.') + : $this->translate('This fixed host downtime has been scheduled to start on %s at %s and to end on %s at %s.'), + date('d.m.y', $downtime->scheduled_start), + date('H:i', $downtime->scheduled_start), + date('d.m.y', $downtime->scheduled_end), + date('H:i', $downtime->scheduled_end) + ); ?> + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + downtime->is_flexible && $this->downtime->is_in_effect): ?> + + + + + + + + + + + + + + + + + + + + + +
translate('Author') ?>escape($this->downtime->author_name) ?>
translate('Comments') ?>escape($this->downtime->comment) ?>
translate('Scheduled start') ?>downtime->scheduled_start) ?>
translate('Scheduled end') ?>downtime->scheduled_end) ?>
translate('Is Flexible') ?> + escape( + $this->downtime->is_flexible ? + $this->translate('Yes') : $this->translate('No') + ); + ?> +
translate('In Effect') ?> + escape( + $this->downtime->is_in_effect ? + $this->translate('Yes') : $this->translate('No') + ); + ?> +
translate('Start') ?>start); ?>
translate('End') ?>end); ?>
translate('Duration') ?>format()->duration($this->escape($this->downtime->duration)); ?>
translate('Commands') ?> + populate(array('downtime_id' => $downtime->id, 'redirect' => $this->listAllLink)); + if (! $isService) { + $delDowntimeForm->setAction( + $this->url('monitoring/host/delete-downtime', + array('host' => $downtime->host_name)) + ); + } else { + $delDowntimeForm->setAction( + $this->url('monitoring/service/delete-downtime', array( + 'host' => $downtime->host_name, + 'service' => $downtime->service_description + )) + ); + } + echo $delDowntimeForm; + ?> +
+ +
+