monitoring: New layout for downtime views

refs #5543
This commit is contained in:
Matthias Jentsch 2015-09-30 20:19:36 +02:00
parent 02a3f56481
commit 417c6bb1ea
9 changed files with 262 additions and 375 deletions

View File

@ -101,6 +101,6 @@ class DowntimesController extends Controller
)); ));
$delDowntimeForm->setRedirectUrl(Url::fromPath('monitoring/list/downtimes')); $delDowntimeForm->setRedirectUrl(Url::fromPath('monitoring/list/downtimes'));
$delDowntimeForm->setDowntimes($this->downtimes->fetchAll())->handleRequest(); $delDowntimeForm->setDowntimes($this->downtimes->fetchAll())->handleRequest();
$this->view->delDowntimeForm = $delDowntimeForm; $this->view->delAllDowntimeForm = $delDowntimeForm;
} }
} }

View File

@ -68,7 +68,7 @@ class DeleteDowntimeCommandForm extends CommandForm
'ignore' => true, 'ignore' => true,
'escape' => false, 'escape' => false,
'type' => 'submit', 'type' => 'submit',
'class' => 'link-like spinner', 'class' => 'action-link link',
'label' => $this->getView()->icon('trash'), 'label' => $this->getView()->icon('trash'),
'title' => $this->translate('Delete this downtime'), 'title' => $this->translate('Delete this downtime'),
'decorators' => array('ViewHelper') 'decorators' => array('ViewHelper')

View File

@ -4,7 +4,9 @@
<?= $this->tabs; ?> <?= $this->tabs; ?>
<?php endif ?> <?php endif ?>
<?= $this->render('partials/downtime/downtime-header.phtml'); ?> <table>
<tr> <?= $this->render('partials/downtime/downtime-header.phtml') ?> </tr>
</table>
</div> </div>
<div class="content object-command"> <div class="content object-command">
<?= $delDowntimeForm; ?> <?= $delDowntimeForm; ?>

View File

