From ac70b0c505c14e2891acbc03e3cb3e831f5e1425 Mon Sep 17 00:00:00 2001 From: Serge Alex Date: Mon, 2 Nov 2026 10:28:30 +0300 Subject: [PATCH] feat-acc-limit-setting-and-color-status --- content/overlay.css | 4 ++++ content/panel.js | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/content/overlay.css b/content/overlay.css index a643eb1..61bb706 100644 --- a/content/overlay.css +++ b/content/overlay.css @@ -111,3 +111,7 @@ .dshmem-settings { margin-top: 8px; border-top: 1px solid rgba(255,255,255,0.12); padding-top: 8px; } .dshmem-settings .dshmem-input { margin-top: 4px; } .dshmem-label { color: #9aa0a6; font-size: 11px; margin-top: 6px; } +.dshmem-acc-ok { color: #34c759; } +.dshmem-acc-warn { color: #ffcc00; } +.dshmem-acc-err { color: #ff5f57; } +.dshmem-acc-crit { color: #b62324; } diff --git a/content/panel.js b/content/panel.js index ac9e1aa..571a465 100644 --- a/content/panel.js +++ b/content/panel.js @@ -7,7 +7,7 @@ connected: false, loopsLeft: 0, loopsMax: 0, dailyCount: 0, dailyMax: 0, - resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [], dotMode: null, transport: 'msg', transport: 'msg' + resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [], dotMode: null, transport: 'msg', accLimit: 900000, lastMetrics: null, lastMetrics: null, accLimit: 900000, transport: 'msg' }; var el = {}; function byId(id) { return document.getElementById(id); } @@ -44,7 +44,7 @@ var row2 = mk('div', 'dshmem-row'); el.save = mk('button', 'dshmem-btn primary', 'Save'); el.health = mk('button', 'dshmem-btn', 'Health'); - row2.appendChild(el.save); row2.appendChild(el.health); el.transportToggle = mk('button', 'dshmem-btn danger', 'DSH MSG'); row2.appendChild(el.transportToggle); + row2.appendChild(el.save); row2.appendChild(el.health); el.transportToggle = mk('button', 'dshmem-btn danger', 'DSH MSG'); row2.appendChild(el.transportToggle); var lblAcc = mk('div', 'dshmem-label', 'Acc limit (100%)'); set.appendChild(lblAcc); el.accLimit = mk('input', 'dshmem-input'); el.accLimit.type = 'number'; el.accLimit.placeholder = '900000'; el.accLimit.value = '900000'; set.appendChild(el.accLimit); set.appendChild(lbl); set.appendChild(el.token); set.appendChild(row2); set.style.display = 'none'; el.body.appendChild(set); el.log = mk('div', 'dshmem-log'); @@ -64,7 +64,7 @@ }); el.settingsToggle.addEventListener('click', function () { var s = el.settings; if (s) { s.style.display = s.style.display === 'none' ? '' : 'none' } }); el.transportToggle.addEventListener('click', function () { state.transport = state.transport === 'msg' ? 'xhr' : 'msg'; el.transportToggle.textContent = state.transport === 'msg' ? 'DSH MSG' : 'DSH XHR'; try { chrome.storage.local.set({ 'dshmem-transport': state.transport }) } catch (e) { } }); el.reset.addEventListener('click', function () { el.start.disabled = false; state.resetCbs.forEach(function (cb) { try { cb(); } catch (e) {} }); }); el.stop.addEventListener('click', function () { el.start.disabled = false; state.stopCbs.forEach(function (cb) { try { cb(); } catch (e) {} }); }); el.start.addEventListener('click', function () { el.start.disabled = true; state.startCbs.forEach(function (cb) { try { cb(); } catch (e) {} }); }); - el.save.addEventListener('click', function () { var v = el.token.value || ''; state.saveCbs.forEach(function (cb) { try { cb(v); } catch (e) {} }); }); + el.accLimit.addEventListener('change', function () { var n = parseInt(el.accLimit.value, 10); if (!n || n < 1000) n = 900000; state.accLimit = n; try { chrome.storage.local.set({ 'dshmem-acc-limit': n }) } catch (e) { } API.setMetrics(state.lastMetrics); }); el.accLimit.addEventListener('change', function () { var n = parseInt(el.accLimit.value, 10); if (!n || n < 1000) n = 900000; state.accLimit = n; try { chrome.storage.local.set({ 'dshmem-acc-limit': n }) } catch (e) { } API.setMetrics(state.lastMetrics); }); el.save.addEventListener('click', function () { var v = el.token.value || ''; state.saveCbs.forEach(function (cb) { try { cb(v); } catch (e) {} }); }); el.health.addEventListener('click', function () { try { globalThis.DSH_BRIDGE.health().then(function (r) { if (r && r.ok) { API.setConnected(true); API.log('health ok, bridge up'); } @@ -120,7 +120,7 @@ el.preview.onclick = function () { cancelled = true; clearInterval(iv); el.preview.style.display = 'none'; el.preview.onclick = null; if (opt.onCancel) opt.onCancel(); }; }, hidePreview: function () { if (el.preview) el.preview.style.display = 'none'; }, - init: function () { build(); wire(); try { chrome.storage.local.get('dshmem-transport', function (v) { if (v && v['dshmem-transport']) API.setTransport(v['dshmem-transport']) }) } catch (e) { } } + init: function () { build(); wire(); try { chrome.storage.local.get('dshmem-transport', function (v) { if (v && v['dshmem-transport']) API.setTransport(v['dshmem-transport']) }) } catch (e) { } try { chrome.storage.local.get('dshmem-acc-limit', function (v) { var n = v && v['dshmem-acc-limit'] ? parseInt(v['dshmem-acc-limit'], 10) : 0; if (n && n >= 1000) { state.accLimit = n; if (el.accLimit) el.accLimit.value = String(n); API.setMetrics(state.lastMetrics); } }) } catch (e) { } } }; globalThis.DSHMEM = API; if (document.readyState === 'loading') {