summaryrefslogtreecommitdiffstats
path: root/application/controllers/ScheduledDowntimeController.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--application/controllers/ScheduledDowntimeController.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/application/controllers/ScheduledDowntimeController.php b/application/controllers/ScheduledDowntimeController.php
new file mode 100644
index 0000000..e681a70
--- /dev/null
+++ b/application/controllers/ScheduledDowntimeController.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Icinga\Module\Director\Controllers;
+
+use Icinga\Module\Director\Forms\IcingaScheduledDowntimeRangeForm;
+use Icinga\Module\Director\Objects\IcingaScheduledDowntime;
+use Icinga\Module\Director\Web\Controller\ObjectController;
+use Icinga\Module\Director\Web\Table\IcingaScheduledDowntimeRangeTable;
+
+class ScheduledDowntimeController extends ObjectController
+{
+ protected $objectBaseUrl = 'director/scheduled-downtime';
+
+ protected function checkDirectorPermissions()
+ {
+ $this->assertPermission('director/scheduled-downtimes');
+ }
+
+ public function rangesAction()
+ {
+ /** @var IcingaScheduledDowntime $object */
+ $object = $this->object;
+ $this->tabs()->activate('ranges');
+ $this->addTitle($this->translate('Time period ranges'));
+ $form = IcingaScheduledDowntimeRangeForm::load()
+ ->setScheduledDowntime($object);
+
+ if (null !== ($name = $this->params->get('range'))) {
+ $this->addBackLink($this->url()->without('range'));
+ $form->loadObject([
+ 'scheduled_downtime_id' => $object->get('id'),
+ 'range_key' => $name,
+ 'range_type' => $this->params->get('range_type')
+ ]);
+ }
+
+ $this->content()->add($form->handleRequest());
+ IcingaScheduledDowntimeRangeTable::load($object)->renderTo($this);
+ }
+
+ public function getType()
+ {
+ return 'scheduledDowntime';
+ }
+}