Загрузить файлы в «static»
This commit is contained in:
79
static/register.html
Normal file
79
static/register.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Регистрация — Robo Arena</title>
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="auth-wrap">
|
||||
<div class="auth-panel">
|
||||
<div class="robot-icon">🛡</div>
|
||||
<div class="sys-label">Robo Arena / РСУ</div>
|
||||
<h1>Регистрация пилота</h1>
|
||||
<p>Один аккаунт — неограниченное количество боевых роботов под вашим управлением на арене.</p>
|
||||
<div class="arena-stats">
|
||||
<div class="arena-stat">⚡ Развёртывание роботов <span>INSTANT</span></div>
|
||||
<div class="arena-stat">🔧 Управление мощностью <span>0–100%</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="auth-form-area">
|
||||
<div class="auth-box">
|
||||
<h2>Новый пилот</h2>
|
||||
<p class="sub">Создайте аккаунт — после регистрации заполните профиль</p>
|
||||
|
||||
<div class="field">
|
||||
<label for="email">Электронная почта</label>
|
||||
<input type="email" id="email" placeholder="pilot@arena.ru" autocomplete="email">
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label for="password">Пароль <span style="color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0">(не менее 6 символов)</span></label>
|
||||
<input type="password" id="password" placeholder="••••••••" autocomplete="new-password">
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" id="submit-btn">Зарегистрироваться</button>
|
||||
<p class="err-msg" id="error-text"></p>
|
||||
|
||||
<div class="link-row">Уже есть аккаунт? <a href="/static/login.html">Войти</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const errEl = document.getElementById("error-text");
|
||||
const submitBtn = document.getElementById("submit-btn");
|
||||
|
||||
submitBtn.addEventListener("click", async () => {
|
||||
errEl.textContent = "";
|
||||
const email = document.getElementById("email").value.trim();
|
||||
const password = document.getElementById("password").value;
|
||||
|
||||
if (!email || !password) { errEl.textContent = "Заполните все поля"; return; }
|
||||
|
||||
submitBtn.disabled = true;
|
||||
submitBtn.textContent = "Подождите…";
|
||||
|
||||
try {
|
||||
const res = await fetch("/api/register", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
credentials: "include",
|
||||
body: JSON.stringify({ email, password })
|
||||
});
|
||||
const data = await res.json();
|
||||
if (!res.ok) { errEl.textContent = data.detail || "Ошибка регистрации"; return; }
|
||||
window.location.href = "/static/profile.html";
|
||||
} catch {
|
||||
errEl.textContent = "Не удалось связаться с сервером";
|
||||
} finally {
|
||||
submitBtn.disabled = false;
|
||||
submitBtn.textContent = "Зарегистрироваться";
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keydown", e => { if (e.key === "Enter") submitBtn.click(); });
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user