Добавил страницу для SRM

This commit is contained in:
kirillius 2026-07-15 13:07:49 +03:00
parent 1f6355fe32
commit b815de23c0
2 changed files with 48 additions and 0 deletions

View File

@ -11,6 +11,7 @@ import { TDNSConfig } from '../pages/TDNS.js';
import { FRRConfig } from '../pages/FRR.js';
import { ROSConfig } from '../pages/ROS.js';
import { DNSMASQConfig } from '../pages/DNSMASQ.js';
import { SRMPage } from '../pages/SRM.js';
import { SettingsPage } from '../pages/Settings.js';
import { LogsPage } from '../pages/Logs.js';
import { NetworkResourcesPage } from '../pages/NetworkResources.js';
@ -34,6 +35,7 @@ const allMenuItems = [
{ label: 'Настройка FRR', path: 'frr', component: 'ru.kirillius.pf.sdn.External.API.Components.FRR' },
{ label: 'Настройка ROS', path: 'ros', component: 'ru.kirillius.pf.sdn.External.API.Components.ROS' },
{ label: 'Настройка DNSMASQ', path: 'dnsmasq', component: 'ru.kirillius.pf.sdn.External.API.Components.DNSMASQ' },
{ label: 'SRM', path: 'srm', component: 'ru.kirillius.pf.sdn.External.API.Components.SRM' },
{ label: 'Журнал', path: 'logs', component: null },
{ label: 'Сетевые ресурсы', path: 'network-resources', component: null },
{ label: 'Разблокировка сайта', path: 'unlock-site', component: null },
@ -92,6 +94,11 @@ const routes = {
mount: DNSMASQConfig.mount,
unmount: DNSMASQConfig.unmount
},
'#srm': {
render: SRMPage.render,
mount: SRMPage.mount,
unmount: SRMPage.unmount
},
'#logs': {
render: LogsPage.render,
mount: LogsPage.mount,

41
webui/src/pages/SRM.js Normal file
View File

@ -0,0 +1,41 @@
import $ from 'jquery';
function getBaseUrl() {
return window.location.origin;
}
export const SRMPage = {
render: () => {
const baseUrl = getBaseUrl();
const updateUrl = `${baseUrl}/webhook/SRM/update`;
const subnetsUrl = `${baseUrl}/webhook/SRM/subnets`;
return `
<h1 class="page-title">SRM Webhooks</h1>
<div class="component-config-form">
<p class="hint-text" style="margin-bottom: 20px;">
SRM предоставляет HTTP webhook'ы для получения информации о текущем состоянии подсетей.
Настройка не требуется компонент отслеживает изменения автоматически.
</p>
<div class="form-group">
<label for="srm-update-url">Последнее обновление</label>
<textarea id="srm-update-url" class="form-control" readonly rows="1"
style="font-family: monospace; resize: vertical; cursor: text;"
onclick="this.select();">${updateUrl}</textarea>
<small class="hint-text">Возвращает временную метку (unix timestamp) последнего обновления списка подсетей.</small>
</div>
<div class="form-group" style="margin-top: 20px;">
<label for="srm-subnets-url">Список подсетей</label>
<textarea id="srm-subnets-url" class="form-control" readonly rows="1"
style="font-family: monospace; resize: vertical; cursor: text;"
onclick="this.select();">${subnetsUrl}</textarea>
<small class="hint-text">Возвращает текущий список подсетей в формате JSON array.</small>
</div>
</div>
`;
},
mount: async () => {},
unmount: () => {}
};