fix(wetter): der Schalter „in der Leiste" wirkt auch auf dem Schreibtisch
Die Leiste am oberen Rand von HoneyOS ist nicht honeybar.js, sondern die Menueleiste des Schreibtischs — anderer Code, gleiches Aussehen. Das Wetter stand deshalb nur in fremden Apps, waehrend der Schalter dort, wo man ihn umlegt, nichts zu bewirken schien. Fuer den, der davorsitzt, ist beides dieselbe Leiste. Ein Schalter, der nur woanders wirkt, ist nicht zu erklaeren. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4e38ccdec1
commit
99f1ed4a58
4 files changed
+40
-7
No files matched your search
@@ -28,7 +28,7 @@ const localSub = "local"
|
|||||||
// Version ist die einzige Stelle, an der sie steht. build.sh liest sie hier aus
|
// Version ist die einzige Stelle, an der sie steht. build.sh liest sie hier aus
|
||||||
// und vergibt denselben Docker-Tag; die Oberfläche holt sie über /api/public.
|
// und vergibt denselben Docker-Tag; die Oberfläche holt sie über /api/public.
|
||||||
// Vorher stand sie zusätzlich in os.js und lief mit den Image-Tags auseinander.
|
// Vorher stand sie zusätzlich in os.js und lief mit den Image-Tags auseinander.
|
||||||
const Version = "0.8"
|
const Version = "0.9"
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Addr string
|
Addr string
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
<div class="mb-right">
|
<div class="mb-right">
|
||||||
<img class="mb-avatar" id="mbAvatar" alt="" hidden />
|
<img class="mb-avatar" id="mbAvatar" alt="" hidden />
|
||||||
<span class="mb-user" id="mbUser"> </span>
|
<span class="mb-user" id="mbUser"> </span>
|
||||||
|
<button class="mb-wx" id="mbWx" hidden title="Wetter"></button>
|
||||||
<span class="mb-clock" id="clock">--:--</span>
|
<span class="mb-clock" id="clock">--:--</span>
|
||||||
<button class="mb-btn" id="btnSettings" title="Einstellungen (S)">⚙</button>
|
<button class="mb-btn" id="btnSettings" title="Einstellungen (S)">⚙</button>
|
||||||
<button class="mb-btn" id="btnLogout" title="Abmelden" hidden>⏻</button>
|
<button class="mb-btn" id="btnLogout" title="Abmelden" hidden>⏻</button>
|
||||||
|
|||||||
@@ -535,20 +535,34 @@ function weatherHtml(w) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderWeather() {
|
function renderWeather() {
|
||||||
const an = state.settings.weatherDesk === "on" && state.weather;
|
const w = state.weather;
|
||||||
const tile = $("wxTile");
|
const tile = $("wxTile");
|
||||||
const desk = $("wxDesk");
|
const desk = $("wxDesk");
|
||||||
|
const bar = $("mbWx");
|
||||||
const desktopMode = state.settings.mode === "desktop";
|
const desktopMode = state.settings.mode === "desktop";
|
||||||
|
|
||||||
tile.hidden = !an || desktopMode;
|
// Das Widget: Fenster im Terminal-Modus, Schild auf dem Schreibtisch.
|
||||||
desk.hidden = !an || !desktopMode;
|
const alsWidget = state.settings.weatherDesk === "on" && w;
|
||||||
if (!an) return;
|
tile.hidden = !alsWidget || desktopMode;
|
||||||
|
desk.hidden = !alsWidget || !desktopMode;
|
||||||
const html = weatherHtml(state.weather);
|
if (alsWidget) {
|
||||||
|
const html = weatherHtml(w);
|
||||||
tile.querySelector(".wx-body").innerHTML = html;
|
tile.querySelector(".wx-body").innerHTML = html;
|
||||||
desk.innerHTML = html;
|
desk.innerHTML = html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Und in der Leiste. Die Menüleiste hier ist zwar anderer Code als
|
||||||
|
// honeybar.js in den Apps, aber für den, der davorsitzt, dieselbe Leiste —
|
||||||
|
// ein Schalter, der nur woanders wirkt, wäre nicht zu erklären.
|
||||||
|
const inLeiste = state.settings.weatherBar === "on" && w;
|
||||||
|
bar.hidden = !inLeiste;
|
||||||
|
if (inLeiste) {
|
||||||
|
bar.innerHTML = `${glyphSvg(w.glyph)}<span class="mb-wx-temp">${Math.round(w.grad)}°</span>`;
|
||||||
|
bar.title = `${w.ort}: ${w.text}, ${Math.round(w.grad)}°`;
|
||||||
|
bar.onclick = openSettings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function setMode(mode) {
|
function setMode(mode) {
|
||||||
if (state.settings.mode === mode) return;
|
if (state.settings.mode === mode) return;
|
||||||
state.settings.mode = mode;
|
state.settings.mode = mode;
|
||||||
|
|||||||
@@ -954,3 +954,21 @@ body {
|
|||||||
}
|
}
|
||||||
.wx-hit span { color: var(--p-dim); font-size: 12px; }
|
.wx-hit span { color: var(--p-dim); font-size: 12px; }
|
||||||
.wx-hit:hover { border-color: var(--p-faint); color: var(--p); }
|
.wx-hit:hover { border-color: var(--p-faint); color: var(--p); }
|
||||||
|
|
||||||
|
/* Wetter in der Menüleiste — dasselbe Maß wie in honeybar.js, damit die
|
||||||
|
Leiste hier und die in den Apps nicht unterschiedlich aussehen. */
|
||||||
|
.mb-wx {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
padding: 2px 4px;
|
||||||
|
background: none;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
color: var(--p-mid);
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.mb-wx[hidden] { display: none; }
|
||||||
|
.mb-wx:hover { color: var(--p); border-color: var(--p-dim); }
|
||||||
|
.mb-wx svg { width: 14px; height: 14px; display: block; }
|
||||||
|
@media (max-width: 700px) { .mb-wx-temp { display: none; } }
|
||||||
Reference in new issue
Block a user