@ -3,119 +3,171 @@
<?= $this->tabs; ?> <?= $this->tabs; ?>
<?php endif ?> <?php endif ?>
<?= $this->render('partials/downtime/downtime-header.phtml'); ?> <table>
<tr> <?= $this->render('partials/downtime/downtime-header.phtml'); ?> </tr>
</table>
</div> </div>
<div class="content"> <div class="content"><h2><?= $this->translate('Details') ?></h2>
<h3><?= $this->translate('Downtime detail information') ?></h3> <table class="name-value-table">
<table class="avp"> <tbody>
<tbody>
<tr> <tr>
<th> <th>
<?= $this->isService ? $this->translate('Service') : $this->translate('Host') ?> <?= $this->isService ? $this->translate('Service') : $this->translate('Host') ?>
</th> </th>
<td data-base-target="_next"> <td data-base-target="_next">
<?php if ($this->isService): ?> <?php if ($this->isService): ?>
<?php <?php
$link = $this->link()->service( $link = $this->link()->service(
$downtime->service_description, $downtime->service_description,
$downtime->service_display_name, $downtime->service_display_name,
$downtime->host_name, $downtime->host_name,
$downtime->host_display_name $downtime->host_display_name
); );
$icon = $this->icon('service', $this->translate('Service')); $icon = $this->icon('service', $this->translate('Service'));
?> ?>
<?php else: ?> <?php else: ?>
<?php <?php
$icon = $this->icon('host', $this->translate('Host')); $icon = $this->icon('host', $this->translate('Host'));
$link = $this->link()->host($downtime->host_name, $downtime->host_display_name) $link = $this->link()->host($downtime->host_name, $downtime->host_display_name)
?> ?>
<?php endif ?> <?php endif ?>
<?= $icon ?> <?= $icon ?>
<?= $link ?> <?= $link ?>
</td> </td>
</tr> </tr>
<tr title="<?= $this->translate('The name of the person who scheduled this downtime'); ?>"> <tr title="<?= $this->translate('The name of the person who scheduled this downtime'); ?>">
<th><?= $this->translate('Author') ?></th> <th><?= $this->translate('Author') ?></th>
<td><?= $this->icon('user', $this->translate('User')) ?> <?= $this->escape($this->downtime->author_name) ?></td> <td><?= $this->icon('user', $this->translate('User')) ?> <?= $this->escape($this->downtime->author_name) ?></td>
</tr>
<tr title="<?= $this->translate('A comment, as entered by the author, associated with the scheduled downtime'); ?>">
<th><?= $this->translate('Comment') ?></th>
<td><?= $this->icon('comment', $this->translate('Comment')) ?> <?= $this->escape($this->downtime->comment) ?></td>
</tr>
<tr title="<?= $this->translate('Date and time this downtime was entered'); ?>">
<th><?= $this->translate('Entry Time') ?></th>
<td><?= $this->formatDateTime($this->downtime->entry_time) ?></td>
</tr>
<tr class="newsection">
<th><?= $this->escape(
$this->downtime->is_flexible ?
$this->translate('Flexible') : $this->translate('Fixed')
); ?></th>
<td>
<?= $this->escape(
$this->downtime->is_flexible ?
$this->translate('Flexible downtimes have a hard start and end time,'
. ' but also an additional restriction on the duration in which '
. ' the host or service may actually be down.') :
$this->translate('Fixed downtimes have a static start and end time.')
); ?>
</td>
</tr>
<tr title="<?= $this->translate('The date/time the scheduled downtime is'
. ' supposed to start. If this is a flexible (non-fixed) downtime, '
. 'this refers to the earliest possible time that the downtime'
. ' can start'); ?>">
<th><?= $this->translate('Scheduled start') ?></th>
<td><?= $this->formatDateTime($this->downtime->scheduled_start) ?></td>
</tr>
<tr title="<?= $this->translate('The date/time the scheduled downtime is '
. 'supposed to end. If this is a flexible (non-fixed) downtime, '
. 'this refers to the last possible time that the downtime can '
. 'start'); ?>">
<th><?= $this->translate('Scheduled end') ?></th>
<td><?= $this->formatDateTime($this->downtime->scheduled_end) ?></td>
</tr>
<?php if ($this->downtime->is_flexible): ?>
<tr title="<?= $this->translate('Indicates the number of seconds that the '
. 'scheduled downtime should last. This is usually only needed if'
. ' this is a flexible downtime, which can start at a variable '
. 'time, but lasts for the specified duration'); ?>">
<th tit><?= $this->translate('Duration') ?></th>
<td><?= $this->formatDuration($this->downtime->duration) ?></td>
</tr> </tr>
<tr title="<?= $this->translate('he date/time the scheduled downtime was' <tr title="<?= $this->translate('Date and time this downtime was entered'); ?>">
. ' actually started'); ?>"> <th><?= $this->translate('Entry Time') ?></th>
<th><?= $this->translate('Actual start time') ?></th> <td><?= $this->formatDateTime($this->downtime->entry_time) ?></td>
<td><?= $this->formatDateTime($downtime->start) ?></td> </tr>
</tr> <tr title="<?= $this->translate('A comment, as entered by the author, associated with the scheduled downtime'); ?>">
<tr title="<?= $this->translate('The date/time the scheduled downtime ' <th><?= $this->translate('Comment') ?></th>
. 'actually ended'); ?>"> <td class="comment-text"><?= $this->escape($this->downtime->comment) ?></td>
<th><?= $this->translate('Actual end time') ?></th> </tr>
<td><?= $this->formatDateTime($downtime->end) ?></td> </tbody>
</tr> </table>
<?php endif; ?>
<tr class="newsection"> <h2> <?= $this->translate('Duration') ?> </h2>
<th><?= $this->translate('In effect') ?></th>
<td>
<?= $this->escape(
$this->downtime->is_in_effect ?
$this->translate('Yes') : $this->translate('No')
);
?>
</td>
</tr>
<?php if (isset($delDowntimeForm)): // Form is unset if the current user lacks the respective permission ?> <table class="name-value-table">
<tr class="newsection"> <tbody>
<th><?= $this->translate('Commands') ?></th> <tr class="newsection">
<td> <th><?= $this->escape(
<?= $delDowntimeForm ?> $this->downtime->is_flexible ?
</td> $this->translate('Flexible') : $this->translate('Fixed')
</tr> ); ?>
<?php endif ?> <?= $this->icon('info-circled', $this->downtime->is_flexible ?
</tbody> $this->translate('Flexible downtimes have a hard start and end time,'
</table> . ' but also an additional restriction on the duration in which '
. ' the host or service may actually be down.') :
$this->translate('Fixed downtimes have a static start and end time.')) ?>
</th>
<td>
<?php if ($downtime->is_flexible): ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDuration($downtime->duration),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
) ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDateTime($downtime->scheduled_start),
$this->formatDateTime($downtime->scheduled_end),
$this->formatDuration($downtime->duration)
) ?>
<?php endif ?>
<?php else: ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
) ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
) ?>
<?php endif ?>
<?php endif ?>
</td>
</tr>
<tr title="<?= $this->translate('The date/time the scheduled downtime is'
. ' supposed to start. If this is a flexible (non-fixed) downtime, '
. 'this refers to the earliest possible time that the downtime'
. ' can start'); ?>">
<th><?= $this->translate('Scheduled start') ?></th>
<td><?= $this->formatDateTime($this->downtime->scheduled_start) ?></td>
</tr>
<tr title="<?= $this->translate('The date/time the scheduled downtime is '
. 'supposed to end. If this is a flexible (non-fixed) downtime, '
. 'this refers to the last possible time that the downtime can '
. 'start'); ?>">
<th><?= $this->translate('Scheduled end') ?></th>
<td><?= $this->formatDateTime($this->downtime->scheduled_end) ?></td>
</tr>
<?php if ($this->downtime->is_flexible): ?>
<tr title="<?= $this->translate('Indicates the number of seconds that the '
. 'scheduled downtime should last. This is usually only needed if'
. ' this is a flexible downtime, which can start at a variable '
. 'time, but lasts for the specified duration'); ?>">
<th tit><?= $this->translate('Duration') ?></th>
<td><?= $this->formatDuration($this->downtime->duration) ?></td>
</tr>
<tr title="<?= $this->translate('he date/time the scheduled downtime was'
. ' actually started'); ?>">
<th><?= $this->translate('Actual start time') ?></th>
<td><?= $this->formatDateTime($downtime->start) ?></td>
</tr>
<tr title="<?= $this->translate('The date/time the scheduled downtime '
. 'actually ended'); ?>">
<th><?= $this->translate('Actual end time') ?></th>
<td><?= $this->formatDateTime($downtime->end) ?></td>
</tr>
<?php endif; ?>
<tr class="newsection">
<th><?= $this->translate('In effect') ?></th>
<td>
<?= $this->escape(
$this->downtime->is_in_effect ?
$this->translate('Yes') : $this->translate('No')
);
?>
</td>
</tr>
<?php if (isset($delDowntimeForm)): // Form is unset if the current user lacks the respective permission ?>
<tr class="newsection">
<th><?= $this->translate('Commands') ?></th>
<td>
<?= $delDowntimeForm ?>
</td>
</tr>
<?php endif ?>
</tbody>
</table>
</div> </div>

