Files
panel-vpn/web/templates/protocols.html
T

103 lines
4.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{.Title}} · VPN Panel</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/static/css/app.css">
</head>
<body class="page-admin">
<aside class="sidebar">
<a class="brand" href="/admin">VPN Panel</a>
<nav>
<a class="{{if eq .Active "dashboard"}}active{{end}}" href="/admin">Обзор</a>
<a class="{{if eq .Active "clients"}}active{{end}}" href="/admin/clients">Пользователи</a>
<a class="{{if eq .Active "nodes"}}active{{end}}" href="/admin/nodes">Ноды</a>
<a class="{{if eq .Active "profiles"}}active{{end}}" href="/admin/profiles">Профили</a>
<a class="{{if eq .Active "protocols"}}active{{end}}" href="/admin/protocols">Протоколы</a>
</nav>
<div class="sidebar-foot">
<span class="user-chip">{{.UserName}}</span>
<form method="POST" action="/logout"><button type="submit" class="link-btn">Выйти</button></form>
</div>
</aside>
<main class="admin-main">
<header class="admin-header">
<h1>Протоколы</h1>
<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>
</tr>
</thead>
<tbody>
{{range .Protocols}}
<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>{{.Port}}</td>
<td>
<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">
<button type="submit" class="btn btn-sm {{if .Enabled}}btn-ghost{{else}}btn-primary{{end}}">
{{if .Enabled}}Выключить{{else}}Включить{{end}}
</button>
</form>
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
<p class="hint" style="margin-top:1rem">
Установка на сервер — на странице ноды. «В панели» = доступен в каталоге;
«Установлен / Включён на» = фактическое состояние на серверах.
</p>
</main>
</body>
</html>