aboutsummaryrefslogtreecommitdiff
path: root/app/install.php
diff options
context:
space:
mode:
authorGravatar maTh <math-home@web.de> 2023-03-04 13:57:52 +0100
committerGravatar GitHub <noreply@github.com> 2023-03-04 13:57:52 +0100
commit27c7367534518f1adfd9b12551a2c7a45459cab3 (patch)
treee7e7732e55de14617f1ee6ad90cee49b443c860c /app/install.php
parent1c1e63c6ad27d0ebd34324b09f176b6767adc0cf (diff)
Improve UI/UX install process (#5147)
* less buttons on step 1 * add form-group * jump to next step as link not as button * improve navigation bar HTML structure * sync password-show button with extra.js * fix CSS * i18n: step 4: split text strings for help text (max chars default user) * show menu button if mobile view * improve header layout with empty div * step 5: button in form-actions * improve buttons in goup-controls * Favicon added * Button: Font color hover btn-attention * install check step: add subtitles * fix .btn * improve tabindex * improve showPW_this()
Diffstat (limited to 'app/install.php')
-rw-r--r--app/install.php146
1 files changed, 91 insertions, 55 deletions
diff --git a/app/install.php b/app/install.php
index 3163367f4..a5e2ac263 100644
--- a/app/install.php
+++ b/app/install.php
@@ -364,9 +364,8 @@ function printStep0() {
<div class="form-group form-actions">
<div class="group-controls">
<button type="submit" class="btn btn-important" tabindex="2" ><?= _t('gen.action.submit') ?></button>
- <button type="reset" class="btn" tabindex="3" ><?= _t('gen.action.cancel') ?></button>
<?php if ($s0['all'] == 'ok') { ?>
- <a class="btn btn-important next-step" href="?step=1" tabindex="4" ><?= _t('install.action.next_step') ?></a>
+ <a class="next-step" href="?step=1" tabindex="4" ><?= _t('install.action.next_step') ?></a>
<?php } ?>
</div>
</div>
@@ -405,6 +404,7 @@ function printStep1() {
$res = checkRequirements();
$processUsername = getProcessUsername();
?>
+ <h2><?= _t('admin.check_install.php') ?></h2>
<noscript><p class="alert alert-warn"><span class="alert-head"><?= _t('gen.short.attention') ?></span> <?= _t('install.javascript_is_better') ?></p></noscript>
<?php
@@ -423,6 +423,9 @@ function printStep1() {
printStep1Template('xml', $res['xml']);
printStep1Template('mbstring', $res['mbstring']);
printStep1Template('fileinfo', $res['fileinfo']);
+ ?>
+ <h2><?= _t('admin.check_install.files') ?></h2>
+ <?php
printStep1Template('data', $res['data'], [DATA_PATH, $processUsername]);
printStep1Template('cache', $res['cache'], [CACHE_PATH, $processUsername]);
printStep1Template('tmp', $res['tmp'], [TMP_PATH, $processUsername]);
@@ -433,20 +436,32 @@ function printStep1() {
<?php if (freshrss_already_installed() && $res['all'] == 'ok') { ?>
<p class="alert alert-warn"><span class="alert-head"><?= _t('gen.short.attention') ?></span> <?= _t('install.check.already_installed') ?></p>
- <form action="index.php?step=1" method="post">
- <input type="hidden" name="freshrss-keep-install" value="1" />
- <button type="submit" class="btn btn-important next-step" tabindex="1" ><?= _t('install.action.keep_install') ?></button>
- <a class="btn btn-attention next-step confirm" data-str-confirm="<?= _t('install.js.confirm_reinstall') ?>"
- href="?step=2" tabindex="2" ><?= _t('install.action.reinstall') ?></a>
- </form>
+ <div class="form-group form-actions">
+ <div class="group-controls">
+ <form action="index.php?step=1" method="post">
+ <input type="hidden" name="freshrss-keep-install" value="1" />
+ <button type="submit" class="btn btn-important" tabindex="1"><?= _t('install.action.keep_install') ?></button>
+ <a class="btn btn-attention confirm" data-str-confirm="<?= _t('install.js.confirm_reinstall') ?>"
+ href="?step=2" tabindex="2"><?= _t('install.action.reinstall') ?></a>
+ </form>
+ </div>
+ </div>
<?php } elseif ($res['all'] == 'ok') { ?>
- <a class="btn btn-important next-step" href="?step=2" tabindex="1" ><?= _t('install.action.next_step') ?></a>
+ <div class="form-group form-actions">
+ <div class="group-controls">
+ <a class="btn btn-important" href="?step=2" tabindex="1"><?= _t('install.action.next_step') ?></a>
+ </div>
+ </div>
<?php } else { ?>
<p class="alert alert-error"><?= _t('install.action.fix_errors_before') ?></p>
- <a id="actualize" class="btn" href="./index.php?step=1" title="<?= _t('install.check.reload') ?>">
- <img class="icon" src="../themes/icons/refresh.svg" alt="🔃" loading="lazy" />
- </a>
+ <div class="form-group form-actions">
+ <div class="group-controls">
+ <a id="actualize" class="btn" href="./index.php?step=1" title="<?= _t('install.check.reload') ?>" tabindex="1">
+ <img class="icon" src="../themes/icons/refresh.svg" alt="🔃" loading="lazy" />
+ </a>
+ </div>
+ </div>
<?php } ?>
<?php
}
@@ -539,7 +554,7 @@ function printStep2() {
<button type="submit" class="btn btn-important" tabindex="8" ><?= _t('gen.action.submit') ?></button>
<button type="reset" class="btn" tabindex="9" ><?= _t('gen.action.cancel') ?></button>
<?php if ($s2['all'] == 'ok') { ?>
- <a class="btn btn-important next-step" href="?step=3" tabindex="10" ><?= _t('install.action.next_step') ?></a>
+ <a class="next-step" href="?step=3" tabindex="10" ><?= _t('install.action.next_step') ?></a>
<?php } ?>
</div>
</div>
@@ -568,14 +583,15 @@ function printStep3() {
<div class="group-controls">
<input type="text" id="default_user" name="default_user" autocomplete="username" required="required" size="16"
pattern="<?= FreshRSS_user_Controller::USERNAME_PATTERN ?>" value="<?= isset($_SESSION['default_user']) ? $_SESSION['default_user'] : '' ?>"
- placeholder="<?= httpAuthUser() == '' ? 'alice' : httpAuthUser() ?>" tabindex="3" />
+ placeholder="<?= httpAuthUser() == '' ? 'alice' : httpAuthUser() ?>" tabindex="1" />
+ <p class="help"><?= _i('help') ?> <?= _t('install.default_user.max_char') ?></p>
</div>
</div>
<div class="form-group">
<label class="group-name" for="auth_type"><?= _t('install.auth.type') ?></label>
<div class="group-controls">
- <select id="auth_type" name="auth_type" required="required" tabindex="4">
+ <select id="auth_type" name="auth_type" required="required" tabindex="2">
<option value="form"<?= $auth_type === 'form' || (no_auth($auth_type) && cryptAvailable()) ? ' selected="selected"' : '',
cryptAvailable() ? '' : ' disabled="disabled"' ?>><?= _t('install.auth.form') ?></option>
<option value="http_auth"<?= $auth_type === 'http_auth' ? ' selected="selected"' : '',
@@ -591,8 +607,8 @@ function printStep3() {
<div class="group-controls">
<div class="stick">
<input type="password" id="passwordPlain" name="passwordPlain" pattern=".{7,}"
- autocomplete="off" <?= $auth_type === 'form' ? ' required="required"' : '' ?> tabindex="5" />
- <button type="button" class="btn toggle-password" data-toggle="passwordPlain"><?= FreshRSS_Themes::icon('key') ?></button>
+ autocomplete="off" <?= $auth_type === 'form' ? ' required="required"' : '' ?> tabindex="3" />
+ <button type="button" class="btn toggle-password" data-toggle="passwordPlain" tabindex="4"><?= FreshRSS_Themes::icon('key') ?></button>
</div>
<p class="help"><?= _i('help') ?> <?= _t('install.auth.password_format') ?></p>
<noscript><b><?= _t('gen.js.should_be_activated') ?></b></noscript>
@@ -601,10 +617,10 @@ function printStep3() {
<div class="form-group form-actions">
<div class="group-controls">
- <button type="submit" class="btn btn-important" tabindex="7" ><?= _t('gen.action.submit') ?></button>
- <button type="reset" class="btn" tabindex="8" ><?= _t('gen.action.cancel') ?></button>
+ <button type="submit" class="btn btn-important" tabindex="5" ><?= _t('gen.action.submit') ?></button>
+ <button type="reset" class="btn" tabindex="6" ><?= _t('gen.action.cancel') ?></button>
<?php if ($s3['all'] == 'ok') { ?>
- <a class="btn btn-important next-step" href="?step=4" tabindex="9" ><?= _t('install.action.next_step') ?></a>
+ <a class="next-step" href="?step=4" tabindex="7" ><?= _t('install.action.next_step') ?></a>
<?php } ?>
</div>
</div>
@@ -615,7 +631,11 @@ function printStep3() {
function printStep4() {
?>
<p class="alert alert-success"><span class="alert-head"><?= _t('install.congratulations') ?></span> <?= _t('install.ok') ?></p>
- <a class="btn btn-important next-step" href="?step=5" tabindex="1"><?= _t('install.action.finish') ?></a>
+ <div class="form-group form-actions">
+ <div class="group-controls">
+ <a class="btn btn-important" href="?step=5" tabindex="1"><?= _t('install.action.finish') ?></a>
+ </div>
+ </div>
<?php
}
@@ -668,6 +688,12 @@ if (_t('gen.dir') === 'rtl') {
<title><?= _t('install.title') ?>: <?= _t('install.step', STEP + 1) ?></title>
<link rel="stylesheet" href="../themes/base-theme/frss.css?<?= @filemtime(PUBLIC_PATH . '/themes/base-theme/frss.css') ?>" />
<link rel="stylesheet" href="../themes/Origine/origine.css?<?= @filemtime(PUBLIC_PATH . '/themes/Origine/origine.css') ?>" />
+ <link rel="shortcut icon" id="favicon" type="image/x-icon" sizes="16x16 64x64" href="../favicon.ico" />
+ <link rel="icon msapplication-TileImage apple-touch-icon" type="image/png" sizes="256x256" href="../themes/icons/favicon-256.png" />
+ <link rel="apple-touch-icon" href="../themes/icons/apple-touch-icon.png" />
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+ <meta name="apple-mobile-web-app-title" content="FreshRSS">
<meta name="robots" content="noindex,nofollow" />
</head>
<body>
@@ -680,45 +706,55 @@ if (_t('gen.dir') === 'rtl') {
</a>
</div>
</div>
+ <div class="item"></div>
+ <div class="item configure">
+ <a class="btn only-mobile" href="#aside"><?= _i('view-normal') ?></a>
+ </div>
</header>
<div id="global">
- <nav class="nav nav-list aside">
- <div class="nav-header"><?= _t('install.steps') ?></div>
- <ol>
- <li class="item<?= STEP == 0 ? ' active' : '' ?>">
- <a href="?step=0" title="<?= _t('install.step', 0) ?>: <?= _t('install.language') ?>"><?= _t('install.language') ?></a>
- </li>
- <li class="item<?= STEP == 1 ? ' active' : '' ?>">
- <?php if (STEP > 0) {?>
- <a href="?step=1" title="<?= _t('install.step', 1) ?>: <?= _t('install.check') ?>"><?= _t('install.check') ?></a>
- <?php } else { ?>
- <span><?= _t('install.check') ?></span>
- <?php } ?>
- </li>
- <li class="item<?= STEP == 2 ? ' active' : '' ?>">
- <?php if (STEP > 1) {?>
- <a href="?step=2" title="<?= _t('install.step', 2) ?>: <?= _t('install.bdd.conf') ?>"><?= _t('install.bdd.conf') ?></a>
- <?php } else { ?>
- <span><?= _t('install.bdd.conf') ?></span>
- <?php } ?>
- </li>
- <li class="item<?= STEP == 3 ? ' active' : '' ?>">
- <?php if (STEP > 2) {?>
- <a href="?step=3" title="<?= _t('install.step', 3) ?>: <?= _t('install.conf') ?>"><?= _t('install.conf') ?></a>
- <?php } else { ?>
- <span><?= _t('install.conf') ?></span>
- <?php } ?>
- </li>
- <li class="item<?= STEP == 4 ? ' active' : '' ?>">
- <?php if (STEP > 3) {?>
- <a href="?step=4" title="<?= _t('install.step', 4) ?>: <?= _t('install.this_is_the_end') ?>"><?= _t('install.this_is_the_end') ?></a>
- <?php } else { ?>
- <span><?= _t('install.this_is_the_end') ?></span>
- <?php } ?>
+ <nav class="nav nav-list aside" id="aside">
+ <a class="toggle_aside" href="#close"><img class="icon" src="../themes/icons/close.svg" loading="lazy" alt="❌"></a>
+ <ul>
+ <li class="item nav-section">
+ <div class="nav-header"><?= _t('install.steps') ?></div>
+ <ol>
+ <li class="item<?= STEP == 0 ? ' active' : '' ?>">
+ <a href="?step=0" title="<?= _t('install.step', 0) ?>: <?= _t('install.language') ?>"><?= _t('install.language') ?></a>
+ </li>
+ <li class="item<?= STEP == 1 ? ' active' : '' ?>">
+ <?php if (STEP > 0) {?>
+ <a href="?step=1" title="<?= _t('install.step', 1) ?>: <?= _t('install.check') ?>"><?= _t('install.check') ?></a>
+ <?php } else { ?>
+ <span><?= _t('install.check') ?></span>
+ <?php } ?>
+ </li>
+ <li class="item<?= STEP == 2 ? ' active' : '' ?>">
+ <?php if (STEP > 1) {?>
+ <a href="?step=2" title="<?= _t('install.step', 2) ?>: <?= _t('install.bdd.conf') ?>"><?= _t('install.bdd.conf') ?></a>
+ <?php } else { ?>
+ <span><?= _t('install.bdd.conf') ?></span>
+ <?php } ?>
+ </li>
+ <li class="item<?= STEP == 3 ? ' active' : '' ?>">
+ <?php if (STEP > 2) {?>
+ <a href="?step=3" title="<?= _t('install.step', 3) ?>: <?= _t('install.conf') ?>"><?= _t('install.conf') ?></a>
+ <?php } else { ?>
+ <span><?= _t('install.conf') ?></span>
+ <?php } ?>
+ </li>
+ <li class="item<?= STEP == 4 ? ' active' : '' ?>">
+ <?php if (STEP > 3) {?>
+ <a href="?step=4" title="<?= _t('install.step', 4) ?>: <?= _t('install.this_is_the_end') ?>"><?= _t('install.this_is_the_end') ?></a>
+ <?php } else { ?>
+ <span><?= _t('install.this_is_the_end') ?></span>
+ <?php } ?>
+ </li>
+ </ol>
</li>
- </ol>
+ </ul>
</nav>
+ <a class="close-aside" href="#close">❌</a>
<main class="post">
<h1><?= _t('install.title') ?>: <?= _t('install.step', STEP + 1) ?></h1>