View File

@ -8,5 +8,5 @@
</div> </div>
<div class="content object-command"> <div class="content object-command">
<?= $delDowntimeForm ?> <?= $delAllDowntimeForm ?>
</div> </div>

View File

@ -6,7 +6,7 @@
</div> </div>
<div class="content multi-commands"> <div class="content multi-commands">
<h3><?= $this->icon('reschedule') ?><?= $this->translate('Commands') ?></h3> <h2> <?= $this->translate('Commands') ?> </h2>
<?= $this->qlink( <?= $this->qlink(
sprintf($this->translate('Remove all %d scheduled downtimes'), $downtimes->count()), sprintf($this->translate('Remove all %d scheduled downtimes'), $downtimes->count()),
$removeAllLink, $removeAllLink,

View File

@ -11,137 +11,34 @@ if (! $this->compact): ?>
<?= $this->render('list/components/selectioninfo.phtml'); ?> <?= $this->render('list/components/selectioninfo.phtml'); ?>
</div> </div>
<h1><?= count($downtimes) ?> <?= $this->translate('Downtimes') ?></h1> <h1><?= count($downtimes) ?> <?= $this->translate('Downtimes') ?></h1>
<?= $this->sortBox; ?> <?= $this->sortBox ?>
<?= $this->limiter; ?> <?= $this->limiter ?>
<?= $this->paginator; ?> <?= $this->paginator ?>
<?= $this->filterEditor; ?> <?= $this->filterEditor ?>
</div> </div>
<?php endif ?> <?php endif ?>
<div class="content"> <div class="content">
<table data-base-target="_next" <table data-base-target="_next"
class="action multiselect" class="action action-table multiselect"
data-icinga-multiselect-url="<?= $this->href('monitoring/downtimes/show'); ?>" data-icinga-multiselect-url="<?= $this->href('monitoring/downtimes/show'); ?>"
data-icinga-multiselect-controllers="<?= $this->href("monitoring/downtimes") ?>" data-icinga-multiselect-controllers="<?= $this->href("monitoring/downtimes") ?>"
data-icinga-multiselect-data="downtime_id"> data-icinga-multiselect-data="downtime_id">
<tbody> <tbody>
<?php foreach ($downtimes as $downtime): ?> <?php foreach ($downtimes as $downtime):
<?php
if (isset($downtime->service_description)) { if (isset($downtime->service_description)) {
$isService = true; $this->isService = true;
$stateName = Service::getStateText($downtime->service_state); $this->stateName = Service::getStateText($downtime->service_state);
} else { } else {
$isService = false; $this->isService = false;
$stateName = Host::getStateText($downtime->host_state); $this->stateName = Host::getStateText($downtime->host_state);
} }
$this->downtime = $downtime;
$this->displayComment = true;
?> ?>
<tr class="state <?= $stateName; ?><?= $downtime->is_in_effect ? ' handled' : ''; ?>"> <tr>
<td class="state"> <?= $this->render('partials/downtime/downtime-header.phtml'); ?>
<?php if ($downtime->start <= time() && ! $downtime->is_in_effect): ?> </tr>
<strong><?= $this->translate('Ends'); ?></strong> <?php endforeach ?>
<br>
<?= $this->timeUntil($downtime->is_flexible ? $downtime->scheduled_end : $downtime->end, $this->compact) ?>
<?php else: ?>
<strong><?= $downtime->is_in_effect ? $this->translate('Expires') : $this->translate('Starts'); ?></strong>
<br>
<?= $this->timeUntil($downtime->is_in_effect ? $downtime->end : $downtime->start, $this->compact) ?>
<?php endif; ?>
</td>
<td>
<?php if ($isService): ?>
<?= $this->icon('service', $this->translate('Service')); ?> <?= $this->qlink(
$this->escape($downtime->host_display_name) . ': ' . $this->escape($downtime->service_display_name),
'monitoring/downtime/show',
array('downtime_id' => $downtime->id),
array(
'title' => sprintf(
$this->translate('Show detailed information for this downtime scheduled for service %s on host %s'),
$downtime->service_display_name,
$downtime->host_display_name
),
'class' => 'rowaction'
)
); ?>
<?php else: ?>
<?= $this->icon('host', $this->translate('host')); ?> <?= $this->qlink(
$this->escape($downtime->host_display_name),
'monitoring/downtime/show',
array('downtime_id' => $downtime->id),
array(
'title' => sprintf(
$this->translate('Show detailed information for this downtime scheduled for host %s'),
$downtime->host_display_name
),
'class' => 'rowaction'
)
); ?>
<?php endif ?>
<br>
<?= $this->icon('comment', $this->translate('Comment')); ?> [<?= $this->escape($downtime->author_name) ?>] <?= $this->escape($downtime->comment) ?>
<br>
<small>
<?php if ($downtime->is_flexible): ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDuration($downtime->duration),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
); ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDateTime($downtime->scheduled_start),
$this->formatDateTime($downtime->scheduled_end),
$this->formatDuration($downtime->duration)
); ?>
<?php endif ?>
<?php else: ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
); ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
); ?>
<?php endif ?>
<?php endif ?>
</small>
</td>
<?php if (isset($delDowntimeForm)): // Form is unset if the current user lacks the respective permission ?>
<td style="width: 2em" data-base-target="_self">
<?php
$delDowntimeForm = clone $delDowntimeForm;
$delDowntimeForm->populate(
array(
'downtime_id' => $downtime->id,
'downtime_is_service' => isset($downtime->service_description)
)
);
echo $delDowntimeForm;
?>
</td>
<?php endif ?>
</tr>
<?php endforeach ?>
</tbody> </tbody>
</table> </table>
<?php if (! $downtimes->hasResult()): ?> <?php if (! $downtimes->hasResult()): ?>

