Monitoring/Notifications: Wrap information in a two column view
This commit is contained in:
parent
ebc9f02cb4
commit
06158aa4ea
|
@ -218,20 +218,7 @@ class Monitoring_ListController extends MonitoringController
|
|||
*/
|
||||
public function notificationsAction()
|
||||
{
|
||||
$query = NotificationView::fromRequest(
|
||||
$this->_request,
|
||||
array(
|
||||
'host_name',
|
||||
'service_description',
|
||||
'notification_type',
|
||||
'notification_reason',
|
||||
'notification_start_time',
|
||||
'notification_contact',
|
||||
'notification_information',
|
||||
'notification_command',
|
||||
'notification_internal_id'
|
||||
)
|
||||
)->getQuery();
|
||||
$query = NotificationView::fromRequest($this->_request)->getQuery();
|
||||
$this->view->notifications = $query->paginate();
|
||||
$this->setupSortControl(array(
|
||||
'notification_start_time' => 'Notification Start'
|
||||
|
|
|
@ -1,71 +1,56 @@
|
|||
<?= $this->tabs->render($this); ?>
|
||||
<h1>Notifications</h1>
|
||||
|
||||
<?php
|
||||
$formatter = $this->getHelper('MonitoringProperties');
|
||||
?>
|
||||
<div data-icinga-component="app/mainDetailGrid" data-icinga-grid-selection-type="multi">
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
|
||||
<?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)); ?>
|
||||
<table class="table table-condensed" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Host</th>
|
||||
<th>Service</th>
|
||||
<th>Type</th>
|
||||
<th>Time</th>
|
||||
<th>Contact</th>
|
||||
<th>Notification Command</th>
|
||||
<th>Information</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($notifications as $notification): ?>
|
||||
<?php
|
||||
if (empty($notification->service_description)) {
|
||||
$detailLink = $this->href('monitoring/show/host', array('host' => $notification->host_name));
|
||||
} else {
|
||||
$detailLink = $this->href('monitoring/show/host', array(
|
||||
'host' => $notification->host_name,
|
||||
'service' => $notification->service_description,
|
||||
'notification_id' => $notification->notification_internal_id
|
||||
)
|
||||
);
|
||||
}
|
||||
?>
|
||||
<tr <?= ($this->activeRowHref === $detailLink) ? 'class="active"' : ''; ?>>
|
||||
<td>
|
||||
<a href="<?= $detailLink; ?>" style="visibility:hidden"></a>
|
||||
<a href="<?= $this->href('monitoring/show/host', array('host' => $notification->host_name)); ?>">
|
||||
<?= $notification->host_name ?>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?= $this->href('monitoring/show/host', array(
|
||||
'host' => $notification->host_name,
|
||||
'service' => $notification->service_description
|
||||
)
|
||||
); ?>">
|
||||
<?= empty($notification->service_description) ? '' : $notification->service_description; ?>
|
||||
</a>
|
||||
</td>
|
||||
<td><?= $formatter->getNotificationType($notification); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $notification->notification_start_time ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $notification->notification_contact ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $notification->notification_command ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->escape(substr(strip_tags($notification->notification_information), 0, 10000)); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<?php if (!empty($notifications)): ?>
|
||||
<div data-icinga-component="app/mainDetailGrid" data-icinga-grid-selection-type="single">
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
<?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)); ?>
|
||||
<table class="table table-condensed" >
|
||||
<tbody>
|
||||
<?php foreach ($notifications as $notification): ?>
|
||||
<?php
|
||||
if (isset($notification->service)) {
|
||||
$isService = true;
|
||||
$href = $this->href('monitoring/show/service', array(
|
||||
'host' => $notification->host,
|
||||
'service' => $notification->service
|
||||
));
|
||||
$stateName = strtolower($this->util()->getServiceStateName($notification->notification_state));
|
||||
} else {
|
||||
$isService = false;
|
||||
$href = $this->href('monitoring/show/host', array(
|
||||
'host' => $notification->host
|
||||
));
|
||||
$stateName = strtolower($this->util()->getHostStateName($notification->notification_state));
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class="border-status-<?= $stateName ?>"><?= date('d.m. H:i', $notification->notification_start_time); ?></td>
|
||||
<td>
|
||||
<?php if ($isService): ?>
|
||||
<a href="<?= $href ?>"><?= $notification->service ?></a>
|
||||
<small>
|
||||
on <?= $notification->host ?>
|
||||
</small>
|
||||
<?php $isService = true; ?>
|
||||
<?php else: ?>
|
||||
<a href="<?= $href ?>"><?= $notification->host ?></a>
|
||||
<?php endif; ?>
|
||||
<br />
|
||||
<?= $this->escape(substr(strip_tags($notification->notification_output), 0, 10000)); ?>
|
||||
<br />
|
||||
<small>
|
||||
Sent to
|
||||
<a href="<?= $this->href('monitoring/show/contact', array('contact' => $notification->notification_contact)); ?>">
|
||||
<?= $notification->notification_contact ?>
|
||||
</a>
|
||||
</small>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
No notifications yet
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -37,23 +37,19 @@ class NotificationQuery extends IdoQuery
|
|||
*/
|
||||
protected $columnMap = array(
|
||||
'notification' => array(
|
||||
'notification_type' => 'n.notification_type',
|
||||
'notification_reason' => 'n.notification_reason',
|
||||
'notification_start_time' => 'n.start_time',
|
||||
'notification_information' => 'n.output',
|
||||
'notification_internal_id' => 'n.notification_id'
|
||||
'notification_output' => 'n.output',
|
||||
'notification_start_time' => 'UNIX_TIMESTAMP(n.start_time)',
|
||||
'notification_state' => 'n.state'
|
||||
),
|
||||
'objects' => array(
|
||||
'host_name' => 'o.name1',
|
||||
'service_description' => 'o.name2',
|
||||
'service' => 'o.name2',
|
||||
'host_name' => 'o.name1'
|
||||
'host' => 'o.name1',
|
||||
'service' => 'o.name2'
|
||||
),
|
||||
'contact' => array(
|
||||
'notification_contact' => 'c_o.name1'
|
||||
'notification_contact' => 'c_o.name1'
|
||||
),
|
||||
'command' => array(
|
||||
'notification_command' => 'cmd_o.name1'
|
||||
'notification_command' => 'cmd_o.name1'
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -14,17 +14,13 @@ class Notification extends DataView
|
|||
public function getColumns()
|
||||
{
|
||||
return array(
|
||||
'host_name',
|
||||
'service_description',
|
||||
'notification_type',
|
||||
'notification_reason',
|
||||
'host',
|
||||
'service',
|
||||
'notification_state',
|
||||
'notification_start_time',
|
||||
'notification_contact',
|
||||
'notification_information',
|
||||
'notification_command',
|
||||
'host',
|
||||
'service'
|
||||
'notification_internal_id'
|
||||
'notification_output',
|
||||
'notification_command'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue