refactor(theseus/settings): drop Toolbar block from General, fold Registries into General
Two housekeeping changes to Settings > General: - Toolbar block (Address bar size + Search box size selects) removed — the toolbar drag handles landed in 0.3.15 do the same job in-place, and the discrete presets were duplicating that. Underlying settings keys and drag-set widthPx values still live in main; the UI dropdown was the only thing gone. - Registries section merged into General as a subheading. Sidebar navigation entry "Registries" removed; the naming section is now reachable from Settings > General. Collision-policy radios + reset- remembered-choices + Ariadne install/turn on/off/uninstall/update card all move as-is. No IDs changed, so the JS wiring (radios, ariadne buttons, collision summary) rebinds against the same nodes. The naming section stub stays commented so the section-nav JS doesn't crash if it looks up the old id.
This commit is contained in:
parent
93655f6a55
commit
8514989c58
1 changed files with 43 additions and 72 deletions
115
settings.html
115
settings.html
|
|
@ -145,7 +145,6 @@
|
|||
<a data-sec="general" class="active">General</a>
|
||||
<a data-sec="search">Search</a>
|
||||
<a data-sec="passwords">Passwords</a>
|
||||
<a data-sec="naming">Registries</a>
|
||||
<a data-sec="performance">Performance</a>
|
||||
<a data-sec="privacy">Privacy</a>
|
||||
<a data-sec="addons">Extensions</a>
|
||||
|
|
@ -177,27 +176,46 @@
|
|||
</button>
|
||||
</div>
|
||||
|
||||
<h2 class="sub" style="margin-top:1.8rem">Toolbar</h2>
|
||||
<p class="subd">Shrink the address bar and search box to make more room for extension icons.</p>
|
||||
<div class="row">
|
||||
<div class="txt"><div class="t">Address bar size</div><div class="d">Wide fills the row; compact leaves space for the extension dock.</div></div>
|
||||
<div class="ctl">
|
||||
<select id="urlBarSize">
|
||||
<option value="wide">Wide (default)</option>
|
||||
<option value="medium">Medium</option>
|
||||
<option value="compact">Compact</option>
|
||||
</select>
|
||||
<h2 class="sub" style="margin-top:1.8rem">Registries</h2>
|
||||
<p class="subd">How Theseus picks between the <b>BCNR / BCDN</b> and <b>ICANN / IANA</b>, when a name exists in both.</p>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:10px">
|
||||
<div class="txt"><div class="t">Collision policy</div>
|
||||
<div class="d">A name only exists in both registries when its TLD isn't BCNR-unique (e.g. <code>.de</code>). BCNR-unique TLDs (that only exist on BCNR) never conflict.</div></div>
|
||||
<div id="policyList" style="display:flex;flex-direction:column;gap:6px">
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="bcnr-first"><span><b>BCDN first</b> <span class="pmuted">— BCDN wins conflicts; falls back to ICANN for anything BCDN doesn't have.</span></span></label>
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="icann-first"><span><b>ICANN first</b> <span class="pmuted">— ICANN wins conflicts; BCDN fills gaps for non-ICANN TLDs.</span></span></label>
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="soft"><span><b>Ask each time</b> <span class="pmuted">— an "Open with…" prompt on conflict, remembered per name or per TLD.</span></span></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="txt"><div class="t">Search box</div><div class="d">Right-side quick-search that uses the engine you pick above.</div></div>
|
||||
<div class="ctl">
|
||||
<select id="searchBoxSize">
|
||||
<option value="wide">Wide (400 px)</option>
|
||||
<option value="normal">Normal (300 px)</option>
|
||||
<option value="compact">Compact (180 px)</option>
|
||||
<option value="hidden">Hidden</option>
|
||||
</select>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:8px">
|
||||
<div class="txt"><div class="t">Remembered choices</div>
|
||||
<div class="d">"Always use …" picks you made from the switcher or the prompt. Reset them to be asked again.</div></div>
|
||||
<div id="colSummary" class="pmuted" style="font-size:12.5px"></div>
|
||||
<div><button id="resetCollisions" class="btn">Reset remembered choices</button></div>
|
||||
</div>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:8px">
|
||||
<div class="txt">
|
||||
<div class="t">System-wide resolver — Ariadne's Thread</div>
|
||||
<div class="d">
|
||||
A local daemon that resolves BCDN names for <b>every browser on this machine</b>
|
||||
(Chrome, Edge, Firefox, etc.), not just Theseus. Turning it off means non-Theseus
|
||||
browsers stop resolving <code>.bch</code> / <code>.x</code> / other BCNR TLDs;
|
||||
Theseus keeps working either way, since it has its own built-in resolver.
|
||||
</div>
|
||||
</div>
|
||||
<div id="ariadneStatus" class="pmuted" style="font-size:12.5px">checking…</div>
|
||||
<div style="display:flex;gap:8px;flex-wrap:wrap">
|
||||
<button id="ariadneStart" class="btn" hidden>Turn on</button>
|
||||
<button id="ariadneStop" class="btn" hidden>Turn off</button>
|
||||
<button id="ariadneInstall" class="btn" hidden>Install</button>
|
||||
<button id="ariadneUpdate" class="btn" hidden>Update</button>
|
||||
<button id="ariadneUninstall" class="btn" hidden style="color:#f6768a;border-color:rgba(246,118,138,.35)">Uninstall</button>
|
||||
<button id="ariadneRefresh" class="btn">Refresh</button>
|
||||
</div>
|
||||
<div id="ariadneMissing" class="pmuted" style="font-size:12px" hidden>
|
||||
Ariadne's Thread isn't installed on this machine. Click <b>Install</b> above
|
||||
to run the bundled installer, or grab it manually from
|
||||
<a href="https://silentmode.st/tools/">silentmode.st/tools</a>.
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -296,50 +314,8 @@
|
|||
</div>
|
||||
</section>
|
||||
<!-- NAMING -->
|
||||
<section id="naming" hidden>
|
||||
<h1>Registries</h1>
|
||||
<p class="lede">How Theseus picks between the <b>BCNR / BCDN</b> and <b>ICANN / IANA</b>, when a name exists in both.</p>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:10px">
|
||||
<div class="txt"><div class="t">Collision policy</div>
|
||||
<div class="d">A name only exists in both registries when its TLD isn't BCNR-unique (e.g. <code>.de</code>). BCNR-unique TLDs (that only exist on BCNR) never conflict.</div></div>
|
||||
<div id="policyList" style="display:flex;flex-direction:column;gap:6px">
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="bcnr-first"><span><b>BCDN first</b> <span class="pmuted">— BCDN wins conflicts; falls back to ICANN for anything BCDN doesn't have.</span></span></label>
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="icann-first"><span><b>ICANN first</b> <span class="pmuted">— ICANN wins conflicts; BCDN fills gaps for non-ICANN TLDs.</span></span></label>
|
||||
<label class="polrow"><input type="radio" name="collisionPolicy" value="soft"><span><b>Ask each time</b> <span class="pmuted">— an "Open with…" prompt on conflict, remembered per name or per TLD.</span></span></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:8px">
|
||||
<div class="txt"><div class="t">Remembered choices</div>
|
||||
<div class="d">"Always use …" picks you made from the switcher or the prompt. Reset them to be asked again.</div></div>
|
||||
<div id="colSummary" class="pmuted" style="font-size:12.5px"></div>
|
||||
<div><button id="resetCollisions" class="btn">Reset remembered choices</button></div>
|
||||
</div>
|
||||
<div class="row" style="flex-direction:column;align-items:stretch;gap:8px">
|
||||
<div class="txt">
|
||||
<div class="t">System-wide resolver — Ariadne's Thread</div>
|
||||
<div class="d">
|
||||
A local daemon that resolves BCDN names for <b>every browser on this machine</b>
|
||||
(Chrome, Edge, Firefox, etc.), not just Theseus. Turning it off means non-Theseus
|
||||
browsers stop resolving <code>.bch</code> / <code>.x</code> / other BCNR TLDs;
|
||||
Theseus keeps working either way, since it has its own built-in resolver.
|
||||
</div>
|
||||
</div>
|
||||
<div id="ariadneStatus" class="pmuted" style="font-size:12.5px">checking…</div>
|
||||
<div style="display:flex;gap:8px;flex-wrap:wrap">
|
||||
<button id="ariadneStart" class="btn" hidden>Turn on</button>
|
||||
<button id="ariadneStop" class="btn" hidden>Turn off</button>
|
||||
<button id="ariadneInstall" class="btn" hidden>Install</button>
|
||||
<button id="ariadneUpdate" class="btn" hidden>Update</button>
|
||||
<button id="ariadneUninstall" class="btn" hidden style="color:#f6768a;border-color:rgba(246,118,138,.35)">Uninstall</button>
|
||||
<button id="ariadneRefresh" class="btn">Refresh</button>
|
||||
</div>
|
||||
<div id="ariadneMissing" class="pmuted" style="font-size:12px" hidden>
|
||||
Ariadne's Thread isn't installed on this machine. Click <b>Install</b> above
|
||||
to run the bundled installer, or grab it manually from
|
||||
<a href="https://silentmode.st/tools/">silentmode.st/tools</a>.
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- Registries moved into General (above). -->
|
||||
|
||||
<!-- PERFORMANCE -->
|
||||
<section id="performance" hidden>
|
||||
<h1>Performance</h1>
|
||||
|
|
@ -741,14 +717,9 @@
|
|||
const wm = document.getElementById("webrtcMode");
|
||||
wm.value = s.webrtcMode || "public_only";
|
||||
wm.onchange = () => C.set("webrtcMode", wm.value);
|
||||
// Toolbar sizing — pushes to main which broadcasts settings-update back
|
||||
// to the chrome renderer, so the URL bar / search box resize live.
|
||||
const ub = document.getElementById("urlBarSize");
|
||||
ub.value = s.urlBarSize || "wide";
|
||||
ub.onchange = () => C.set("urlBarSize", ub.value);
|
||||
const sb = document.getElementById("searchBoxSize");
|
||||
sb.value = s.searchBoxSize || "normal";
|
||||
sb.onchange = () => C.set("searchBoxSize", sb.value);
|
||||
// Toolbar sizing dropdowns removed — the toolbar drag-handles do the
|
||||
// same job in-place. The stored urlBarSize / searchBoxSize + the drag-
|
||||
// set widthPx settings still exist in main; they just have no UI here.
|
||||
document.getElementById("engAdd").onclick = () => {
|
||||
const name = document.getElementById("engName").value.trim();
|
||||
const url = document.getElementById("engUrl").value.trim();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue