diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:46:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:46:43 +0000 |
commit | 3e02d5aff85babc3ffbfcf52313f2108e313aa23 (patch) | |
tree | b01f3923360c20a6a504aff42d45670c58af3ec5 /modules/monitoring/application/views/scripts/timeline | |
parent | Initial commit. (diff) | |
download | icingaweb2-3e02d5aff85babc3ffbfcf52313f2108e313aa23.tar.xz icingaweb2-3e02d5aff85babc3ffbfcf52313f2108e313aa23.zip |
Adding upstream version 2.12.1.upstream/2.12.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules/monitoring/application/views/scripts/timeline')
-rw-r--r-- | modules/monitoring/application/views/scripts/timeline/index.phtml | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/modules/monitoring/application/views/scripts/timeline/index.phtml b/modules/monitoring/application/views/scripts/timeline/index.phtml new file mode 100644 index 0000000..cab18eb --- /dev/null +++ b/modules/monitoring/application/views/scripts/timeline/index.phtml @@ -0,0 +1,196 @@ +<?php + +use Icinga\Util\Csp; +use Icinga\Web\Url; +use Icinga\Util\Color; +use ipl\Web\Style; + +$groupInfo = $timeline->getGroupInfo(); +$firstRow = ! $beingExtended; +$timelineStyle = (new Style()) + ->setNonce(Csp::getStyleNonce()) + ->setModule('monitoring'); + +if (! $beingExtended && !$this->compact): ?> +<div class="controls"> + <?= $this->tabs; ?> + <div class="dontprint"> + <?= $intervalBox; ?> + </div> + <div class="timeline-legend"> + <h2><?= $this->translate('Legend'); ?></h2> +<?php foreach ($groupInfo as $labelAndClass): ?> + <span class="<?= $labelAndClass['class'] ?>"> + <span><?= $labelAndClass['label']; ?></span> + </span> +<?php endforeach ?> + </div> +</div> +<?php endif ?> +<?php if (! $beingExtended): ?> +<div class="content" data-base-target="_next"> + <div class="timeline"> +<?php endif ?> +<?php if ($switchedContext): ?> + <hr> +<?php endif ?> +<?php foreach ($timeline as $timeInfo): + switch ($intervalBox->getInterval()) { + case '1d': + $titleTime = sprintf( + $this->translate('on %s', 'timeline.link.title.time'), + $timeInfo[0]->end->format('d/m/Y') + ); + break; + case '1w': + $titleTime = sprintf( + $this->translate('in week %s of %s', 'timeline.link.title.week.and.year'), + $timeInfo[0]->end->format('W'), + $timeInfo[0]->end->format('Y') + ); + break; + case '1m': + $titleTime = sprintf( + $this->translate('in %s', 'timeline.link.title.month.and.year'), + $timeInfo[0]->end->format('F Y') + ); + break; + case '1y': + $titleTime = sprintf( + $this->translate('in %s', 'timeline.link.title.year'), + $timeInfo[0]->end->format('Y') + ); + break; + default: + $titleTime = sprintf( + $this->translate('between %s and %s', 'timeline.link.title.datetime.twice'), + $timeInfo[0]->end->format('d/m/Y g:i A'), + $timeInfo[0]->start->format('d/m/Y g:i A') + ); + } ?> + <div class="timeframe"> + <span><?= $this->qlink( + $timeInfo[0]->end->format($intervalFormat), + 'monitoring/list/eventhistory', + array( + 'timestamp<' => $timeInfo[0]->start->getTimestamp(), + 'timestamp>' => $timeInfo[0]->end->getTimestamp() + ), + array('title' => sprintf( + $this->translate('List all event records registered %s', 'timeline.link.title'), + $titleTime + )), + false + ); ?></span> +<?php foreach ($groupInfo as $groupName => $labelAndColor): ?> +<?php if (array_key_exists($groupName, $timeInfo[1])): ?> +<?php +$styleId = uniqid(); +$circleWidth = $timeline->calculateCircleWidth($timeInfo[1][$groupName], 2); +$extrapolatedCircleWidth = $timeline->getExtrapolatedCircleWidth($timeInfo[1][$groupName], 2); +?> +<?php if ($firstRow && $extrapolatedCircleWidth !== $circleWidth): ?> + <?php + $timelineStyle->add( + "#circle-box-$styleId", + ['width' => $extrapolatedCircleWidth] + ); + + $timelineStyle->add( + "#outer-circle-$styleId", + [ + 'width' => $extrapolatedCircleWidth, + 'height' => $extrapolatedCircleWidth, + 'margin-top' => sprintf( + '-%Fem', + (float)substr($extrapolatedCircleWidth, 0, -2) / 2 + ) + ] + ); + + ?> + <div id="circle-box-<?= $styleId ?>" class="circle-box"> + <div id="outer-circle-<?= $styleId ?>" class="outer-circle extrapolated <?= $timeInfo[1][$groupName]->getClass() ?>"> +<?php else: ?> + <?php + $timelineStyle->add( + "#circle-box-$styleId", + ['width' => $circleWidth] + ); + + $timelineStyle->add( + "#outer-circle-$styleId", + [ + 'width' => $circleWidth, + 'height' => $circleWidth, + 'margin-top' => sprintf( + '-%Fem', + (float)substr($circleWidth, 0, -2) / 2 + ) + ] + ); + + ?> + <div id="circle-box-<?= $styleId ?>" class="circle-box"> + <div id="outer-circle-<?= $styleId ?>" class="outer-circle"> +<?php endif ?> +<?php +$timelineStyle->add( + "#inner-circle-$styleId", + [ + 'width' => $circleWidth, + 'height' => $circleWidth, + 'margin-top' => sprintf( + '-%Fem', + (float)substr($circleWidth, 0, -2) / 2 + ), + 'margin-left' => sprintf( + '-%Fem', + (float)substr($circleWidth, 0, -2) / 2 + ), + ] +); +?> + <?= $this->qlink( + '', + $timeInfo[1][$groupName]->getDetailUrl(), + array( + 'type' => $groupName, + 'timestamp<' => $timeInfo[0]->start->getTimestamp(), + 'timestamp>' => $timeInfo[0]->end->getTimestamp() + ), + array( + 'title' => sprintf( + $this->translate('List %u %s registered %s', 'timeline.link.title'), + $timeInfo[1][$groupName]->getValue(), + strtolower($labelAndColor['label']), + $titleTime + ), + 'id' => "inner-circle-$styleId", + 'class' => "inner-circle " . $timeInfo[1][$groupName]->getClass() + ) + ); ?> + </div> + </div> +<?php endif ?> +<?php endforeach ?> + </div> + <?php $firstRow = false; ?> +<?php endforeach ?> + <a aria-hidden="true" id="end" href="<?= Url::fromRequest()->remove( + array( + 'timestamp<', + 'timestamp>' + ) + )->overwriteParams( + array( + 'start' => $nextRange->getStart()->getTimestamp(), + 'end' => $nextRange->getEnd()->getTimestamp(), + 'extend' => 1 + ) + ); ?>"></a> +<?php if (!$beingExtended): ?> + </div> +</div> +<?php endif ?> +<?= $timelineStyle; ?> |