2.0.0-rc2: Achievements Refactored & Admin improved.
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{% block admin_title %}Admin{% endblock %} - YRTV{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% set admin_nav = [
|
||||
('admin.dashboard', '总览', 'Overview'),
|
||||
('admin.import_match', '比赛导入', 'Import'),
|
||||
('admin.jobs', '作业中心', 'Jobs'),
|
||||
('admin.data_integrity', '数据质量', 'Integrity'),
|
||||
('admin.sql_runner', '查询控制台', 'Query'),
|
||||
('admin.system', '系统信息', 'System')
|
||||
] %}
|
||||
<div class="min-h-[calc(100vh-8rem)] px-3 sm:px-0">
|
||||
<div class="overflow-hidden rounded-2xl border border-slate-200 bg-slate-100 shadow-xl dark:border-slate-700 dark:bg-slate-950">
|
||||
<div class="grid min-h-[760px] grid-cols-1 lg:grid-cols-[240px_minmax(0,1fr)]">
|
||||
<aside class="border-b border-slate-200 bg-slate-950 text-slate-300 lg:border-b-0 lg:border-r lg:border-slate-800">
|
||||
<div class="flex items-center justify-between px-5 py-5">
|
||||
<div>
|
||||
<div class="text-xs font-black uppercase tracking-[0.25em] text-yrtv-400">YRTV</div>
|
||||
<div class="mt-1 text-lg font-black text-white">Operations</div>
|
||||
</div>
|
||||
<span class="rounded-full bg-amber-400/10 px-2 py-1 text-[10px] font-bold uppercase text-amber-300">Beta</span>
|
||||
</div>
|
||||
|
||||
<nav class="flex gap-1 overflow-x-auto px-3 pb-4 lg:block lg:space-y-1 lg:overflow-visible">
|
||||
{% for endpoint, label, english in admin_nav %}
|
||||
{% set active = request.endpoint == endpoint %}
|
||||
<a href="{{ url_for(endpoint) }}"
|
||||
class="group flex min-w-max items-center gap-3 rounded-xl px-3 py-2.5 text-sm font-bold transition
|
||||
{% if active %}bg-yrtv-600 text-white shadow-lg shadow-yrtv-950/30
|
||||
{% else %}text-slate-400 hover:bg-slate-800 hover:text-white{% endif %}">
|
||||
<span class="flex h-7 w-7 items-center justify-center rounded-lg {% if active %}bg-white/15{% else %}bg-slate-800 group-hover:bg-slate-700{% endif %}">
|
||||
{{ loop.index|string }}
|
||||
</span>
|
||||
<span>
|
||||
<span class="block">{{ label }}</span>
|
||||
<span class="block text-[10px] font-medium uppercase tracking-wider opacity-60">{{ english }}</span>
|
||||
</span>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
|
||||
<div class="hidden border-t border-slate-800 p-4 lg:block">
|
||||
<a href="{{ url_for('main.index') }}" class="block rounded-lg px-3 py-2 text-sm font-bold text-slate-400 hover:bg-slate-800 hover:text-white">返回站点</a>
|
||||
<a href="{{ url_for('admin.logout') }}" class="mt-1 block rounded-lg px-3 py-2 text-sm font-bold text-red-400 hover:bg-red-950/40">退出后台</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="min-w-0">
|
||||
<header class="border-b border-slate-200 bg-white/90 px-5 py-4 backdrop-blur dark:border-slate-800 dark:bg-slate-900/90">
|
||||
<div class="flex items-center justify-between gap-4">
|
||||
<div>
|
||||
<h1 class="text-xl font-black text-slate-900 dark:text-white">{% block page_title %}管理后台{% endblock %}</h1>
|
||||
<p class="mt-0.5 text-xs text-slate-500">{% block page_subtitle %}YRTV 数据运营控制台{% endblock %}</p>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ url_for('admin.data_integrity') }}" class="rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-xs font-bold text-slate-600 hover:border-emerald-300 hover:text-emerald-600 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-300">系统状态</a>
|
||||
<a href="{{ url_for('main.index') }}" class="rounded-lg bg-slate-900 px-3 py-2 text-xs font-bold text-white hover:bg-slate-700 dark:bg-white dark:text-slate-900">打开前台</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="p-4 sm:p-6 lg:p-8">
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
<div class="mb-6 space-y-2">
|
||||
{% for category, message in messages %}
|
||||
<div class="rounded-xl border px-4 py-3 text-sm font-medium
|
||||
{% if category == 'success' %}border-emerald-200 bg-emerald-50 text-emerald-800
|
||||
{% elif category == 'warning' %}border-amber-200 bg-amber-50 text-amber-800
|
||||
{% else %}border-red-200 bg-red-50 text-red-800{% endif %}">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% block admin_content %}{% endblock %}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user