feat(auth): add password reset flow
Add admin-generated reset links, reset UI, timezone-aware expiry display, and registration captcha coverage.
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<section class="flex h-[1152px] flex-col rounded-lg border border-line bg-white shadow-panel">
|
||||
<section class="flex h-[900px] min-w-0 flex-col overflow-hidden rounded-lg border border-line bg-white shadow-panel">
|
||||
<div class="border-b border-line px-5 py-4">
|
||||
<div class="flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between">
|
||||
<h2 class="text-lg font-extrabold">上传记录</h2>
|
||||
@@ -25,23 +25,23 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="h-[1040px] shrink-0 divide-y divide-line overflow-y-auto">
|
||||
<div class="min-h-0 min-w-0 flex-1 divide-y divide-line overflow-y-auto">
|
||||
{% for record in records %}
|
||||
<div class="flex min-h-[104px] flex-col gap-4 p-5 md:flex-row md:items-center md:justify-between">
|
||||
<div class="min-w-0">
|
||||
<div class="truncate font-bold">{{ record.original_filename }}</div>
|
||||
<div class="mt-1 flex flex-wrap items-center gap-2 text-sm text-textSub">
|
||||
<div class="grid min-h-[76px] min-w-0 gap-3 px-4 py-3 md:grid-cols-[minmax(0,1fr)_auto] md:items-center">
|
||||
<div class="min-w-0 overflow-hidden">
|
||||
<div class="truncate text-sm font-bold">{{ record.original_filename }}</div>
|
||||
<div class="mt-1 flex flex-wrap items-center gap-2 text-xs text-textSub">
|
||||
<span>{{ record.upload_time.strftime('%Y-%m-%d %H:%M:%S') }}</span>
|
||||
<span class="hidden sm:inline">·</span>
|
||||
<span>记录 #{{ record.id }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<a class="ui-btn ui-btn-sm ui-btn-secondary" href="{{ url_for('main.download_file', record_id=record.id, file_type='original') }}">
|
||||
<div class="grid min-w-0 grid-cols-1 gap-2 sm:grid-cols-2 md:flex md:w-auto md:flex-nowrap">
|
||||
<a class="ui-btn ui-btn-compact ui-btn-secondary w-full px-3 md:w-auto" href="{{ url_for('main.download_file', record_id=record.id, file_type='original') }}">
|
||||
<span class="material-symbols-outlined text-lg">description</span>
|
||||
原始文件
|
||||
</a>
|
||||
<a class="ui-btn ui-btn-sm ui-btn-primary" href="{{ url_for('main.download_file', record_id=record.id, file_type='prediction') }}">
|
||||
<a class="ui-btn ui-btn-compact ui-btn-primary w-full px-3 md:w-auto" href="{{ url_for('main.download_file', record_id=record.id, file_type='prediction') }}">
|
||||
<span class="material-symbols-outlined text-lg">download</span>
|
||||
预测结果
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user