Display additional downtime info in multiselection detail view

refs #8902
This commit is contained in:
Matthias Jentsch 2015-04-23 16:35:35 +02:00
parent a87e1f91d9
commit 07c5e67304
2 changed files with 138 additions and 39 deletions

View File

@ -23,8 +23,6 @@ class Monitoring_DowntimesController extends Controller
{ {
protected $downtimes; protected $downtimes;
protected $isService;
protected $filter; protected $filter;
/** /**
@ -72,6 +70,20 @@ class Monitoring_DowntimesController extends Controller
'url' =>'monitoring/downtimes/show' 'url' =>'monitoring/downtimes/show'
) )
)->activate('downtimes')->extend(new DashboardAction()); )->activate('downtimes')->extend(new DashboardAction());
foreach ($this->downtimes as $downtime) {
if (isset($downtime->service_description)) {
$downtime->isService = true;
} else {
$downtime->isService = false;
}
if ($downtime->isService) {
$downtime->stateText = Service::getStateText($downtime->service_state);
} else {
$downtime->stateText = Host::getStateText($downtime->host_state);
}
}
} }
public function showAction() public function showAction()
@ -80,9 +92,6 @@ class Monitoring_DowntimesController extends Controller
return; return;
} }
$this->view->downtimes = $this->downtimes; $this->view->downtimes = $this->downtimes;
$this->view->isService = $this->isService;
// $this->view->delDowntimeForm = $this->createDelDowntimeForm();
$this->view->listAllLink = Url::fromPath('monitoring/list/downtimes') $this->view->listAllLink = Url::fromPath('monitoring/list/downtimes')
->setQueryString($this->filter->toQueryString()); ->setQueryString($this->filter->toQueryString());
$this->view->removeAllLink = Url::fromPath('monitoring/downtimes/removeAll') $this->view->removeAllLink = Url::fromPath('monitoring/downtimes/removeAll')
@ -90,11 +99,6 @@ class Monitoring_DowntimesController extends Controller
} }
public function removeAllAction() public function removeAllAction()
{
}
private function createDelDowntimeForm()
{ {
$delDowntimeForm = new DeleteDowntimeCommandForm(); $delDowntimeForm = new DeleteDowntimeCommandForm();
$delDowntimeForm->setObjects($this->downtimes); $delDowntimeForm->setObjects($this->downtimes);

View File

@ -9,24 +9,119 @@
<?= $this->tabs; ?> <?= $this->tabs; ?>
<?php endif ?> <?php endif ?>
<h1 data-base-target="_next"> <h1>
<?= sprintf('%d Downtimes', count($downtimes)) ?> <?= sprintf($this->translate('%d Downtimes'), count($downtimes)) ?>
<?= count($downtimes) > 5 ?
sprintf($this->translate('(%d not shown)'), count ($downtimes) - 5)
: '';
?>
</h1> </h1>
</div> <p>
<table class="action">
<tbody>
<?php $i = 0; foreach ($downtimes as $downtime):
if (++ $i > 5) {
continue;
} ?>
<tr class="state <?= $downtime->stateText ?>">
<td class="state">
<strong><?= $downtime->is_in_effect ? $this->translate('Expires') : $this->translate('Starts'); ?></strong>
<br>
<?=
$this->dateTimeRenderer(
($downtime->is_in_effect ? $downtime->end : $downtime->start),
true
)->render(
$this->translate('on %s', 'datetime'),
$this->translate('at %s', 'time'),
$this->translate('in %s', 'timespan')
);
?>
</td>
<td class="name oneline">
<?php if ($downtime->isService): ?>
<?= $this->icon('service') ?>
<b><?= $downtime->service ?> on <?= $downtime->host_name ?>.</b>
<?php else: ?>
<?= $this->icon('host') ?>
<b><?= $downtime->host_name ?>.</b>
<?php endif; ?>
<div class="content"> <?php if ($downtime->is_flexible): ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$this->isService
? $this->translate('This flexible service downtime was started on %s at %s and lasts for %s until %s at %s.')
: $this->translate('This flexible host downtime was started on %s at %s and lasts for %s until %s at %s.'),
date('d.m.y', $downtime->start),
date('H:i', $downtime->start),
$this->format()->duration($downtime->duration),
date('d.m.y', $downtime->end),
date('H:i', $downtime->end)
); ?>
<?php else: ?>
<?= sprintf(
$this->isService
? $this->translate('This flexible service downtime has been scheduled to start between %s - %s and to last for %s.')
: $this->translate('This flexible host downtime has been scheduled to start between %s - %s and to last for %s.'),
date('d.m.y H:i', $downtime->scheduled_start),
date('d.m.y H:i', $downtime->scheduled_end),
$this->format()->duration($downtime->duration)
); ?>
<?php endif ?>
<?php else: ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$this->isService
? $this->translate('This fixed service downtime was started on %s at %s and expires on %s at %s.')
: $this->translate('This fixed host downtime was started on %s at %s and expires on %s at %s.'),
date('d.m.y', $downtime->start),
date('H:i', $downtime->start),
date('d.m.y', $downtime->end),
date('H:i', $downtime->end)
); ?>
<?php else: ?>
<?= sprintf(
$this->isService
? $this->translate('This fixed service downtime has been scheduled to start on %s at %s and to end on %s at %s.')
: $this->translate('This fixed host downtime has been scheduled to start on %s at %s and to end on %s at %s.'),
date('d.m.y', $downtime->scheduled_start),
date('H:i', $downtime->scheduled_start),
date('d.m.y', $downtime->scheduled_end),
date('H:i', $downtime->scheduled_end)
); ?>
<?php endif ?>
<?php endif ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<p> <p>
<?= $this->translate('You have selected') ?>
<?= $this->qlink( <?= $this->qlink(
sprintf($this->translate('%d downtimes'), count($downtimes)), sprintf($this->translate('List all %d downtimes'), count($downtimes)),
$listAllLink, $listAllLink,
null, null,
array('title' => $this->translate('List all selected downtimes.')) array(
'title' => $this->translate('List all'),
'data-base-target' => "_next"
)
) ?> ) ?>
</p>
</p>
</div>
<div class="content">
<h3><?= $this->icon('reschedule') ?> <?= $this->translate('Commands') ?> </h3>
<p>
<?= sprintf(
$this->translate('Issue commands to all %s selected downtimes.'),
'<b>' . count($downtimes) . '</b>'
)
?>
<div> <div>
<?= $this->qlink( <?= $this->qlink(
sprintf( sprintf(
$this->translate('Remove all %d downtimes.'), $this->translate('Remove all %d scheduled downtimes'),
count($downtimes) count($downtimes)
), ),
$removeAllLink, $removeAllLink,