43 lines
2.0 KiB
HTML
43 lines
2.0 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="{{ lang.code() }}">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>{{ t.nav_title }} — {{ t.login_title }}</title>
|
||
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1/css/bulma.min.css">
|
||
|
|
<style>
|
||
|
|
body { background: #f5f5f5; display: flex; align-items: center; justify-content: center; min-height: 100vh; }
|
||
|
|
.login-box { width: 100%; max-width: 380px; padding: 0 1rem; }
|
||
|
|
.login-card { background: #fff; border-radius: 12px; padding: 2rem 1.5rem; box-shadow: 0 2px 12px rgba(0,0,0,0.06); }
|
||
|
|
</style>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div class="login-box">
|
||
|
|
<div class="has-text-right mb-3">
|
||
|
|
<a href="?lang={{ lang.other().code() }}" class="has-text-grey is-size-7">{{ lang.other().label() }}</a>
|
||
|
|
</div>
|
||
|
|
<div class="login-card">
|
||
|
|
<div class="has-text-centered mb-4">
|
||
|
|
<p class="is-size-3">🐾</p>
|
||
|
|
<h1 class="is-size-4 has-text-weight-bold">{{ t.nav_title }}</h1>
|
||
|
|
<p class="has-text-grey">{{ t.login_title }}</p>
|
||
|
|
</div>
|
||
|
|
{% if let Some(err) = error.as_ref() %}
|
||
|
|
<div class="notification is-danger is-light">{{ err }}</div>
|
||
|
|
{% endif %}
|
||
|
|
<form method="post" action="/admin/login/submit">
|
||
|
|
<div class="field">
|
||
|
|
<label class="label">{{ t.users_login }}</label>
|
||
|
|
<div class="control"><input class="input" type="text" name="login" required autofocus></div>
|
||
|
|
</div>
|
||
|
|
<div class="field">
|
||
|
|
<label class="label">{{ t.users_password }}</label>
|
||
|
|
<div class="control"><input class="input" type="password" name="password" required></div>
|
||
|
|
</div>
|
||
|
|
<button type="submit" class="button is-primary is-fullwidth mt-3">{{ t.login_button }}</button>
|
||
|
|
</form>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</body>
|
||
|
|
</html>
|