Replace servers nav with 3x-ui clients page showing enabled inbounds

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
test2
2026-07-25 22:39:07 +03:00
co-authored by Cursor
parent 0b3103bd78
commit 170927b8f8
4 changed files with 102 additions and 168 deletions
+18 -20
View File
@@ -7,51 +7,49 @@
<div class="stats">
<div class="stat">
<div class="label">Серверы</div>
<div class="value">{{ servers|length }}</div>
<div class="label">Панели 3x-ui</div>
<div class="value">{{ xui_panels|length }}</div>
</div>
<div class="stat">
<div class="label">Клиенты</div>
<div class="value">{{ clients_total }}</div>
<div class="label">Клиенты (сайт)</div>
<div class="value">{{ xui_clients_total }}</div>
</div>
<div class="stat">
<div class="label">Активные</div>
<div class="value">{{ clients_active }}</div>
<div class="label">Inbound’ы для пользователей</div>
<div class="value">{{ user_inbounds_total }}</div>
</div>
</div>
<div class="panel">
<div class="panel-head">
<strong>Протоколы</strong>
<a class="btn btn-sm btn-accent" href="/admin/clients">Управлять клиентами</a>
<strong>Серверы 3x-ui</strong>
<a class="btn btn-sm btn-accent" href="/admin/clients">Клиенты</a>
</div>
<table>
<thead>
<tr>
<th>Имя</th>
<th>Протокол</th>
<th>Endpoint</th>
<th>Подсеть</th>
<th>URL</th>
<th>Статус</th>
<th>Inbound’ы</th>
</tr>
</thead>
<tbody>
{% for s in servers %}
{% for p in xui_panels %}
<tr>
<td>{{ s.name }}</td>
<td><span class="badge badge-proto">{{ s.protocol }}</span></td>
<td class="mono" style="background:transparent;color:inherit;padding:0">{{ s.public_host }}:{{ s.public_port }}</td>
<td>{{ s.subnet }}</td>
<td><a href="/admin/xui/{{ p.id }}">{{ p.name }}</a></td>
<td class="muted" style="word-break:break-all">{{ p.base_url }}</td>
<td>
{% if s.is_enabled %}
<span class="badge badge-ok">enabled</span>
{% if p.is_reachable %}
<span class="badge badge-ok">online</span>
{% else %}
<span class="badge badge-off">disabled</span>
<span class="badge badge-off">offline</span>
{% endif %}
</td>
<td class="muted">{{ user_inbounds_by_panel.get(p.id, [])|length }}</td>
</tr>
{% else %}
<tr><td colspan="5" class="muted">Серверы ещё не созданы</td></tr>
<tr><td colspan="4" class="muted">Панели ещё не добавлены — <a href="/admin/xui">подключить 3x-ui</a></td></tr>
{% endfor %}
</tbody>
</table>