Страница сети была переведена на единое меню
Этот коммит содержится в:
@@ -7,15 +7,17 @@
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="shell">
|
||||
<header class="topbar">
|
||||
<div class="v-layout">
|
||||
{% include "_sidebar.html" %}
|
||||
|
||||
<main class="v-main">
|
||||
<header class="v-topbar">
|
||||
<div>
|
||||
<div class="brand">Сеть</div>
|
||||
<div class="muted">NAT Router для VPS, проброс одиночных портов и диапазонов к VM</div>
|
||||
<div class="v-title">Сеть</div>
|
||||
<div class="v-subtitle">NAT Router для VPS, проброс одиночных портов и диапазонов к VM</div>
|
||||
</div>
|
||||
<div class="top-meta">
|
||||
<span>user: {{ user }}</span>
|
||||
<a class="link-pill accent" href="/vm/create">+ Создать VM</a>
|
||||
<a class="link-pill" href="/">← Дашборд</a>
|
||||
<form method="post" action="/logout" class="logout-form"><button class="ghost">Выйти</button></form>
|
||||
</div>
|
||||
@@ -83,12 +85,10 @@
|
||||
<span>Описание</span>
|
||||
<input type="text" name="note" placeholder="Например: сайт, SSH, SIP, RTP MikoPBX">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<span>Внешний порт или диапазон</span>
|
||||
<input type="text" name="external_port" pattern="[0-9]{1,5}([:-][0-9]{1,5})?" placeholder="80, 443, 2222 или 10000-20000" required>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<span>Машина</span>
|
||||
<select name="vm_name" required>
|
||||
@@ -97,9 +97,7 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<input type="hidden" name="guest_ip" value="auto">
|
||||
|
||||
<label>
|
||||
<span>Внутренний порт или диапазон</span>
|
||||
<input type="text" name="guest_port" list="standard-ports" pattern="[0-9]{1,5}([:-][0-9]{1,5})?" placeholder="Выбери стандартный или введи 10000-20000" required>
|
||||
@@ -136,7 +134,6 @@
|
||||
<option value="10000-20000" label="RTP / VoIP media range"></option>
|
||||
</datalist>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<span>Протокол</span>
|
||||
<select name="protocol">
|
||||
@@ -144,11 +141,7 @@
|
||||
<option value="udp">udp</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<div class="notice">
|
||||
Можно указать одиночный порт или диапазон. Для VoIP/RTP обычно: внешний 10000-20000 → внутренний 10000-20000, протокол udp. Длины диапазонов должны совпадать.
|
||||
</div>
|
||||
|
||||
<div class="notice">Можно указать одиночный порт или диапазон. Для VoIP/RTP обычно: внешний 10000-20000 → внутренний 10000-20000, протокол udp. Длины диапазонов должны совпадать.</div>
|
||||
<button class="primary wide">Добавить и применить</button>
|
||||
</form>
|
||||
</article>
|
||||
@@ -214,14 +207,8 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="grid two top-space">
|
||||
<article>
|
||||
<div class="label">Проверить входящий трафик</div>
|
||||
<pre>{{ diagnostics.commands.watch_external }}</pre>
|
||||
</article>
|
||||
<article>
|
||||
<div class="label">Проверить трафик к VM</div>
|
||||
<pre>{{ diagnostics.commands.watch_internal }}</pre>
|
||||
</article>
|
||||
<article><div class="label">Проверить входящий трафик</div><pre>{{ diagnostics.commands.watch_external }}</pre></article>
|
||||
<article><div class="label">Проверить трафик к VM</div><pre>{{ diagnostics.commands.watch_internal }}</pre></article>
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
@@ -255,9 +242,7 @@
|
||||
<input type="hidden" name="protocol" value="{{ item.protocol }}">
|
||||
<button>Диагностика</button>
|
||||
</form>
|
||||
<form method="post" action="/network/forward/{{ item.id }}/delete">
|
||||
<button class="danger">Удалить</button>
|
||||
</form>
|
||||
<form method="post" action="/network/forward/{{ item.id }}/delete"><button class="danger">Удалить</button></form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -275,6 +260,8 @@
|
||||
</div>
|
||||
<pre>{{ ctx.nft_rules }}</pre>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
<script src="/static/panel.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Ссылка в новой задаче
Block a user