diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
commit | 8ca6cc32b2c789a3149861159ad258f2cb9491e3 (patch) | |
tree | 2492de6f1528dd44eaa169a5c1555026d9cb75ec /modules/setup/application/views/scripts/index | |
parent | Initial commit. (diff) | |
download | icingaweb2-8ca6cc32b2c789a3149861159ad258f2cb9491e3.tar.xz icingaweb2-8ca6cc32b2c789a3149861159ad258f2cb9491e3.zip |
Adding upstream version 2.11.4.upstream/2.11.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules/setup/application/views/scripts/index')
3 files changed, 188 insertions, 0 deletions
diff --git a/modules/setup/application/views/scripts/index/index.phtml b/modules/setup/application/views/scripts/index/index.phtml new file mode 100644 index 0000000..b2b3bda --- /dev/null +++ b/modules/setup/application/views/scripts/index/index.phtml @@ -0,0 +1,153 @@ +<?php + +use Icinga\Web\Notification; + +$pages = $wizard->getPages(); +$finished = isset($success); +$configPages = array_slice($pages, 3, count($pages) - 4, true); +$currentPos = array_search($wizard->getCurrentPage(), $pages, true); +list($configPagesLeft, $configPagesRight) = array_chunk($configPages, (int)(count($configPages) / 2), true); + +$visitedPages = array_keys($wizard->getPageData()); +$maxProgress = max(array_merge([0], array_keys(array_filter( + $pages, + function ($page) use ($visitedPages) { return in_array($page->getName(), $visitedPages); } +)))); + +?> +<div id="setup-content-wrapper" data-base-target="layout"> + <div class="setup-header"> + <?= $this->img('img/icinga-logo-big.png'); ?> + <div class="progress-bar"> + <div class="step" style="width: 10%;"> + <h1><?= $this->translate('Welcome', 'setup.progress'); ?></h1> + <?php $stateClass = $finished || $currentPos > 0 ? 'complete' : ( + $maxProgress > 0 ? 'visited' : 'active' + ); ?> + <table><tbody><tr> + <td class="left"></td> + <td class="middle"><div class="bubble <?= $stateClass; ?>"></div></td> + <td class="right"><div class="line right <?= $stateClass; ?>"></div></td> + </tr></tbody></table> + </div> + <div class="step" style="width: 10%;"> + <h1><?= $this->translate('Modules', 'setup.progress'); ?></h1> + <?php $stateClass = $finished || $currentPos > 1 ? ' complete' : ( + $maxProgress > 1 ? ' visited' : ( + $currentPos === 1 ? ' active' : '' + ) + ); ?> + <table><tbody><tr> + <td class="left"><div class="line left<?= $stateClass; ?>"></div></td> + <td class="middle"><div class="bubble <?= $stateClass; ?>"></div></td> + <td class="right"><div class="line right <?= $stateClass; ?>"></div></td> + </tr></tbody></table> + <?php if (($maxProgress < $currentPos && $currentPos === 1) || ($maxProgress >= $currentPos && $maxProgress === 1)): ?> + <?= $this->restartForm ?> + <?php endif ?> + </div> + <div class="step" style="width: 10%;"> + <h1><?= $this->translate('Requirements', 'setup.progress'); ?></h1> + <?php $stateClass = $finished || $currentPos > 2 ? ' complete' : ( + $maxProgress > 2 ? ' visited' : ( + $currentPos === 2 ? ' active' : '' + ) + ); ?> + <table><tbody><tr> + <td class="left"><div class="line left<?= $stateClass; ?>"></div></td> + <td class="middle"><div class="bubble<?= $stateClass; ?>"></div></td> + <td class="right"><div class="line right<?= $stateClass; ?>"></div></td> + </tr></tbody></table> + <?php if (($maxProgress < $currentPos && $currentPos === 2) || ($maxProgress >= $currentPos && $maxProgress === 2)): ?> + <?= $this->restartForm ?> + <?php endif ?> + </div> + <div class="step" style="width: 60%;"> + <h1><?= $this->translate('Configuration', 'setup.progress'); ?></h1> + <table><tbody><tr> + <td class="left"> + <?php + $firstPage = current($configPagesLeft); + $lastPage = end($configPagesLeft); + $lineWidth = sprintf('%.2F', round(100 / count($configPagesLeft), 2, PHP_ROUND_HALF_DOWN)); + ?> + <?php foreach ($configPagesLeft as $pos => $page): ?> + <?php $stateClass = $finished || $pos < $currentPos ? ' complete' : ( + $pos < $maxProgress ? ' visited' : ($currentPos > 2 ? ' active' : '') + ); ?> + <?php if ($page === $firstPage): ?> + <div class="line left<?= $stateClass; ?>" style="float: left; width: <?= sprintf( + '%.2F', + 100 - (count($configPagesLeft) - 1) * $lineWidth + ); ?>%; margin-right: 0"></div> + <?php elseif ($page === $lastPage): ?> + <div class="line<?= $stateClass; ?>" style="float: left; width: <?= $lineWidth; ?>%; margin-right: -0.1em;"></div> + <?php else: ?> + <div class="line<?= $stateClass; ?>" style="float: left; width: <?= $lineWidth; ?>%;"></div> + <?php endif ?> + <?php endforeach ?> + </td> + <td class="middle"> + <div class="bubble<?= array_key_exists($currentPos, $configPagesLeft) ? ( + key($configPagesRight) <= $maxProgress ? ' visited' : ' active') : ( + $finished || $currentPos > 2 ? ' complete' : ( + key($configPagesRight) < $maxProgress ? ' visited' : '' + ) + ); ?>"></div> + </td> + <td class="right"> + <?php + $firstPage = current($configPagesRight); + $lastPage = end($configPagesRight); + $lineWidth = sprintf('%.2F', round(100 / count($configPagesRight), 2, PHP_ROUND_HALF_DOWN)); + ?> + <?php foreach ($configPagesRight as $pos => $page): ?> + <?php $stateClass = $finished || $pos < $currentPos ? ' complete' : ( + $pos < $maxProgress ? ' visited' : ($currentPos > 2 ? ' active' : '') + ); ?> + <?php if ($page === $firstPage): ?> + <div class="line<?= $stateClass; ?>" style="float: left; width: <?= $lineWidth; ?>%; margin-left: -0.1em;"></div> + <?php elseif ($page === $lastPage): ?> + <div class="line right<?= $stateClass; ?>" style="float: left; width: <?= sprintf( + '%.2F', + 100 - (count($configPagesRight) - 1) * $lineWidth + ); ?>%; margin-left: 0;"></div> + <?php else: ?> + <div class="line<?= $stateClass; ?>" style="float: left; width: <?= $lineWidth; ?>%;"></div> + <?php endif ?> + <?php endforeach ?> + </td> + </tr></tbody></table> + <?php if ($maxProgress > 2 || $currentPos > 2): ?> + <?= $this->restartForm ?> + <?php endif ?> + </div> + <div class="step" style="width: 10%;"> + <h1><?= $this->translate('Finish', 'setup.progress'); ?></h1> + <?php $stateClass = $finished ? ' complete' : ($pages[$currentPos] === end($pages) ? ' active' : ''); ?> + <table><tbody><tr> + <td class="left"><div class="line left<?= $stateClass; ?>"></div></td> + <td class="middle"><div class="bubble<?= $stateClass; ?>"></div></td> + <td class="right"></td> + </tr></tbody></table> + </div> + </div> + </div> + <div class="setup-content"> +<?php if ($finished): ?> + <?= $this->render('index/parts/finish.phtml'); ?> +<?php else: ?> + <?= $this->render('index/parts/wizard.phtml'); ?> +<?php endif ?> + </div> +</div> +<div id="footer"> + <ul role="alert" id="notifications"><?php + $notifications = Notification::getInstance(); + if ($notifications->hasMessages()) { + foreach ($notifications->popMessages() as $m) { + echo '<li class="' . $m->type . '">' . $this->escape($m->message) . '</li>'; + } + } + ?></ul> +</div> diff --git a/modules/setup/application/views/scripts/index/parts/finish.phtml b/modules/setup/application/views/scripts/index/parts/finish.phtml new file mode 100644 index 0000000..dc5ba1c --- /dev/null +++ b/modules/setup/application/views/scripts/index/parts/finish.phtml @@ -0,0 +1,34 @@ +<div id="setup-finish"> + <?php if ($success): ?> + <h2 class="success"><?= $this->translate('Congratulations! Icinga Web 2 has been successfully set up.'); ?></h2> + <?php else: ?> + <h2 class="failure"><?= $this->translate('Sorry! Failed to set up Icinga Web 2 successfully.'); ?></h2> + <?php endif ?> + <div class="buttons pull-right"> + <?php if ($success): ?> + <?= $this->qlink( + $this->translate('Login to Icinga Web 2'), + 'authentication/login', + null, + array( + 'class' => 'button-link login', + 'data-no-icinga-ajax' => true, + 'title' => $this->translate('Show the login page of Icinga Web 2') + ) + ); ?> + <?php else: ?> + <?= $this->qlink( + $this->translate('Back'), + null, + null, + array( + 'class' => 'button-link', + 'title' => $this->translate('Show previous wizard-page') + ) + ); ?> + <?php endif ?> + </div> + <pre class="log-output"><?= join("\n\n", array_map(function($a) { + return join("\n", $a); + }, $report)); ?></pre> +</div> diff --git a/modules/setup/application/views/scripts/index/parts/wizard.phtml b/modules/setup/application/views/scripts/index/parts/wizard.phtml new file mode 100644 index 0000000..94891f9 --- /dev/null +++ b/modules/setup/application/views/scripts/index/parts/wizard.phtml @@ -0,0 +1 @@ +<?= $wizard->getForm()->render(); ?>
\ No newline at end of file |