HoneyBar: kein zweiter Punkt, der auf dieselbe Seite fuehrt

This commit is contained in:
marc committed 2026-09-01 01:12:02 +02:00
1 parent 75df4e0833
commit aec042a8c9
4 files changed
+35 -38

No files matched your search

+14 -15
View File
@@ -259,7 +259,6 @@
<div class="menu sys" id="sysmenu" role="menu">
<div class="head">honeyos</div>
<a id="mHome" role="menuitem">Schreibtisch</a>
<a id="mSettings" role="menuitem">Einstellungen &hellip;</a>
<hr />
<button id="hide" role="menuitem">HoneyBar einklappen</button>
</div>
@@ -469,25 +468,25 @@
}
/**
* Die zwei Wege ins System. Beides sind Links auf den Schreibtisch, keine
* Aktionen hier — und das ist keine Bequemlichkeit, sondern die Grenze:
* Der eine Weg ins System: ein Link auf den Schreibtisch, keine Aktion hier.
*
* Einstellungen **schreiben**. Dafuer braucht der Server die HoneyOS-Sitzung,
* und die schickt der Browser aus einer fremden App nicht mit; liegt alles
* unter einer Domain, kommt sie zwar mit, aber das CSRF-Prüfwort steht in
* einem Cookie der HoneyOS-Adresse, das dieses Skript von hier aus nicht
* lesen darf.
* Das ist keine Bequemlichkeit, sondern die Grenze: Einstellungen
* **schreiben**. Dafuer braucht der Server die HoneyOS-Sitzung, und die
* schickt der Browser aus einer fremden App nicht mit; liegt alles unter
* einer Domain, kommt sie zwar mit, aber das CSRF-Prüfwort steht in einem
* Cookie der HoneyOS-Adresse, das dieses Skript von hier aus nicht lesen darf.
*
* Hier stand deshalb lange ein zweiter Punkt „Einstellungen …", der auf
* dieselbe Seite fuehrte, nur mit geoeffnetem Feld. **Weg damit** (Marcs
* Einwand, 01.09.2026): Zwei Tueren in denselben Raum sind keine zwei Wege.
* Wer eine Einstellung aendern will, ist ohnehin auf dem Schreibtisch, und
* dort steht sie einen Klick oder ein [S] entfernt.
*
* Abmelden steht hier bewusst gar nicht: Es gehoert dorthin, wo man sich
* angemeldet hat. Wer es aus einer App heraus braucht, geht ueber
* „Einstellungen …" — dort unten steht der Knopf.
* angemeldet hat — unten in den Einstellungen.
*/
function systemZiele() {
const heim = new URL(homeUrl, location.href);
root.getElementById("mHome").href = heim.href;
const einst = new URL(homeUrl, location.href);
einst.search = "einstellungen=1";
root.getElementById("mSettings").href = einst.href;
root.getElementById("mHome").href = new URL(homeUrl, location.href).href;
}
/**
-9
View File
@@ -1208,15 +1208,6 @@ async function main() {
if (e.target === $("modal")) closeModal();
});
// Was die HoneyBar aus einer fremden App herüberreicht: Sie darf selbst
// nichts schreiben (siehe honeybar.js), also stellt sie die Frage in der
// Adresse und der Schreibtisch beantwortet sie. Danach kommt die Adresse
// weg — ein Neuladen soll die Einstellungen nicht wieder aufreißen.
if (new URLSearchParams(location.search).get("einstellungen") === "1") {
history.replaceState(null, "", location.pathname);
openSettings();
}
window.addEventListener("keydown", (e) => {
if (e.metaKey || e.ctrlKey || e.altKey) return;
const typing = /^(INPUT|TEXTAREA|SELECT)$/.test(e.target.tagName);