View File

@ -1,64 +1,72 @@
<table class="action"> <td class="state-col state-<?= $stateName; ?><?= $downtime->is_in_effect ? ' handled' : ''; ?>">
<tr class="state <?= $stateName; ?><?= $downtime->is_in_effect ? ' handled' : ''; ?>"> <?php if ($downtime->start <= time() && ! $downtime->is_in_effect): ?>
<td class="state"> <strong><?= $this->translate('Ends'); ?></strong>
<?php if ($downtime->start <= time() && ! $downtime->is_in_effect): ?> <p><?= $this->timeUntil($downtime->is_flexible ? $downtime->scheduled_end : $downtime->end, $this->compact) ?></p>
<strong><?= $this->translate('Ends'); ?></strong> <?php else: ?>
<br> <strong><?= $downtime->is_in_effect ? $this->translate('Expires') : $this->translate('Starts'); ?></strong>
<?= $this->timeUntil($downtime->is_flexible ? $downtime->scheduled_end : $downtime->end, $this->compact) ?> <p><?= $this->timeUntil($downtime->is_in_effect ? $downtime->end : $downtime->start, $this->compact) ?></p>
<?php else: ?> <?php endif; ?>
<strong><?= $downtime->is_in_effect ? $this->translate('Expires') : $this->translate('Starts'); ?></strong> </td>
<br> <td>
<?= $this->timeUntil($downtime->is_in_effect ? $downtime->end : $downtime->start, $this->compact) ?> <span class="comment-header">
<?php endif; ?> <?php if ($isService): ?>
</td> <?= $this->icon('service', $this->translate('Service')); ?> <?= $this->qlink(
<td> $this->escape($downtime->host_display_name) . ': ' . $this->escape($downtime->service_display_name),
<small> 'monitoring/downtime/show',
<?php if ($downtime->is_flexible): ?> array('downtime_id' => $downtime->id),
<?php if ($downtime->is_in_effect): ?> array(
<?= sprintf( 'title' => sprintf(
$this->isService $this->translate('Show detailed information for this downtime scheduled for service %s on host %s'),
? $this->translate('This flexible service downtime was started on %s at %s and lasts for %s until %s at %s.') $downtime->service_display_name,
: $this->translate('This flexible host downtime was started on %s at %s and lasts for %s until %s at %s.'), $downtime->host_display_name
$this->formatDate($downtime->start), ),
$this->formatTime($downtime->start), 'class' => 'rowaction'
$this->formatDuration($downtime->duration), )
$this->formatDate($downtime->end), ); ?>
$this->formatTime($downtime->end) <?php else: ?>
); ?> <?= $this->icon('host', $this->translate('host')); ?> <?= $this->qlink(
<?php else: ?> $this->escape($downtime->host_display_name),
<?= sprintf( 'monitoring/downtime/show',
$this->isService array('downtime_id' => $downtime->id),
? $this->translate('This flexible service downtime has been scheduled to start between %s - %s and to last for %s.') array(
: $this->translate('This flexible host downtime has been scheduled to start between %s - %s and to last for %s.'), 'title' => sprintf(
$this->formatDateTime($downtime->scheduled_start), $this->translate('Show detailed information for this downtime scheduled for host %s'),
$this->formatDateTime($downtime->scheduled_end), $downtime->host_display_name
$this->formatDuration($downtime->duration) ),
); ?> 'class' => 'rowaction'
<?php endif ?> )
<?php else: ?> ); ?>
<?php if ($downtime->is_in_effect): ?> <?php endif ?>
<?= sprintf(
$this->isService <?= $this->translate('by') ?>
? $this->translate('This fixed service downtime was started on %s at %s and expires on %s at %s.') <?= $this->escape($downtime->author_name) ?>
: $this->translate('This fixed host downtime was started on %s at %s and expires on %s at %s.'),
$this->formatDate($downtime->start), <span class="pull-right">
$this->formatTime($downtime->start), <?php if ($downtime->is_flexible): ?>
$this->formatDate($downtime->end), <?= $this->icon('magic', $this->translate('This downtime is flexible')); ?>
$this->formatTime($downtime->end) <?php endif ?>
); ?>
<?php else: ?> <?php if ($downtime->is_in_effect): ?>
<?= sprintf( <?= $this->icon('plug', $this->translate('This downtime is in effect')); ?>
$this->isService <?php endif ?>
? $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.'), <?php if (isset($delDowntimeForm)): // Form is unset if the current user lacks the respective permission ?>
$this->formatDate($downtime->start), <?php
$this->formatTime($downtime->start), $delDowntimeForm = clone $delDowntimeForm;
$this->formatDate($downtime->end), $delDowntimeForm->populate(
$this->formatTime($downtime->end) array(
); ?> 'downtime_id' => $downtime->id,
<?php endif ?> 'downtime_is_service' => isset($downtime->service_description)
<?php endif ?> )
</small> );
</td> echo $delDowntimeForm;
</tr> ?>
</table> <?php endif ?>
</span>
</span>
<?php if (isset ($displayComment) && $displayComment): ?>
<p class="comment-text">
<?= $this->escape($downtime->comment) ?>
</p>
<?php endif ?>
</td>

