51 lines
3.1 KiB
HTML
51 lines
3.1 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Admin Login - YRTV{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="mx-auto grid min-h-[640px] max-w-5xl overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-2xl dark:border-slate-700 dark:bg-slate-900 lg:grid-cols-2">
|
|
<section class="hidden bg-gradient-to-br from-slate-950 via-slate-900 to-yrtv-950 p-10 text-white lg:flex lg:flex-col lg:justify-between">
|
|
<div>
|
|
<div class="text-xs font-black uppercase tracking-[0.3em] text-yrtv-300">YRTV Operations</div>
|
|
<h1 class="mt-5 text-4xl font-black leading-tight">私人战队数据<br>运营控制台</h1>
|
|
<p class="mt-5 max-w-sm text-sm leading-7 text-slate-300">管理比赛导入、流水线、数据质量、数据库查询、备份和系统状态。</p>
|
|
</div>
|
|
<div class="grid grid-cols-2 gap-3">
|
|
{% for label in ['Atomic Pipeline', 'Automated Integrity', 'Read-only SQL', 'Rollback Snapshots'] %}
|
|
<div class="rounded-xl border border-white/10 bg-white/5 p-3 text-xs font-bold text-slate-300">{{ label }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
|
|
<section class="flex items-center px-6 py-12 sm:px-12">
|
|
<div class="w-full">
|
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-yrtv-100 text-2xl font-black text-yrtv-700">Y</div>
|
|
<h2 class="mt-6 text-3xl font-black text-slate-900 dark:text-white">管理员登录</h2>
|
|
<p class="mt-2 text-sm text-slate-500">请输入部署环境配置的 Admin Token。</p>
|
|
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
<div class="mt-5 space-y-2">
|
|
{% for category, message in messages %}
|
|
<div class="rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-sm font-medium text-red-700">{{ message }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% endwith %}
|
|
|
|
<form class="mt-8 space-y-5" action="{{ url_for('admin.login') }}" method="POST">
|
|
<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">
|
|
<div>
|
|
<label for="token" class="text-xs font-black uppercase tracking-wider text-slate-500">Admin Token</label>
|
|
<input id="token" name="token" type="password" required autocomplete="current-password"
|
|
class="mt-2 block w-full rounded-xl border-slate-200 bg-slate-50 px-4 py-3 text-slate-900 focus:border-yrtv-500 focus:ring-yrtv-500 dark:border-slate-700 dark:bg-slate-800 dark:text-white"
|
|
placeholder="Enter your admin token">
|
|
</div>
|
|
<button type="submit" class="w-full rounded-xl bg-yrtv-600 px-5 py-3 font-black text-white shadow-lg shadow-yrtv-200 hover:bg-yrtv-500">进入控制台</button>
|
|
</form>
|
|
<a href="{{ url_for('main.index') }}" class="mt-5 block text-center text-sm font-bold text-slate-400 hover:text-yrtv-600">返回 YRTV 前台</a>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
{% endblock %}
|