icingaweb2/modules/monitoring/application/views/scripts/show/components/status.phtml

230 lines
9.8 KiB
PHTML

<?php
$type = $object->type === 2 ? 'service' : 'host';
/** @var Zend_View_Helper_CommandForm $cf */
$cf = $this->getHelper('CommandForm');
if ($type === 'host') {
$objectStateName = strtolower($this->util()->getHostStateName($this->object->host_state));
$objectState = (int) $object->host_state;
} else {
$objectStateName = strtolower($this->util()->getServiceStateName($this->object->service_state));
$objectState = (int) $object->service_state;
}
?>
<div>
<div class="panel-heading border-status-<?= $objectStateName ?>">
<div class="panel-hostname">
<?= $type ; ?>
<?php if ($type === 'host'): ?>
<a title="View all services for this host"
href="<?= $this->href('monitoring/list/services', array('host' => $object->host_name)); ?>">
<?= $this->escape($object->host_name); ?>
</a><?= ($object->host_name !== $object->host_alias) ? ',' : ''; ?>
<?php if ($object->host_name !== $object->host_alias): ?>
<?= $object->host_alias ?>
<?php endif; ?>
<span class="panel-header-status">
- <?= $this->util()->getHostStateName($this->object->host_state); ?>
since <?= $this->timeSince($this->object->host_last_state_change); ?>
</span>
<?php else: ?>
<?= $this->escape($object->service_description); ?>
<span class="panel-header-status">
- <?= $this->util()->getServiceStateName($object->service_state); ?>
since <?= $this->timeSince($object->service_slast_state_change); ?>
</span>
<?php endif; ?>
<?= $this->render('show/components/statusIcons.phtml'); ?>
<?php if ($object->service_display_name && $object->service_description !== $object->service_display_name): ?>
<div class="small-row">
(<?= $object->service_display_name; ?>)
</div>
<?php endif; ?>
<div class="small-row">
<?php if ($type === 'service'): ?>
On <?= $object->host_name; ?>
<?php if ($object->host_state > 0): ?>
(<?= $this->util()->getHostStateName($this->object->host_state); ?>)
<?php endif; ?>
<?php endif; ?>
<?php if ($object->action_url || $object->notes_url): ?>
<br />
<?php if ($object->notes_url): ?>
<?php if (strpos($object->notes_url, "' ") === false): ?>
<a target="_new" href='<?= $this->escape($this->resolveMacros($object->notes_url, $object)); ?>'>Notes</a>
<?php else: ?>
<?php foreach(explode("' ", $object->notes_url) as $url): ?>
<?php $url = strpos($url, "'") === 0 ? substr($url, 1) : $url; ?>
<?php $url = strrpos($url, "'") === strlen($url) - 1 ? substr($url, 0, strlen($url) - 1) : $url; ?>
<a target="_new" href='<?= $this->escape($this->resolveMacros($url, $object)); ?>'>Notes</a>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
<?php if ($object->action_url): ?>
<?php if (strpos($object->action_url, "' ") === false): ?>
<a target="_new" href='<?= $this->escape($this->resolveMacros($this->object->action_url, $object)); ?>'>Action</a>
<?php else: ?>
<?php foreach(explode("' ", $object->action_url) as $url): ?>
<?php $url = strpos($url, "'") === 0 ? substr($url, 1) : $url; ?>
<?php $url = strrpos($url, "'") === strlen($url) - 1 ? substr($url, 0, strlen($url) - 1) : $url; ?>
<a target="_new" href='<?= $this->escape($this->resolveMacros($url, $object)); ?>'>Action</a>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
</div>
</div>
</div>
<hr class="separator" />
<div class="panel-body">
<div class="panel-row">
<p><?= $this->pluginOutput($object->output); ?></p>
<?php if ($objectState > 0): ?>
<?php if ($this->object->host_acknowledged || $this->object->service_acknowledged): ?>
<?= $cf->labelSubmitForm(
'Remove Ack',
'Remove problem acknowledgement',
'btn-cta btn-half-left',
'removeacknowledgement',
array(
'host' => $this->object->host_name,
'service' => $this->object->service_description
)
) ?>
<?php else: ?>
<a rel="tooltip" title="Acknowledge Problems" href="<?=
$this->href(
'monitoring/command/acknowledgeproblem',
array(
'host' => $this->object->host_name,
'service' => $this->object->service_description
)
);
?>" class="button btn-cta btn-half-left">
Acknowledge
</a>
<?php endif; ?>
<?php endif; ?>
<?= $cf->labelSubmitForm(
'Recheck',
'Reschedule next check immediately',
'btn-cta ' . (($objectState > 0) ? 'btn-half-right' : 'btn-wide'),
'reschedulenextcheck',
array(
'host' => $this->object->host_name,
'service' => $this->object->service_description,
'checktime' => time(),
'forcecheck' => '1'
)
) ?>
</div>
<div class="panel-row">
<?php if ($object->perfdata): ?>
<div class="small-row">
<?= $this->perfdata($this->object->perfdata); ?>
</div>
<?php endif; ?>
<?php if ($object->long_output): ?>
<div class="small-row">
<?= $this->pluginOutput($object->long_output); ?>
</div>
<?php endif; ?>
</div>
<?php if ($object->is_flapping): ?>
<div class="panel-row">
<div class="panel-label">
Flapping
</div>
<div class="panel-content">
<?= sprintf('%.2f', $object->percent_state_change) ?>% state change
</div>
</div>
<?php endif; ?>
<div class="panel-row">
<div class="panel-label">
Last Check
</div>
<div class="panel-content">
<?= $this->dateFormat()->formatDateTime($object->last_check); ?>
</div>
</div>
<div class="panel-row">
<div class="panel-label">
Next Check
</div>
<div class="panel-content">
<?= $this->dateFormat()->formatDateTime($object->next_check); ?>
</div>
<div class="panel-button">
<a rel="tooltip" title="Reschedule the next check" href="<?=
$this->href(
'monitoring/command/reschedulenextcheck',
array(
'host' => $this->object->host_name,
'service' => $this->object->serivce_description
)
);
?>" class="button btn-common btn-small">
<i class="icinga-icon-reschedule"></i>
</a>
</div>
</div>
<?php if ($objectState > 0): ?>
<?php
if ($object->service_description) {
$notificationsHref = $this->href(
'monitoring/list/notifications',
array(
'host' => $object->host_name,
'service' => $object->service_description
)
);
} else {
$notificationsHref = $this->href(
'monitoring/list/notifications',
array(
'host' => $object->host_name
)
);
}
?>
<div class="panel-row">
<div class="panel-label">
Last Notification
</div>
<div class="panel-content">
<a href="<?= $notificationsHref ?>">
<?php if ($object->last_notification === '0000-00-00 00:00:00'): ?>
N/A
<?php else: ?>
<?= $object->last_notification ?>
<?php if ($object->current_notification_number > 0): ?>
<br />
<?= $object->current_notification_number ?> notifications sent during current problem state
<?php endif ;?>
<?php endif; ?>
</a>
</div>
</div>
<?php endif; ?>
</div>
</div>