2018-06-14 17:51:48 +02:00
|
|
|
<?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;
|
2019-04-10 16:24:15 +02:00
|
|
|
use Icinga\Module\Director\Web\Table\IcingaScheduledDowntimeRangeTable;
|
2018-06-14 17:51:48 +02:00
|
|
|
|
|
|
|
class ScheduledDowntimeController extends ObjectController
|
|
|
|
{
|
2020-11-30 10:17:44 +01:00
|
|
|
protected $objectBaseUrl = 'director/scheduled-downtime';
|
|
|
|
|
2021-04-23 12:33:42 +02:00
|
|
|
protected function checkDirectorPermissions()
|
|
|
|
{
|
|
|
|
$this->assertPermission('director/scheduled-downtimes');
|
|
|
|
}
|
|
|
|
|
2018-06-14 17:51:48 +02:00
|
|
|
public function rangesAction()
|
|
|
|
{
|
|
|
|
/** @var IcingaScheduledDowntime $object */
|
|
|
|
$object = $this->object;
|
|
|
|
$this->tabs()->activate('ranges');
|
|
|
|
$this->addTitle($this->translate('Time period ranges'));
|
|
|
|
$form = IcingaScheduledDowntimeRangeForm::load()
|
2019-04-10 16:24:15 +02:00
|
|
|
->setScheduledDowntime($object);
|
2018-06-14 17:51:48 +02:00
|
|
|
|
|
|
|
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());
|
2019-04-10 16:24:15 +02:00
|
|
|
IcingaScheduledDowntimeRangeTable::load($object)->renderTo($this);
|
2018-06-14 17:51:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getType()
|
|
|
|
{
|
|
|
|
return 'scheduledDowntime';
|
|
|
|
}
|
|
|
|
}
|