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
|
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
|
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.
|
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
|
Die HoneyBar hat die Frage deshalb als `?einstellungen=1` an den Schreibtisch
|
||||||
weiter. Ein Klick, ein Seitenwechsel — dort, wo man angemeldet ist.
|
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
|
**Abmelden ist ganz aus den Leisten verschwunden** und steht unten in den
|
||||||
Einstellungen (Marcs Entscheidung, 29.08.2026). Aus fremden Apps war es ohnehin
|
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 |
|
| in der HoneyBar (fremde App) | auf dem Schreibtisch |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Schreibtisch | Über HoneyOS |
|
| Schreibtisch | Über HoneyOS |
|
||||||
| Einstellungen … | Einstellungen |
|
| HoneyBar einklappen | Einstellungen |
|
||||||
| HoneyBar einklappen | Terminal-/Desktop-Modus |
|
| — | Terminal-/Desktop-Modus |
|
||||||
|
|
||||||
Rechts daneben klappt ein Pfeil die App-Liste auf — in beiden Leisten gleich.
|
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
|
Das Zahnrad, das dort früher stand, ist weg: Auf dem Schreibtisch stehen die
|
||||||
im Systemmenü, wo sie in jeder App auch stehen.
|
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** —
|
**In den Apps ist „Schreibtisch" ein Link, keine Handlung** — und das ist eine
|
||||||
und das ist eine Grenze, keine Bequemlichkeit. Einstellungen schreiben, und
|
Grenze, keine Bequemlichkeit. Einstellungen schreiben, und dafür braucht der
|
||||||
dafür braucht der Server die HoneyOS-Sitzung: Aus einer fremden Site schickt der
|
Server die HoneyOS-Sitzung: Aus einer fremden Site schickt der Browser sie nicht
|
||||||
Browser sie nicht mit, und selbst unter einer Domain liegt das CSRF-Prüfwort in
|
mit, und selbst unter einer Domain liegt das CSRF-Prüfwort in einem Cookie, das
|
||||||
einem Cookie, das nur HoneyOS' eigene Seiten lesen dürfen. Also stellt die
|
nur HoneyOS' eigene Seiten lesen dürfen.
|
||||||
HoneyBar die Frage in der Adresse (`?einstellungen=1`), und der Schreibtisch
|
|
||||||
beantwortet sie: Er macht dasselbe Feld auf, das auch `[S]` öffnet, und nimmt
|
Deshalb stand dort lange ein zweiter Punkt „Einstellungen …", der auf dieselbe
|
||||||
den Anhang danach wieder aus der Adresse.
|
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
|
**Abmelden steht in den Einstellungen, ganz unten — und sonst nirgends.** Nicht
|
||||||
in der HoneyBar fremder Apps, nicht im Systemmenü, nicht im Startmenü. Es ist
|
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="menu sys" id="sysmenu" role="menu">
|
||||||
<div class="head">honeyos</div>
|
<div class="head">honeyos</div>
|
||||||
<a id="mHome" role="menuitem">Schreibtisch</a>
|
<a id="mHome" role="menuitem">Schreibtisch</a>
|
||||||
<a id="mSettings" role="menuitem">Einstellungen …</a>
|
|
||||||
<hr />
|
<hr />
|
||||||
<button id="hide" role="menuitem">HoneyBar einklappen</button>
|
<button id="hide" role="menuitem">HoneyBar einklappen</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -469,25 +468,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die zwei Wege ins System. Beides sind Links auf den Schreibtisch, keine
|
* Der eine Weg ins System: ein Link auf den Schreibtisch, keine Aktion hier.
|
||||||
* Aktionen hier — und das ist keine Bequemlichkeit, sondern die Grenze:
|
|
||||||
*
|
*
|
||||||
* Einstellungen **schreiben**. Dafuer braucht der Server die HoneyOS-Sitzung,
|
* Das ist keine Bequemlichkeit, sondern die Grenze: Einstellungen
|
||||||
* und die schickt der Browser aus einer fremden App nicht mit; liegt alles
|
* **schreiben**. Dafuer braucht der Server die HoneyOS-Sitzung, und die
|
||||||
* unter einer Domain, kommt sie zwar mit, aber das CSRF-Prüfwort steht in
|
* schickt der Browser aus einer fremden App nicht mit; liegt alles unter
|
||||||
* einem Cookie der HoneyOS-Adresse, das dieses Skript von hier aus nicht
|
* einer Domain, kommt sie zwar mit, aber das CSRF-Prüfwort steht in einem
|
||||||
* lesen darf.
|
* 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
|
* Abmelden steht hier bewusst gar nicht: Es gehoert dorthin, wo man sich
|
||||||
* angemeldet hat. Wer es aus einer App heraus braucht, geht ueber
|
* angemeldet hat — unten in den Einstellungen.
|
||||||
* „Einstellungen …" — dort unten steht der Knopf.
|
|
||||||
*/
|
*/
|
||||||
function systemZiele() {
|
function systemZiele() {
|
||||||
const heim = new URL(homeUrl, location.href);
|
root.getElementById("mHome").href = new URL(homeUrl, location.href).href;
|
||||||
root.getElementById("mHome").href = heim.href;
|
|
||||||
const einst = new URL(homeUrl, location.href);
|
|
||||||
einst.search = "einstellungen=1";
|
|
||||||
root.getElementById("mSettings").href = einst.href;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1208,15 +1208,6 @@ async function main() {
|
|||||||
if (e.target === $("modal")) closeModal();
|
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) => {
|
window.addEventListener("keydown", (e) => {
|
||||||
if (e.metaKey || e.ctrlKey || e.altKey) return;
|
if (e.metaKey || e.ctrlKey || e.altKey) return;
|
||||||
const typing = /^(INPUT|TEXTAREA|SELECT)$/.test(e.target.tagName);
|
const typing = /^(INPUT|TEXTAREA|SELECT)$/.test(e.target.tagName);
|
||||||
|
|||||||
Reference in new issue
Block a user