144 lines
5.1 KiB
PHTML
144 lines
5.1 KiB
PHTML
<?php
|
|
|
|
use Icinga\Web\Url;
|
|
use Icinga\Module\Monitoring\Object\Service;
|
|
|
|
$selfUrl = Url::fromPath('monitoring/show/services', array('host' => $object->host_name));
|
|
$currentUrl = Url::fromRequest()->without('limit')->getRelativeUrl();
|
|
?><div class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
|
<?php if ($object->stats->services_total): ?>
|
|
<?= $this->qlink(
|
|
sprintf(
|
|
$this->translatePlural(
|
|
'%u configured service:',
|
|
'%u configured services:',
|
|
$object->stats->services_total
|
|
),
|
|
$object->stats->services_total
|
|
),
|
|
$selfUrl,
|
|
null,
|
|
array('title' => sprintf(
|
|
$this->translatePlural(
|
|
'List all %u service on host %s',
|
|
'List all %u services on host %s',
|
|
$object->stats->services_total
|
|
),
|
|
$object->stats->services_total,
|
|
$object->host_name
|
|
))
|
|
); ?>
|
|
<?php else: ?>
|
|
<?= $this->translate('No services configured on this host'); ?>
|
|
<?php endif; ?>
|
|
<span class="badges">
|
|
<?php if ($object->stats->services_ok): ?>
|
|
<span class="state ok<?= $currentUrl === $selfUrl->with('service_state', 0)->getRelativeUrl() ? ' active' : ''; ?>">
|
|
<?= $this->qlink(
|
|
$object->stats->services_ok,
|
|
$selfUrl,
|
|
array('service_state' => 0),
|
|
array('title' => sprintf(
|
|
$this->translatePlural(
|
|
'List %u service that is currently in state OK on host %s',
|
|
'List %u services which are currently in state OK on host %s',
|
|
$object->stats->services_ok
|
|
),
|
|
$object->stats->services_ok,
|
|
$object->host_name
|
|
))
|
|
); ?>
|
|
</span>
|
|
<?php endif ?>
|
|
<?php
|
|
foreach (array(2 => 'critical', 3 => 'unknown', 1 => 'warning') as $stateId => $state) {
|
|
$pre = 'services_' . $state;
|
|
if ($object->stats->$pre) {
|
|
$handled = $pre . '_handled';
|
|
$unhandled = $pre . '_unhandled';
|
|
$paramsHandled = array('service_state' => $stateId, 'service_handled' => 1);
|
|
$paramsUnhandled = array('service_state' => $stateId, 'service_handled' => 0);
|
|
if ($object->stats->$unhandled) {
|
|
$compareUrl = $selfUrl->with($paramsUnhandled)->getRelativeUrl();
|
|
} else {
|
|
$compareUrl = $selfUrl->with($paramsHandled)->getRelativeUrl();
|
|
}
|
|
|
|
if ($compareUrl === $currentUrl) {
|
|
$active = ' active';
|
|
} else {
|
|
$active = '';
|
|
}
|
|
|
|
echo '<span class="state ' . $state . $active . ($object->stats->$unhandled ? '' : ' handled') . '">';
|
|
if ($object->stats->$unhandled) {
|
|
|
|
echo $this->qlink(
|
|
$object->stats->$unhandled,
|
|
$selfUrl,
|
|
$paramsUnhandled,
|
|
array('title' => sprintf(
|
|
$this->translatePlural(
|
|
'List %u service that is currently in state %s on host %s',
|
|
'List %u services which are currently in state %s on host %s',
|
|
$object->stats->$unhandled
|
|
),
|
|
$object->stats->$unhandled,
|
|
Service::getStateText($stateId, true),
|
|
$object->host_name
|
|
))
|
|
);
|
|
}
|
|
if ($object->stats->$handled) {
|
|
|
|
if ($selfUrl->with($paramsHandled)->getRelativeUrl() === $currentUrl) {
|
|
$active = ' active';
|
|
} else {
|
|
$active = '';
|
|
}
|
|
if ($object->stats->$unhandled) {
|
|
echo '<span class="state handled ' . $state . $active . '">';
|
|
}
|
|
echo $this->qlink(
|
|
$object->stats->$handled,
|
|
$selfUrl,
|
|
$paramsHandled,
|
|
array('title' => sprintf(
|
|
$this->translatePlural(
|
|
'List %u service that is currently in state %s (Acknowledged) on host %s',
|
|
'List %u services which are currently in state %s (Acknowledged) on host %s',
|
|
$object->stats->$handled
|
|
),
|
|
$object->stats->$handled,
|
|
Service::getStateText($stateId, true),
|
|
$object->host_name
|
|
))
|
|
);
|
|
if ($object->stats->$unhandled) {
|
|
echo "</span>\n";
|
|
}
|
|
}
|
|
echo "</span>\n";
|
|
}
|
|
}
|
|
?>
|
|
<?php if ($object->stats->services_pending): ?>
|
|
<span class="state pending<?= $currentUrl === $selfUrl->with('service_state', 99)->getRelativeUrl() ? ' active' : ''; ?>">
|
|
<?= $this->qlink(
|
|
$object->stats->services_pending,
|
|
$selfUrl,
|
|
array('service_state' => 99),
|
|
array('title' => sprintf(
|
|
$this->translatePlural(
|
|
'List %u service that is currently in state PENDING on host %s',
|
|
'List %u services which are currently in state PENDING on host %s',
|
|
$object->stats->services_pending
|
|
),
|
|
$object->stats->services_pending,
|
|
$object->host_name
|
|
))
|
|
) ?>
|
|
</span>
|
|
<?php endif ?>
|
|
</span>
|
|
</div>
|