Browse Source

feat-panel-settings-toggle-and-transport-switch

master
Serge Shutov 2 weeks ago
parent
commit
b52f26bf3e
  1. 14
      content/panel.js

14
content/panel.js

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
connected: false,
loopsLeft: 0, loopsMax: 0,
dailyCount: 0, dailyMax: 0,
resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [], dotMode: null
resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [], dotMode: null, transport: 'msg', transport: 'msg'
};
var el = {};
function byId(id) { return document.getElementById(id); }
@ -34,9 +34,9 @@ @@ -34,9 +34,9 @@
var row1 = mk('div', 'dshmem-row');
el.start = mk('button', 'dshmem-btn primary', 'Start'); el.reset = mk('button', 'dshmem-btn', 'Reset queue');
el.stop = mk('button', 'dshmem-btn danger', 'Stop');
row1.appendChild(el.start); row1.appendChild(el.reset); row1.appendChild(el.stop);
row1.appendChild(el.start); row1.appendChild(el.reset); row1.appendChild(el.stop); el.settingsToggle = mk('button', 'dshmem-btn', 'Settings'); el.transportToggle = mk('button', 'dshmem-btn', 'DSH MSG'); row1.appendChild(el.settingsToggle); row1.appendChild(el.transportToggle); el.settingsToggle = mk('button', 'dshmem-btn', 'Settings'); el.transportToggle = mk('button', 'dshmem-btn', 'DSH MSG'); row1.appendChild(el.settingsToggle); row1.appendChild(el.transportToggle);
el.body.appendChild(row1); el.stats = mk('div','dshmem-stats'); el.stats.id='dshmem-stats'; el.body.appendChild(el.stats); el.metrics = mk('div','dshmem-stats'); el.metrics.id='dshmem-metrics'; el.metrics.textContent='metrics: —'; el.body.appendChild(el.metrics);
var set = mk('div', 'dshmem-settings');
var set = mk('div', 'dshmem-settings'); el.settings = set;
var lbl = mk('div', 'dshmem-label', 'Token (save, then reload page)');
el.token = mk('input', 'dshmem-input');
el.token.type = 'password';
@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
el.save = mk('button', 'dshmem-btn primary', 'Save');
el.health = mk('button', 'dshmem-btn', 'Health');
row2.appendChild(el.save); row2.appendChild(el.health);
set.appendChild(lbl); set.appendChild(el.token); set.appendChild(row2);
set.appendChild(lbl); set.appendChild(el.token); set.appendChild(row2); set.style.display = 'none'; set.style.display = 'none';
el.body.appendChild(set);
el.log = mk('div', 'dshmem-log');
el.log.id = 'dshmem-log';
@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@
el.toggle.addEventListener('click', function () {
el.body.style.display = el.body.style.display === 'none' ? '' : 'none';
});
el.reset.addEventListener('click', function () { el.start.disabled = false; state.resetCbs.forEach(function (cb) { try { cb(); } catch (e) {} }); });
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.health.addEventListener('click', function () {
@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
onResetLoops: function (cb) { state.resetCbs.push(cb); },
onStop: function (cb) { state.stopCbs.push(cb); }, onStart: function (cb) { state.startCbs.push(cb); },
onSaveToken: function (cb) { state.saveCbs.push(cb); },
getToken: function () { return el.token ? el.token.value : ''; },
getToken: function () { return el.token ? el.token.value : ''; }, getTransport: function () { return state.transport; }, setTransport: function (v) { state.transport = v === 'xhr' ? 'xhr' : 'msg'; if (el.transportToggle) el.transportToggle.textContent = state.transport === 'msg' ? 'DSH MSG' : 'DSH XHR'; },
setToken: function (v) { if (el.token) el.token.value = v || ''; },
showConfirm: function (opt) {
if (!el.confirm) return;
@ -120,7 +120,7 @@ @@ -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(); }
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) { } }
};
globalThis.DSHMEM = API;
if (document.readyState === 'loading') {

Loading…
Cancel
Save