105 lines
4.1 KiB
PHTML
105 lines
4.1 KiB
PHTML
<?php
|
|
$addLink = false;
|
|
if ($this->hasPermission('monitoring/command/downtime/schedule')) {
|
|
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
|
|
if ($object->getType() === $object::TYPE_HOST) {
|
|
$addLink = $this->qlink(
|
|
$this->translate('Schedule downtime'),
|
|
'monitoring/host/schedule-downtime',
|
|
array('host' => $object->getName()),
|
|
array(
|
|
'class' => 'action-link',
|
|
'data-base-target' => '_self',
|
|
'icon' => 'plug',
|
|
'title' => $this->translate(
|
|
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
|
)
|
|
)
|
|
);
|
|
} else {
|
|
$addLink = $this->qlink(
|
|
$this->translate('Schedule downtime'),
|
|
'monitoring/service/schedule-downtime',
|
|
array('host' => $object->getHost()->getName(), 'service' => $object->getName()),
|
|
array(
|
|
'class' => 'action-link',
|
|
'data-base-target' => '_self',
|
|
'icon' => 'plug',
|
|
'title' => $this->translate(
|
|
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|
|
if (empty($object->comments) && ! $addLink) {
|
|
return;
|
|
}
|
|
?>
|
|
<tr>
|
|
<th><?php
|
|
echo $this->translate('Downtimes');
|
|
if (! empty($object->downtimes) && $addLink) {
|
|
echo '<br />' . $addLink;
|
|
}
|
|
?></th>
|
|
<td data-base-target="_self">
|
|
<?php if (empty($object->downtimes)):
|
|
echo $addLink;
|
|
else: ?>
|
|
<ul class="inline-comments">
|
|
<?php foreach ($object->downtimes as $downtime):
|
|
if ((bool) $downtime->is_in_effect) {
|
|
$state = sprintf(
|
|
$this->translate('expires %s', 'Last format parameter represents the downtime expire time'),
|
|
$this->timeUntil($downtime->end)
|
|
);
|
|
} else {
|
|
if ($downtime->start <= time()) {
|
|
$state = sprintf(
|
|
$this->translate('ends %s', 'Last format parameter represents the end time'),
|
|
$this->timeUntil($downtime->is_flexible ? $downtime->scheduled_end : $downtime->end)
|
|
);
|
|
} elseif ((bool) $downtime->is_fixed) {
|
|
$state = sprintf(
|
|
$this->translate('scheduled %s', 'Last format parameter represents the time scheduled'),
|
|
$this->timeUntil($downtime->start)
|
|
);
|
|
} else {
|
|
$state = sprintf(
|
|
$this->translate('scheduled flexible %s', 'Last format parameter represents the time scheduled'),
|
|
$this->timeUntil($downtime->start)
|
|
);
|
|
}
|
|
}
|
|
// Form is unset if the current user lacks the respective permission
|
|
if (isset($delDowntimeForm)) {
|
|
$deleteButton = clone($delDowntimeForm);
|
|
$deleteButton->populate(
|
|
array(
|
|
'downtime_id' => $downtime->id,
|
|
'downtime_is_service' => $object->getType() === $object::TYPE_SERVICE
|
|
)
|
|
);
|
|
} else {
|
|
$deleteButton = '';
|
|
}
|
|
?>
|
|
<li class="comment-item">
|
|
<h3>
|
|
<span class="author"><?= $this->escape($downtime->author_name) ?></span>
|
|
<?= $this->timeAgo($downtime->entry_time) ?>
|
|
<?= $deleteButton ?>
|
|
</h3>
|
|
<p>
|
|
<span class="sr-only"><?= $this->translate('Downtime') ?></span>
|
|
<?= $state ?> -
|
|
<?= str_replace(array('\r\n', '\n'), '<br>', $this->createTicketLinks($downtime->comment)) ?>
|
|
</p>
|
|
</li>
|
|
<?php endforeach ?>
|
|
</ul>
|
|
<?php endif ?>
|
|
</td>
|
|
</tr>
|