feat!: Token-Schluessel und Wer-bin-ich entfernt, Version 1.0
Beides brachte allein einen Anzeigenamen. Seit der Benutzer als Widget auf dem Schreibtisch steht, kommt der aus der HoneyOS-Anmeldung — keine App muss mehr etwas dafuer bereitstellen, und beide Leisten tragen ueberall dasselbe. Der Token-Schluessel hatte zudem eine scharfe Kante: Zeigte das Feld Wer-bin-ich auf eine fremde Adresse, ging der Ausweis der App dorthin. Weg sind damit auch checkAuth, askMe und die Anmeldezeile auf den Kacheln. Alte honeyos.json-Dateien werden weiter gelesen; die Felder verfallen beim naechsten Speichern still. 1.0, weil die Bedienung sich aendert und der Stand rund ist: zwei Leisten mit gleichem Inhalt, Widgets fuer Benutzer und Wetter, die HoneyBar auch in fremden Apps. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b999a66fed
commit
fc4dd12c5e
7 files changed
+22
-168
No files matched your search
@@ -153,8 +153,6 @@
|
||||
background: var(--p); border-color: var(--p); color: var(--bg); text-shadow: none;
|
||||
}
|
||||
.right { display: flex; align-items: center; gap: 8px; }
|
||||
.user { color: var(--p); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.user[hidden] { display: none; }
|
||||
.clock { color: var(--p-mid); font-variant-numeric: tabular-nums; }
|
||||
/* Anzeige, kein Knopf: Wer darauf klickt, erwartet, dass etwas passiert.
|
||||
Eingestellt wird das Wetter dort, wo alles eingestellt wird. */
|
||||
@@ -187,7 +185,6 @@
|
||||
<a class="home" id="home" title="HoneyOS">■ HONEY<b>OS</b></a>
|
||||
<nav class="apps" id="apps"></nav>
|
||||
<div class="right">
|
||||
<span class="user" id="user" hidden></span>
|
||||
<span class="wx" id="wx" hidden></span>
|
||||
<span class="clock" id="clock"></span>
|
||||
<button class="menu-btn" id="menuBtn" aria-haspopup="true" aria-expanded="false">▾</button>
|
||||
@@ -279,41 +276,6 @@
|
||||
el.hidden = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeigt an, wer angemeldet ist. Die HoneyBar steckt in der App selbst, der
|
||||
* Aufruf geht also an denselben Ursprung — kein CORS, keine Freigabe nötig.
|
||||
* Antwortet die App nicht wie erwartet, bleibt das Feld leer und niemand
|
||||
* merkt etwas: die Anzeige ist eine Zugabe, keine Zusicherung.
|
||||
*/
|
||||
async function showUser() {
|
||||
const me = apps.find((a) => a.id === current);
|
||||
if (!me || !me.me) return;
|
||||
try {
|
||||
const headers = {};
|
||||
if (me.tokenKey) {
|
||||
const tok = localStorage.getItem(me.tokenKey);
|
||||
if (tok) headers.Authorization = "Bearer " + tok;
|
||||
}
|
||||
const res = await fetch(url(me, me.me), { credentials: "same-origin", cache: "no-store", headers });
|
||||
if (!res.ok) return;
|
||||
const data = await res.json();
|
||||
const u = (data && (data.user || data.profile)) || data || {};
|
||||
const name = u.display_name || u.displayName || u.name || u.username || u.preferred_username;
|
||||
if (!name) return;
|
||||
const el = root.getElementById("user");
|
||||
el.textContent = name;
|
||||
el.hidden = false;
|
||||
} catch {
|
||||
/* nicht angemeldet, kein Endpunkt, kein Netz — alles kein Grund zu lärmen */
|
||||
}
|
||||
}
|
||||
|
||||
function url(app, path) {
|
||||
if (!path) return app.url;
|
||||
if (/^https?:\/\//i.test(path)) return path;
|
||||
return app.url.replace(/\/+$/, "") + (path.startsWith("/") ? path : "/" + path);
|
||||
}
|
||||
|
||||
function clock() {
|
||||
root.getElementById("clock").textContent = new Date().toLocaleTimeString("de-DE", {
|
||||
hour: "2-digit",
|
||||
@@ -427,7 +389,6 @@
|
||||
nub.remove();
|
||||
nub = null;
|
||||
mount();
|
||||
showUser();
|
||||
});
|
||||
document.body.appendChild(nub);
|
||||
}
|
||||
@@ -492,7 +453,6 @@
|
||||
if (document.body) mount();
|
||||
else document.addEventListener("DOMContentLoaded", mount, { once: true });
|
||||
|
||||
showUser();
|
||||
wetter();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user