+
@@ -176,12 +178,12 @@
const sel = document.getElementById("searchEngine");
const esc = (s) => String(s || "").replace(/ `
`).join("");
+ sel.innerHTML = d.engines.map((e) => `
`).join("");
sel.value = d.current;
const custom = d.engines.filter((e) => !e.builtin);
const list = document.getElementById("customList");
list.innerHTML = custom.length
- ? custom.map((e) => `
${esc(e.name)}${esc(e.id)}
`).join("")
+ ? custom.map((e) => `
${e.sym || "🔍"}${esc(e.name)}${esc(e.id)}
`).join("")
: `
No custom engines yet.
`;
list.querySelectorAll(".cx").forEach((b) => b.onclick = () => C.removeEngine(b.dataset.id).then(renderEngines));
}
@@ -197,8 +199,12 @@
document.getElementById("engAdd").onclick = () => {
const name = document.getElementById("engName").value.trim();
const url = document.getElementById("engUrl").value.trim();
+ const sym = document.getElementById("engSym").value.trim();
if (!name || !url.includes("%s")) { alert("Enter a name and a URL containing %s (where the query goes)."); return; }
- C.addEngine({ name, url }).then((d) => { document.getElementById("engName").value = ""; document.getElementById("engUrl").value = ""; renderEngines(d); });
+ C.addEngine({ name, url, sym }).then((d) => {
+ document.getElementById("engName").value = ""; document.getElementById("engUrl").value = ""; document.getElementById("engSym").value = "";
+ renderEngines(d);
+ });
};
C.engines().then(renderEngines);
// anti-fingerprinting mode selectors, with value field(s) shown on "manual"