From b815de23c0ef74f23a9ae683b93bcc23937a0d4d Mon Sep 17 00:00:00 2001 From: kirillius Date: Wed, 15 Jul 2026 13:07:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=83=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20SRM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webui/src/modules/router.js | 7 +++++++ webui/src/pages/SRM.js | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 webui/src/pages/SRM.js diff --git a/webui/src/modules/router.js b/webui/src/modules/router.js index 1b4689d..4c4443f 100644 --- a/webui/src/modules/router.js +++ b/webui/src/modules/router.js @@ -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, diff --git a/webui/src/pages/SRM.js b/webui/src/pages/SRM.js new file mode 100644 index 0000000..a91268a --- /dev/null +++ b/webui/src/pages/SRM.js @@ -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 ` +

SRM Webhooks

+
+

+ SRM предоставляет HTTP webhook'ы для получения информации о текущем состоянии подсетей. + Настройка не требуется — компонент отслеживает изменения автоматически. +

+ +
+ + + Возвращает временную метку (unix timestamp) последнего обновления списка подсетей. +
+ +
+ + + Возвращает текущий список подсетей в формате JSON array. +
+
+ `; + }, + mount: async () => {}, + unmount: () => {} +};