75 lines
3.2 KiB
HTML
Raw Normal View History

2025-11-28 17:39:54 +08:00
{% extends "base.html" %}
{% block title %}API 列表{% endblock %}
{% block content %}
<div class="d-flex justify-content-between align-items-center mb-3">
<h3>API 配置列表</h3>
<a class="btn btn-primary" href="{{ url_for('apis.create_api') }}">新建 API</a>
</div>
<form class="row g-2 mb-3" method="get">
<div class="col-auto">
<input type="text" class="form-control" name="name" placeholder="按名称搜索" value="{{ request.args.get('name','') }}">
</div>
<div class="col-auto">
<select class="form-select" name="enabled">
<option value="">全部</option>
<option value="1" {% if request.args.get('enabled')=='1' %}selected{% endif %}>已启用</option>
<option value="0" {% if request.args.get('enabled')=='0' %}selected{% endif %}>未启用</option>
</select>
</div>
<div class="col-auto">
<button class="btn btn-outline-secondary" type="submit">筛选</button>
</div>
</form>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>名称</th>
<th>URL</th>
<th>调度</th>
<th>启用</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for api in apis %}
<tr>
<td>{{ api.name }}</td>
<td class="text-break">{{ api.url }}</td>
<td>
{{ api.schedule_type }}: {{ api.schedule_expression }}
{% if api.schedule_type == 'cron' %}
<div class="text-muted small">{{ api.schedule_expression|cron_human }}</div>
{% endif %}
</td>
<td>
{% if api.enabled %}
<span class="badge bg-success">已启用</span>
{% else %}
<span class="badge bg-secondary">已停用</span>
{% endif %}
</td>
<td>
<a class="btn btn-sm btn-outline-primary" href="{{ url_for('apis.edit_api', api_id=api.id) }}">编辑</a>
2025-11-28 18:43:11 +08:00
<form action="{{ url_for('apis.copy_api', api_id=api.id) }}" method="post" class="d-inline">
<button class="btn btn-sm btn-outline-info" type="submit">复制</button>
</form>
2025-11-28 17:39:54 +08:00
<form action="{{ url_for('apis.toggle_api', api_id=api.id) }}" method="post" class="d-inline">
<button class="btn btn-sm btn-outline-warning" type="submit">
{% if api.enabled %}停用{% else %}启用{% endif %}
</button>
</form>
<form action="{{ url_for('apis.run_now', api_id=api.id) }}" method="post" class="d-inline">
<button class="btn btn-sm btn-outline-success" type="submit">立即执行</button>
</form>
<form action="{{ url_for('apis.delete_api', api_id=api.id) }}" method="post" class="d-inline" onsubmit="return confirm('确认删除该 API 配置?');">
<button class="btn btn-sm btn-outline-danger" type="submit">删除</button>
</form>
</td>
</tr>
{% else %}
<tr><td colspan="5" class="text-center">暂无 API 配置。</td></tr>
{% endfor %}
</tbody>
</table>
{% endblock %}