mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-16 10:24:27 +02:00
commit
6faed28e1b
@ -112,6 +112,16 @@ class DateTimePicker extends FormElement
|
|||||||
return $this->max;
|
return $this->max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the expected date and time format of any user input
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getFormat()
|
||||||
|
{
|
||||||
|
return $this->local ? 'Y-m-d\TH:i:s' : DateTime::RFC3339;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is the date and time valid?
|
* Is the date and time valid?
|
||||||
*
|
*
|
||||||
@ -127,7 +137,7 @@ class DateTimePicker extends FormElement
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! $value instanceof DateTime) {
|
if (! $value instanceof DateTime) {
|
||||||
$format = $this->local === true ? 'Y-m-d\TH:i:s' : DateTime::RFC3339;
|
$format = $this->getFormat();
|
||||||
$dateTime = DateTime::createFromFormat($format, $value);
|
$dateTime = DateTime::createFromFormat($format, $value);
|
||||||
if ($dateTime === false) {
|
if ($dateTime === false) {
|
||||||
$dateTime = DateTime::createFromFormat(substr($format, 0, strrpos($format, ':')), $value);
|
$dateTime = DateTime::createFromFormat(substr($format, 0, strrpos($format, ':')), $value);
|
||||||
|
@ -61,6 +61,22 @@ class ScheduleHostDowntimeCommandForm extends ScheduleServiceDowntimeCommandForm
|
|||||||
*/
|
*/
|
||||||
public function onSuccess()
|
public function onSuccess()
|
||||||
{
|
{
|
||||||
|
$end = $this->getValue('end')->getTimestamp();
|
||||||
|
if ($end <= $this->getValue('start')->getTimestamp()) {
|
||||||
|
$endElement = $this->_elements['end'];
|
||||||
|
$endElement->setValue($endElement->getValue()->format($endElement->getFormat()));
|
||||||
|
$endElement->addError($this->translate('The end time must be greater than the start time'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$now = new DateTime;
|
||||||
|
if ($end <= $now->getTimestamp()) {
|
||||||
|
$endElement = $this->_elements['end'];
|
||||||
|
$endElement->setValue($endElement->getValue()->format($endElement->getFormat()));
|
||||||
|
$endElement->addError($this->translate('A downtime must not be in the past'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($this->objects as $object) {
|
foreach ($this->objects as $object) {
|
||||||
/** @var \Icinga\Module\Monitoring\Object\Host $object */
|
/** @var \Icinga\Module\Monitoring\Object\Host $object */
|
||||||
if (($childHostsEl = $this->getElement('child_hosts')) !== null) {
|
if (($childHostsEl = $this->getElement('child_hosts')) !== null) {
|
||||||
|
@ -197,6 +197,22 @@ class ScheduleServiceDowntimeCommandForm extends ObjectsCommandForm
|
|||||||
*/
|
*/
|
||||||
public function onSuccess()
|
public function onSuccess()
|
||||||
{
|
{
|
||||||
|
$end = $this->getValue('end')->getTimestamp();
|
||||||
|
if ($end <= $this->getValue('start')->getTimestamp()) {
|
||||||
|
$endElement = $this->_elements['end'];
|
||||||
|
$endElement->setValue($endElement->getValue()->format($endElement->getFormat()));
|
||||||
|
$endElement->addError($this->translate('The end time must be greater than the start time'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$now = new DateTime;
|
||||||
|
if ($end <= $now->getTimestamp()) {
|
||||||
|
$endElement = $this->_elements['end'];
|
||||||
|
$endElement->setValue($endElement->getValue()->format($endElement->getFormat()));
|
||||||
|
$endElement->addError($this->translate('A downtime must not be in the past'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($this->objects as $object) {
|
foreach ($this->objects as $object) {
|
||||||
/** @var \Icinga\Module\Monitoring\Object\Service $object */
|
/** @var \Icinga\Module\Monitoring\Object\Service $object */
|
||||||
$downtime = new ScheduleServiceDowntimeCommand();
|
$downtime = new ScheduleServiceDowntimeCommand();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user