feat: настройки Browser Bridge в Verstak и extension
Verstak (GUI): - SettingsBrowserBridge.svelte — новая секция в Settings: toggle вкл/выкл сервера, поле порта (default 9786), статус (Запущен/Остановлен), кнопки Сохранить/Перезапустить - SettingsWindow + SettingsSidebar — подключена секция browserBridge - BridgeConfig: добавлено поле Enabled (default true) - RestartBridge() — новый биндинг для перезапуска сервера - initVault: проверяет bc.Enabled перед запуском bridge Extension (Chrome + Firefox): - popup: панель настроек с полем порта (default 9786) - кнопка «Проверить» — fetch /api/ping с таймаутом 3с - кнопка «Сохранить» — сохраняет port в chrome.storage.local - статус соединения: ✓ Сервер отвечает / ✗ Недоступен / ✗ Таймаут - оба расширения работают только с 127.0.0.1
This commit is contained in:
+63
-35
@@ -8,45 +8,73 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<h1>Verstak Bridge</h1>
|
||||
<span id="status-dot" class="dot offline"></span>
|
||||
</header>
|
||||
<!-- Main panel -->
|
||||
<div id="main-panel">
|
||||
<header>
|
||||
<h1>Verstak Bridge</h1>
|
||||
<span id="status-dot" class="dot offline"></span>
|
||||
</header>
|
||||
|
||||
<section class="info">
|
||||
<div class="row">
|
||||
<span class="label">Сервер</span>
|
||||
<span id="bridge-status" class="value offline">Недоступен</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label">Очередь</span>
|
||||
<span id="queue-count" class="value">—</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label">Порт</span>
|
||||
<span id="bridge-port" class="value">—</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="info">
|
||||
<div class="row">
|
||||
<span class="label">Сервер</span>
|
||||
<span id="bridge-status" class="value offline">Недоступен</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label">Очередь</span>
|
||||
<span id="queue-count" class="value">—</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label">Адрес</span>
|
||||
<span id="bridge-port" class="value">—</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="controls">
|
||||
<label class="toggle">
|
||||
<input type="checkbox" id="track-toggle" checked>
|
||||
<span class="slider"></span>
|
||||
<span class="toggle-label">Отслеживать вкладки</span>
|
||||
</label>
|
||||
</section>
|
||||
<section class="controls">
|
||||
<label class="toggle">
|
||||
<input type="checkbox" id="track-toggle" checked>
|
||||
<span class="slider"></span>
|
||||
<span class="toggle-label">Отслеживать вкладки</span>
|
||||
</label>
|
||||
</section>
|
||||
|
||||
<section class="recent">
|
||||
<h2>Последние события</h2>
|
||||
<div id="event-list">
|
||||
<p class="empty">Нет событий</p>
|
||||
</div>
|
||||
</section>
|
||||
<section class="recent">
|
||||
<h2>Последние события</h2>
|
||||
<div id="event-list">
|
||||
<p class="empty">Нет событий</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<button id="sync-btn" class="btn">🔄 Отправить сейчас</button>
|
||||
<button id="config-btn" class="btn secondary">⚙ Настройки</button>
|
||||
</footer>
|
||||
<footer>
|
||||
<button id="sync-btn" class="btn">🔄 Отправить сейчас</button>
|
||||
<button id="settings-btn" class="btn secondary">⚙</button>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- Settings panel (hidden by default) -->
|
||||
<div id="settings-panel" style="display: none;">
|
||||
<header>
|
||||
<h1>Настройки</h1>
|
||||
</header>
|
||||
|
||||
<section class="settings-form">
|
||||
<div class="form-group">
|
||||
<label for="port-input">Порт сервера</label>
|
||||
<div class="port-row">
|
||||
<span class="port-prefix">127.0.0.1:</span>
|
||||
<input type="number" id="port-input" min="1024" max="65535" value="9786" />
|
||||
</div>
|
||||
<p class="hint">По умолчанию: 9786. Изменения вступят в силу при следующей отправке событий.</p>
|
||||
</div>
|
||||
|
||||
<div class="settings-actions">
|
||||
<button id="test-port-btn" class="btn">Проверить</button>
|
||||
<button id="save-port-btn" class="btn primary">Сохранить</button>
|
||||
</div>
|
||||
|
||||
<div id="port-status" class="port-status"></div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<script src="popup.js"></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user