Skip to content

Commit

Permalink
monitoring/commands: Add `DisableNotificationsCommandForm'
Browse files Browse the repository at this point in the history
`DisableNotificationsCommandForm' is the form for disabling host and service notifications w/ an optional expire date and time on an Icinga instance.

refs #6593
  • Loading branch information
lippserd committed Sep 4, 2014
1 parent 3d0a74b commit cb23ef3
Showing 1 changed file with 76 additions and 0 deletions.
@@ -0,0 +1,76 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}

namespace Icinga\Module\Monitoring\Form\Command\Instance;

use DateTime;
use DateInterval;
use Icinga\Module\Monitoring\Command\Instance\ToggleNotifications;
use Icinga\Module\Monitoring\Form\Command\CommandForm;
use Icinga\Web\Form\Element\DateTimePicker;
use Icinga\Web\Notification;
use Icinga\Web\Request;

/**
* Form for disabling host and service notifications w/ an optional expire date and time on an Icinga instance
*/
class DisableNotificationsCommandForm extends CommandForm
{
/**
* (non-PHPDoc)
* @see \Zend_Form::init() For the method documentation.
*/
public function init()
{
$this->setSubmitLabel(mt('monitoring', 'Disable Notifications'));
}

/**
* (non-PHPDoc)
* @see \Icinga\Web\Form::createElements() For the method documentation.
*/
public function createElements(array $formData = array())
{
$expire = new DateTime();
$expire->add(new DateInterval('PT1H'));
$this->addElement(
new DateTimePicker(
'expire',
array(
'required' => true,
'label' => t('Expire Time'),
'description' => mt('monitoring', 'Set the start date and time for the service downtime.'),
'value' => $expire
)
)
);
return $this;
}

/**
* Get the command which is to be sent to an Icinga instance
*
* @return ToggleNotifications
*/
public function getCommand()
{
return new ToggleNotifications();
}

/**
* (non-PHPDoc)
* @see \Icinga\Web\Form::onSuccess() For the method documentation.
*/
public function onSuccess(Request $request)
{
$toggleNotifications = $this->getCommand();
$toggleNotifications
->disable()
->setExpire($this->getElement('expire')->getValue());
$this->getTransport($request)->send($toggleNotifications);
Notification::success(mt('monitoring', 'Command sent'));
return true;
}

}

0 comments on commit cb23ef3

Please sign in to comment.