Show protocol enable state and which nodes have each protocol installed.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohi
2026-07-29 04:18:09 +03:00
co-authored by Cursor
parent 6510de0214
commit 1ad5125bf4
12 changed files with 745 additions and 67 deletions
+37 -6
View File
@@ -26,31 +26,57 @@
<main class="admin-main">
<header class="admin-header">
<h1>Протоколы</h1>
<p class="muted">Включение и отключение VPN-протоколов</p>
<p class="muted">Статус в панели и на каких серверах протокол установлен / включён</p>
</header>
{{if .Flash}}<div class="alert ok">{{.Flash}}</div>{{end}}
{{if .Error}}<div class="alert">{{.Error}}</div>{{end}}
<div class="table-wrap">
<table class="data-table">
<thead>
<tr>
<th>Протокол</th>
<th>Код</th>
<th>Порт</th>
<th>Статус</th>
<th>В панели</th>
<th>Установлен на</th>
<th>Включён на</th>
<th></th>
</tr>
</thead>
<tbody>
{{range .Protocols}}
<tr>
<tr class="{{if .Enabled}}row-on{{else}}row-off{{end}}">
<td>
<strong>{{.Name}}</strong>
<div class="cell-desc">{{.Description}}</div>
<code>{{.Code}}</code>
</td>
<td><code>{{.Code}}</code></td>
<td>{{.Port}}</td>
<td>
<span class="badge {{if .Enabled}}on{{else}}off{{end}}">{{if .Enabled}}Включён{{else}}Выключен{{end}}</span>
<span class="badge {{if .Enabled}}on{{else}}off{{end}}">{{.EnabledLabel}}</span>
</td>
<td>
{{if .InstalledOn}}
<div class="chip-list">
{{range .InstalledOn}}
<a class="chip {{statusClass (printf "%s" .Status)}}" href="/admin/nodes/{{.NodeID}}" title="{{.Host}}">{{.NodeName}}</a>
{{end}}
</div>
{{else}}
<span class="muted">нигде</span>
{{end}}
</td>
<td>
{{if .EnabledOn}}
<div class="chip-list">
{{range .EnabledOn}}
<a class="chip on" href="/admin/nodes/{{.NodeID}}" title="{{.Host}}">{{.NodeName}}</a>
{{end}}
</div>
{{else}}
<span class="muted">нигде</span>
{{end}}
</td>
<td class="actions">
<form method="POST" action="/admin/protocols/{{.ID}}/toggle">
@@ -64,6 +90,11 @@
</tbody>
</table>
</div>
<p class="hint" style="margin-top:1rem">
Установка на сервер — на странице ноды. «В панели» = доступен в каталоге;
«Установлен / Включён на» = фактическое состояние на серверах.
</p>
</main>
</body>
</html>