fix(web-clipper): bouton rond transparent draggable + toggle affichage + refresh auto sidebar + fix bloc bookmark (v6.2.1)
FlowDeck CI / lint (push) Successful in 1m14s
FlowDeck CI / test (push) Failing after 8m44s
FlowDeck CI / docker (push) Skipped

- bouton flottant rond (44px), semi-transparent blur, hover plus fonce, deplacable souris (pos persistee storage)
- option afficher/cacher dans popup extension (showButton)
- clipper: notification instantanee des onglets FlowDeck via tabs.sendMessage + polling 15s + BroadcastChannel + visibilitychange
- fix bookmark template literal '+title+' -> \/\/\/\/\ (_page_editor_scripts.html)
- sync static/extension + zip
This commit is contained in:
2026-09-20 11:02:49 -04:00
parent 7f998faf7b
commit ea19d1d050
14 changed files with 520 additions and 38 deletions
+20 -1
View File
@@ -5,19 +5,36 @@ async function load() {
const cfg = await chrome.runtime.sendMessage({ action: "getConfig" });
$("serverUrl").value = cfg.serverUrl || "http://localhost:8080";
$("token").value = cfg.token || "";
const sb = $("showButton");
if (sb) sb.checked = cfg.showButton !== false;
}
async function save() {
const serverUrl = $("serverUrl").value.trim() || "http://localhost:8080";
const token = $("token").value.trim();
// deviceId preserved
const showButton = $("showButton") ? $("showButton").checked : true;
const cfg = await chrome.runtime.sendMessage({ action: "getConfig" });
cfg.serverUrl = serverUrl.replace(/\/$/, "");
cfg.token = token;
cfg.showButton = showButton;
await chrome.runtime.sendMessage({ action: "setConfig", config: cfg });
show("Saved ✓", "ok");
}
async function toggleButton(show) {
const cfg = await chrome.runtime.sendMessage({ action: "getConfig" });
cfg.showButton = show;
await chrome.runtime.sendMessage({ action: "setConfig", config: cfg });
// Notify all tabs immediately for instant UX
try {
const tabs = await chrome.tabs.query({});
for (const t of tabs) {
if (!t.id) continue;
chrome.tabs.sendMessage(t.id, { action: "toggleButton", show }).catch(() => {});
}
} catch (_e) {}
}
async function verify() {
await save();
const res = await chrome.runtime.sendMessage({ action: "auth" });
@@ -72,5 +89,7 @@ $("clipBookmark").addEventListener("click", () => doClip("bookmark"));
$("clipSelection").addEventListener("click", () => doClip("selection"));
$("openFlowDeck").addEventListener("click", (e) => { e.preventDefault(); chrome.tabs.create({ url: $("serverUrl").value || "http://localhost:8080" }); });
$("openExtensions").addEventListener("click", (e) => { e.preventDefault(); chrome.tabs.create({ url: ($("serverUrl").value || "http://localhost:8080") + "/extensions" }); });
const _sb = $("showButton");
if (_sb) _sb.addEventListener("change", (e) => toggleButton(e.target.checked));
load();