mirror of
git://f0xx.org/ac/ac-be-auth
synced 2026-07-29 02:57:57 +03:00
feat(auth): register pending UI with countdown and resend
Signed-off-by: Anton Afanasyeu <a.afanasieff@gmail.com>
This commit is contained in:
2
deps/ac-ms-identity
vendored
2
deps/ac-ms-identity
vendored
Submodule deps/ac-ms-identity updated: 835f02153e...691c9322cb
2
deps/ac-platform-php
vendored
2
deps/ac-platform-php
vendored
Submodule deps/ac-platform-php updated: f4b39bea26...515929238b
@@ -1,6 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
$bp = Auth::basePath();
|
$bp = Auth::basePath();
|
||||||
$auth = Auth::authUrl();
|
$auth = Auth::authUrl();
|
||||||
|
$registerPending = !empty($registerPending);
|
||||||
|
$registerExpiresAt = (string) ($registerExpiresAt ?? '');
|
||||||
|
$registerEmail = (string) ($registerEmail ?? '');
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" data-theme="dark">
|
<html lang="en" data-theme="dark">
|
||||||
@@ -20,9 +23,14 @@ $auth = Auth::authUrl();
|
|||||||
<link rel="apple-touch-icon" href="<?= h($bp) ?>/assets/apple-touch-icon.ico">
|
<link rel="apple-touch-icon" href="<?= h($bp) ?>/assets/apple-touch-icon.ico">
|
||||||
<link rel="stylesheet" href="<?= h($bp) ?>/assets/css/app.css">
|
<link rel="stylesheet" href="<?= h($bp) ?>/assets/css/app.css">
|
||||||
<script src="<?= h($bp) ?>/assets/js/i18n.js" defer></script>
|
<script src="<?= h($bp) ?>/assets/js/i18n.js" defer></script>
|
||||||
|
<script src="<?= h($bp) ?>/assets/js/register.js" defer></script>
|
||||||
<?php AnalyticsHead::render('crashes_register'); ?>
|
<?php AnalyticsHead::render('crashes_register'); ?>
|
||||||
</head>
|
</head>
|
||||||
<body class="login-page" data-base-path="<?= h($bp) ?>">
|
<body class="login-page" data-base-path="<?= h($bp) ?>"
|
||||||
|
data-auth-base="<?= h($auth) ?>"
|
||||||
|
<?= $registerPending ? ' data-register-pending="1"' : '' ?>
|
||||||
|
<?= $registerExpiresAt !== '' ? ' data-register-expires-ts="' . (int) strtotime($registerExpiresAt) . '"' : '' ?>
|
||||||
|
<?= $registerEmail !== '' ? ' data-register-email="' . h($registerEmail) . '"' : '' ?>>
|
||||||
<div class="login-locale">
|
<div class="login-locale">
|
||||||
<label class="toolbar-select locale-toolbar-select" data-i18n-title="lang.label" title="Language">
|
<label class="toolbar-select locale-toolbar-select" data-i18n-title="lang.label" title="Language">
|
||||||
<span class="locale-flag" aria-hidden="true">🇬🇧</span>
|
<span class="locale-flag" aria-hidden="true">🇬🇧</span>
|
||||||
@@ -32,17 +40,14 @@ $auth = Auth::authUrl();
|
|||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<form class="login-card" method="post" action="<?= h($auth) ?>/register">
|
<form class="login-card" id="register-form" method="post" action="<?= h($auth) ?>/register"<?= $registerPending ? ' hidden' : '' ?>>
|
||||||
<h1 data-i18n="register.title">Create account</h1>
|
<h1 data-i18n="register.title">Create account</h1>
|
||||||
<p class="muted" data-i18n="register.hint">We will email a verification link before you can sign in.</p>
|
<p class="muted" data-i18n="register.hint">We will email a verification link before you can sign in.</p>
|
||||||
<?php if (!empty($registerError)): ?>
|
<?php if (!empty($registerError)): ?>
|
||||||
<div class="alert"><?= h($registerError) ?></div>
|
<div class="alert"><?= h($registerError) ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php if (!empty($registerSuccess)): ?>
|
|
||||||
<div class="alert alert--ok"><?= h($registerSuccess) ?></div>
|
|
||||||
<?php endif; ?>
|
|
||||||
<label><span data-i18n="register.email">Email</span>
|
<label><span data-i18n="register.email">Email</span>
|
||||||
<input name="email" type="email" autocomplete="email" required value="<?= h($registerEmail ?? '') ?>"></label>
|
<input name="email" type="email" autocomplete="email" required value="<?= h($registerEmail) ?>"></label>
|
||||||
<label><span data-i18n="register.username">Username</span>
|
<label><span data-i18n="register.username">Username</span>
|
||||||
<input name="username" autocomplete="username" value="<?= h($registerUsername ?? '') ?>"></label>
|
<input name="username" autocomplete="username" value="<?= h($registerUsername ?? '') ?>"></label>
|
||||||
<label><span data-i18n="register.password">Password</span>
|
<label><span data-i18n="register.password">Password</span>
|
||||||
@@ -50,6 +55,22 @@ $auth = Auth::authUrl();
|
|||||||
<button type="submit" data-i18n="register.submit">Register</button>
|
<button type="submit" data-i18n="register.submit">Register</button>
|
||||||
<p class="hint"><a href="<?= h($auth) ?>/login" data-i18n="register.back_login">Back to sign in</a></p>
|
<p class="hint"><a href="<?= h($auth) ?>/login" data-i18n="register.back_login">Back to sign in</a></p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<section class="login-card" id="register-pending"<?= $registerPending ? '' : ' hidden' ?>>
|
||||||
|
<h1 data-i18n="register.pending_title">Check your email</h1>
|
||||||
|
<p class="muted" data-i18n="register.pending_hint">We sent a verification link. Confirm your email before signing in.</p>
|
||||||
|
<?php if (!empty($registerSuccess)): ?>
|
||||||
|
<div class="alert alert--ok"><?= h($registerSuccess) ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<p id="register-pending-email" class="muted"><?= $registerEmail !== '' ? h($registerEmail) : '' ?></p>
|
||||||
|
<p class="register-countdown-wrap">
|
||||||
|
<span data-i18n="register.countdown_label">Link expires in</span>
|
||||||
|
<strong id="register-countdown" aria-live="polite">—</strong>
|
||||||
|
</p>
|
||||||
|
<p id="register-resend-status" class="muted" aria-live="polite"></p>
|
||||||
|
<button type="button" class="btn" id="register-resend-btn" data-i18n="register.resend">Resend verification email</button>
|
||||||
|
<p class="hint"><a href="<?= h($auth) ?>/login" data-i18n="register.back_login">Back to sign in</a></p>
|
||||||
|
</section>
|
||||||
<?php platform_render_footer(); ?>
|
<?php platform_render_footer(); ?>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user