1
0
mirror of git://f0xx.org/ac/ac-be-auth synced 2026-07-29 04:19:06 +03:00
Files
ac-be-auth/views/register.php
2026-07-12 13:53:37 +02:00

77 lines
4.1 KiB
PHP

<?php
$bp = Auth::basePath();
$auth = Auth::authUrl();
$registerPending = !empty($registerPending);
$registerExpiresAt = (string) ($registerExpiresAt ?? '');
$registerEmail = (string) ($registerEmail ?? '');
?>
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Register — <?= h(cfg('app_name')) ?></title>
<script>
(function () {
var t = localStorage.getItem('crash_console_theme');
if (t === 'light' || t === 'dark') document.documentElement.setAttribute('data-theme', t);
var l = localStorage.getItem('crash_console_lang');
if (l === 'en' || l === 'ru') document.documentElement.setAttribute('lang', l);
})();
</script>
<link rel="icon" type="image/x-icon" href="<?= h($bp) ?>/assets/favicon.ico">
<link rel="apple-touch-icon" href="<?= h($bp) ?>/assets/apple-touch-icon.ico">
<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/register.js" defer></script>
<?php AnalyticsHead::render('crashes_register'); ?>
</head>
<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">
<label class="toolbar-select locale-toolbar-select" data-i18n-title="lang.label" title="Language">
<span class="locale-flag" aria-hidden="true">🇬🇧</span>
<select class="lang-select" data-i18n-aria="lang.label" aria-label="Language">
<option value="en">EN</option>
<option value="ru">RU</option>
</select>
</label>
</div>
<form class="login-card" id="register-form" method="post" action="<?= h($auth) ?>/register"<?= $registerPending ? ' hidden' : '' ?>>
<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>
<?php if (!empty($registerError)): ?>
<div class="alert"><?= h($registerError) ?></div>
<?php endif; ?>
<label><span data-i18n="register.email">Email</span>
<input name="email" type="email" autocomplete="email" required value="<?= h($registerEmail) ?>"></label>
<label><span data-i18n="register.username">Username</span>
<input name="username" autocomplete="username" value="<?= h($registerUsername ?? '') ?>"></label>
<label><span data-i18n="register.password">Password</span>
<input name="password" type="password" autocomplete="new-password" minlength="10" required></label>
<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>
</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(); ?>
</body>
</html>