View File

@ -10,89 +10,17 @@ use Icinga\Module\Monitoring\Object\Service;
break; break;
} }
if ($downtime->objecttype === 'service') { if ($downtime->objecttype === 'service') {
$isService = true; $this->isService = true;
$stateText = Service::getStateText($downtime->service_state); $this->stateName = Service::getStateText($downtime->service_state);
} else { } else {
$isService = false; $this->isService = false;
$stateText = Host::getStateText($downtime->host_state); $this->stateName = Host::getStateText($downtime->host_state);
} }
$this->downtime = $downtime;
$this->displayComment = false;
?> ?>
<tr class="state <?= $stateText . ($downtime->is_in_effect ? ' handled' : '') ?>"> <tr>
<td class="state"> <?= $this->render('partials/downtime/downtime-header.phtml') ?>
<?php if ($downtime->start <= time() && ! $downtime->is_in_effect): ?>
<strong><?= $this->translate('Ends') ?></strong>
<br>
<?= $this->timeUntil(
$downtime->is_flexible ? $downtime->scheduled_end : $downtime->end, $this->compact
) ?>
<?php else: ?>
<strong>
<?= $downtime->is_in_effect ? $this->translate('Expires') : $this->translate('Starts') ?>
</strong>
<br>
<?= $this->timeUntil($downtime->is_in_effect ? $downtime->end : $downtime->start, $this->compact) ?>
<?php endif ?>
</td>
<td class="name oneline">
<?php if ($isService): ?>
<?= $this->icon('service', $this->translate('Service')) ?>
<?= $this->link()->service(
$downtime->service_description,
$downtime->service_display_name,
$downtime->host_name,
$downtime->host_display_name
) ?>
<?php else: ?>
<?= $this->icon('host', $this->translate('Host')) ?>
<?= $this->link()->host($downtime->host_name, $downtime->host_display_name) ?>
<?php endif ?>
<br>
<?php if ($downtime->is_flexible): ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDuration($downtime->duration),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
) ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDateTime($downtime->scheduled_start),
$this->formatDateTime($downtime->scheduled_end),
$this->formatDuration($downtime->duration)
) ?>
<?php endif ?>
<?php else: ?>
<?php if ($downtime->is_in_effect): ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->start),
$this->formatTime($downtime->start),
$this->formatDate($downtime->end),
$this->formatTime($downtime->end)
) ?>
<?php else: ?>
<?= sprintf(
$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.'),
$this->formatDate($downtime->scheduled_start),
$this->formatTime($downtime->scheduled_start),
$this->formatDate($downtime->scheduled_end),
$this->formatTime($downtime->scheduled_end)
) ?>
<?php endif ?>
<?php endif ?>
</td>
</tr> </tr>
<?php endforeach ?> <?php endforeach ?>
</tbody> </tbody>