Files
socks-manager/templates/logs.html
T
Your Name aa8af6c2e0 feat: SOCKS5 代理管理系统 v1.0
Flask + SQLite + Bootstrap5 暗色主题
- 仪表盘: 在线/离线统计 + 最近代理 + 操作日志
- 代理 CRUD: 增删改 + 启用/禁用 + 单/批量健康检测(SOCKS5)
- 分组管理: 创建/删除/筛选
- 操作日志: 分页查询
- RESTful API + Web 界面
- 管理员登录认证 (SM_ADMIN_PASSWORD 环境变量)
2026-07-16 16:40:20 +08:00

44 lines
1.8 KiB
HTML

{% extends "base.html" %}
{% block title %}日志 · SOCKS Manager{% endblock %}
{% block content %}
<h4 class="mb-4"><i class="bi bi-journal-text"></i> 操作日志</h4>
<div class="card">
<div class="card-body p-0">
<table class="table table-dark table-hover mb-0 table-sm">
<thead><tr><th>时间</th><th>级别</th><th>操作</th><th>目标</th><th>详情</th></tr></thead>
<tbody>
{% for l in pages.items %}
<tr>
<td>{{ l.timestamp.strftime('%Y-%m-%d %H:%M:%S') }}</td>
<td><span class="badge bg-{{ 'success' if l.level=='INFO' else 'warning' if l.level=='WARN' else 'danger' }}">{{ l.level }}</span></td>
<td>{{ l.action }}</td>
<td>{{ l.target or '-' }}</td>
<td>{{ l.detail or '-' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="card-footer d-flex justify-content-between align-items-center" style="border-color:#2a2d3a">
<span class="text-muted small">共 {{ pages.total }} 条</span>
<nav>
<ul class="pagination pagination-sm mb-0">
{% if pages.has_prev %}
<li class="page-item"><a class="page-link" href="?page={{ pages.prev_num }}" style="color:#818cf8">上一页</a></li>
{% endif %}
{% for n in range(page_start, page_end + 1) %}
<li class="page-item {% if n==pages.page %}active{% endif %}">
<a class="page-link" href="?page={{ n }}" style="color:#818cf8;background:{{ 'transparent' if n!=pages.page else '#818cf8' }};border-color:#2a2d3a">{{ n }}</a></li>
{% endfor %}
{% if pages.has_next %}
<li class="page-item"><a class="page-link" href="?page={{ pages.next_num }}" style="color:#818cf8">下一页</a></li>
{% endif %}
</ul>
</nav>
</div>
</div>
{% endblock %}