np_app/service/admin.html

57 lines
3.3 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="/static/app-shell.css" />
<title>NUPACK · Admin</title>
</head>
<body data-page="admin">
<div class="app">
<aside class="sidebar" id="appNav"></aside>
<main class="main">
<header class="page-header">
<div><h1>全局任务管理</h1><p>查看所有账号任务,并执行停止、回收和清理操作。</p></div>
<div class="header-actions"><button id="adminRefresh" class="primary" type="button">刷新</button><button id="adminLogout" type="button">退出 Admin</button></div>
</header>
<div class="content">
<section class="stats" aria-label="全局状态">
<div class="stat"><span>任务总数</span><strong id="adminTotal">-</strong></div>
<div class="stat"><span>正在运行</span><strong id="adminRunning">-</strong></div>
<div class="stat"><span>等待队列</span><strong id="adminQueued">-</strong></div>
<div class="stat"><span>Worker 并发</span><strong id="adminConcurrency">-</strong></div>
</section>
<section class="band">
<div class="band-header">
<div class="segmented">
<button class="active" type="button" data-admin-view="active">全部任务</button>
<button type="button" data-admin-view="trash">回收站</button>
</div>
<form class="toolbar" id="trashSettings">
<label>回收站保留天数 <input id="trashRetentionDays" type="number" min="0.0417" max="365" step="0.5" value="2" /></label>
<button type="submit">保存</button>
</form>
</div>
<form class="band-body filters" id="adminFilters">
<input name="q" type="search" placeholder="搜索用户、邮箱、任务 ID" />
<select name="status"><option value="">全部状态</option><option>queued</option><option>running</option><option>success</option><option>error</option><option>canceled</option></select>
<select name="workflow"><option value="">全部工作流</option><option>analysis</option><option>design</option><option>utilities</option></select>
<select name="material"><option value="">全部材料</option><option>rna</option><option>dna04</option></select>
<button type="submit">筛选</button>
</form>
<div class="table-wrap">
<table>
<thead><tr><th>用户</th><th>任务</th><th>配置</th><th>状态</th><th>创建/删除</th><th>耗时</th><th>操作</th></tr></thead>
<tbody id="adminJobs"><tr><td colspan="7" class="loading">正在载入...</td></tr></tbody>
</table>
</div>
<div class="pager"><button id="adminPrev" type="button">上一页</button><span id="adminPage">-</span><button id="adminNext" type="button">下一页</button></div>
</section>
<div class="notice hidden" id="adminNotice" role="status"></div>
</div>
</main>
</div>
<script type="module" src="/static/portal.js"></script>
</body>
</html>