icingaweb2/modules/monitoring/application/views/scripts/partials/object/service-header.phtml

73 lines
3.6 KiB
PHTML

<?php
use Icinga\Module\Monitoring\Object\Host;
use Icinga\Module\Monitoring\Object\Service;
use Icinga\Web\Url;
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
$url = Url::fromRequest();
$linkServiceName = ! ($url->getPath() === 'monitoring/service/show' && $url->getParam('service') === $object->service_description);
?>
<table class="state-table service-detail-state">
<tr>
<td class="state-col state-<?= Host::getStateText($object->host_state) ?><?= $object->host_handled ? ' handled' : '' ?>">
<div class="state-label"><?= Host::getStateText($object->host_state, true) ?></div>
<div class="state-meta">
<?= $this->timeSince($object->host_last_state_change) ?>
<?php if ((int) $object->host_state > 0 && (int) $object->host_state_type === 0): ?>
<div><?= $this->translate('Soft', 'Soft state') ?> <?= $object->host_attempt ?></div>
<?php endif ?>
</div>
</td>
<td>
<?= $this->iconImage()->host($object) ?>
<a href="<?= Url::fromPath('monitoring/host/show', array('host' => $object->host_name)) ?>">
<span class="selectable"><?= $this->escape($object->host_display_name) ?></span>
<?php if ($object->host_display_name !== $object->host_name): ?>
<span class="selectable host-meta">&#40;<?= $this->escape($object->host_name) ?>&#41;</span>
<?php endif ?>
</a>
<?= $this->hostFlags($object) ?>
<?php if ($object->host_address6 && $object->host_address6 !== $object->host_name): ?>
<div class="selectable host-meta" title="<?= $this->translate('IPv6 address') ?>"><?= $this->escape($object->host_address6) ?></div>
<?php endif ?>
<?php if ($object->host_address && $object->host_address !== $object->host_name): ?>
<div class="selectable host-meta" title="<?= $this->translate('IPv4 address') ?>"><?= $this->escape($object->host_address) ?></div>
<?php endif ?>
</td>
</tr>
<tr>
<td class="state-col state-<?= Service::getStateText($object->service_state) ?><?= $object->service_handled ? ' handled' : '' ?>">
<div class="state-label"><?= Service::getStateText($object->service_state, true) ?></div>
<div class="state-meta">
<?= $this->timeSince($object->service_last_state_change) ?>
<?php if ((int) $object->service_state > 0 && (int) $object->service_state_type === 0): ?>
<div><?= $this->translate('Soft', 'Soft state') ?> <?= $object->service_attempt ?></div>
<?php endif ?>
</div>
</td>
<td>
<?= $this->iconImage()->service($object) ?>
<?= $this->translate('Service') ?>&#58;
<?php
if ($linkServiceName) {
echo '<a href="' . Url::fromPath('monitoring/service/show', array(
'host' => $object->host_name,
'service' => $object->service_description
)) . '">';
}
?>
<span class="selectable"><?= $this->escape($object->service_display_name) ?></span>
<?php if ($object->service_display_name !== $object->service_description): ?>
<span class="selectable service-meta">&#40;<?= $this->escape($object->service_description) ?>&#41;</span>
<?php endif ?>
<?php
if ($linkServiceName) {
echo '</a>';
}
?>
<?= $this->serviceFlags($object) ?>
</td>
</tr>
</table>