HoneyBar: kein zweiter Punkt, der auf dieselbe Seite fuehrt
This commit is contained in:
1 parent
75df4e0833
commit
aec042a8c9
4 files changed
+35
-38
No files matched your search
@@ -43,8 +43,11 @@ Eine Annahme von damals hat sich nicht gehalten: „ohne sie zu verlassen"
|
||||
schreibt, und die HoneyBar darf in einer fremden App nicht schreiben — die
|
||||
Sitzung kommt über die Site-Grenze nicht mit, und selbst unter einer Domain
|
||||
liegt das CSRF-Prüfwort in einem Cookie, das nur HoneyOS' eigene Seiten lesen.
|
||||
Also reicht die HoneyBar die Frage als `?einstellungen=1` an den Schreibtisch
|
||||
weiter. Ein Klick, ein Seitenwechsel — dort, wo man angemeldet ist.
|
||||
Die HoneyBar hat die Frage deshalb als `?einstellungen=1` an den Schreibtisch
|
||||
weitergereicht. **Auch das ist seit dem 01.09.2026 weg** (Marcs Einwand): Wenn
|
||||
der Punkt ohnehin nur weiterleitet, ist er neben „Schreibtisch" keine zweite
|
||||
Möglichkeit, sondern dieselbe mit einem Zwischenschritt weniger. Das Bar-Menü
|
||||
trägt jetzt Schreibtisch und Einklappen, sonst nichts.
|
||||
|
||||
**Abmelden ist ganz aus den Leisten verschwunden** und steht unten in den
|
||||
Einstellungen (Marcs Entscheidung, 29.08.2026). Aus fremden Apps war es ohnehin
|
||||
|
||||
@@ -554,21 +554,25 @@ Das `■ HONEYOS` links ist ein Menü — auf dem Schreibtisch wie in jeder App:
|
||||
| in der HoneyBar (fremde App) | auf dem Schreibtisch |
|
||||
|---|---|
|
||||
| Schreibtisch | Über HoneyOS |
|
||||
| Einstellungen … | Einstellungen |
|
||||
| HoneyBar einklappen | Terminal-/Desktop-Modus |
|
||||
| HoneyBar einklappen | Einstellungen |
|
||||
| — | Terminal-/Desktop-Modus |
|
||||
|
||||
Rechts daneben klappt ein Pfeil die App-Liste auf — in beiden Leisten gleich.
|
||||
Das Zahnrad, das dort früher stand, ist weg: Einstellungen stehen jetzt links
|
||||
im Systemmenü, wo sie in jeder App auch stehen.
|
||||
Das Zahnrad, das dort früher stand, ist weg: Auf dem Schreibtisch stehen die
|
||||
Einstellungen links im Systemmenü; in einer fremden App gibt es sie nicht,
|
||||
sondern nur den Weg dorthin.
|
||||
|
||||
**In den Apps sind die Punkte Links auf den Schreibtisch, keine Handlungen** —
|
||||
und das ist eine Grenze, keine Bequemlichkeit. Einstellungen schreiben, und
|
||||
dafür braucht der Server die HoneyOS-Sitzung: Aus einer fremden Site schickt der
|
||||
Browser sie nicht mit, und selbst unter einer Domain liegt das CSRF-Prüfwort in
|
||||
einem Cookie, das nur HoneyOS' eigene Seiten lesen dürfen. Also stellt die
|
||||
HoneyBar die Frage in der Adresse (`?einstellungen=1`), und der Schreibtisch
|
||||
beantwortet sie: Er macht dasselbe Feld auf, das auch `[S]` öffnet, und nimmt
|
||||
den Anhang danach wieder aus der Adresse.
|
||||
**In den Apps ist „Schreibtisch" ein Link, keine Handlung** — und das ist eine
|
||||
Grenze, keine Bequemlichkeit. Einstellungen schreiben, und dafür braucht der
|
||||
Server die HoneyOS-Sitzung: Aus einer fremden Site schickt der Browser sie nicht
|
||||
mit, und selbst unter einer Domain liegt das CSRF-Prüfwort in einem Cookie, das
|
||||
nur HoneyOS' eigene Seiten lesen dürfen.
|
||||
|
||||
Deshalb stand dort lange ein zweiter Punkt „Einstellungen …", der auf dieselbe
|
||||
Seite führte, nur mit geöffnetem Feld. **Er ist weg** (01.09.2026): Zwei Türen
|
||||
in denselben Raum sind keine zwei Wege. Wer etwas einstellen will, ist damit
|
||||
ohnehin auf dem Schreibtisch, und dort steht das Feld einen Klick — oder `[S]` —
|
||||
entfernt.
|
||||
|
||||
**Abmelden steht in den Einstellungen, ganz unten — und sonst nirgends.** Nicht
|
||||
in der HoneyBar fremder Apps, nicht im Systemmenü, nicht im Startmenü. Es ist
|
||||
|
||||
+14
-15
@@ -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 …</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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user