58 lines
1.7 KiB
HTML
58 lines
1.7 KiB
HTML
{% extends "admin/layout.html" %}
|
|
{% block admin_title %}Дашборд{% endblock %}
|
|
{% block admin_content %}
|
|
<div class="admin-top">
|
|
<h1>Дашборд</h1>
|
|
</div>
|
|
|
|
<div class="stats">
|
|
<div class="stat">
|
|
<div class="label">Панели 3x-ui</div>
|
|
<div class="value">{{ xui_panels|length }}</div>
|
|
</div>
|
|
<div class="stat">
|
|
<div class="label">Клиенты (сайт)</div>
|
|
<div class="value">{{ xui_clients_total }}</div>
|
|
</div>
|
|
<div class="stat">
|
|
<div class="label">Inbound’ы для пользователей</div>
|
|
<div class="value">{{ user_inbounds_total }}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel">
|
|
<div class="panel-head">
|
|
<strong>Серверы 3x-ui</strong>
|
|
<a class="btn btn-sm btn-accent" href="/admin/clients">Клиенты</a>
|
|
</div>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Имя</th>
|
|
<th>URL</th>
|
|
<th>Статус</th>
|
|
<th>Inbound’ы</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for p in xui_panels %}
|
|
<tr>
|
|
<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 p.is_reachable %}
|
|
<span class="badge badge-ok">online</span>
|
|
{% else %}
|
|
<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="4" class="muted">Панели ещё не добавлены — <a href="/admin/xui">подключить 3x-ui</a></td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endblock %}
|