axe-web/index.html
edadmin ca3392157a
Some checks are pending
web / check (push) Waiting to run
web / build-web (push) Waiting to run
web / deploy (push) Blocked by required conditions
feat: prod web image + Gitea Actions, demo chips removed
2026-10-18 22:44:06 +03:00

72 lines
3.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Обслуживание зданий</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- Экран входа -->
<div id="login-view" class="view">
<form id="login-form" class="card login-card" autocomplete="on">
<h1>Обслуживание зданий</h1>
<label>Email
<input type="email" id="login-email" required autocomplete="username">
</label>
<label>Пароль
<input type="password" id="login-password" required autocomplete="current-password">
</label>
<div id="login-error" class="error" role="alert"></div>
<button type="submit" class="primary wide">Войти</button>
<button type="button" class="ghost wide" id="show-forgot">Забыли пароль?</button>
</form>
<!-- Забыли пароль: письмо со ссылкой на форму сброса -->
<form id="forgot-form" class="card login-card hidden" autocomplete="on">
<h1>Забыли пароль?</h1>
<p class="hint">Укажите email — пришлём ссылку для смены пароля. Если аккаунта нет, письмо не придёт (так адреса не перебирают).</p>
<label>Email
<input type="email" id="forgot-email" required autocomplete="username">
</label>
<div id="forgot-error" class="error" role="alert"></div>
<button type="submit" class="primary wide">Отправить ссылку</button>
<button type="button" class="ghost wide" id="back-login">Вернуться ко входу</button>
</form>
<!-- Сброс пароля по ссылке из письма: токен приходит в хеш-маршруте -->
<form id="reset-form" class="card login-card hidden" autocomplete="on">
<h1>Новый пароль</h1>
<p class="hint">Пароль: мин. 10 символов, буквы и цифры. Ссылка одноразовая и живёт сутки.</p>
<label>Пароль
<input type="password" id="reset-password" required minlength="10" autocomplete="new-password">
</label>
<label>Повторите пароль
<input type="password" id="reset-password2" required minlength="10" autocomplete="new-password">
</label>
<div id="reset-error" class="error" role="alert"></div>
<button type="submit" class="primary wide">Сменить пароль</button>
</form>
</div>
<!-- Приложение -->
<div id="app-view" class="view hidden">
<header class="topbar">
<div class="brand">Заявки в здании</div>
<nav id="nav"></nav>
<div class="who">
<span id="who"></span>
<button id="logout" class="ghost" type="button">Выйти</button>
</div>
</header>
<main id="main"></main>
</div>
<!-- Всплывающие сообщения (ошибки API и успех) -->
<div id="flash" class="flash hidden"></div>
<script src="js/api.js"></script>
<script src="js/app.js"></script>
</body>
</html>