Widget-Rahmen: Widgets sind Beschreibungen, keine Kaesten in der Seite
widgetAnmelden({ id, titel, wo, sichtbar, laden, leer, inhalt, takt }) —
der Rahmen macht daraus ein Fenster in der Spalte (Terminal) oder ein
Schild (Desktop), kennt lädt/fertig/nichts da/Fehler und haelt den
Nachladetakt. Benutzer, Wetter und Systemzustand sind umgestellt; aus
index.html sind vier feste Kaesten verschwunden und aus dem Raster die
Einzelplaetze.
Zwei Dinge, die erst dabei sichtbar wurden:
- Der Server meldete 'kein Ort eingestellt' und 'Dienst nicht
erreichbar' beide als 204. Ein Ausfall sah damit aus wie ein
abgeschaltetes Widget. Ausfall ist jetzt 502, mit Test.
- Die Reihenfolge haengt nicht mehr an der Modulauswertung: Seit
glyphs.js seine Raster mit await auf oberster Ebene laedt, laufen
Module ohne Symbole vorher durch — der Systemzustand stand deshalb
ueber dem Benutzer. widgetsOrdnen() macht die Reihenfolge zur Angabe,
und genau dort haengt spaeter die im Server gespeicherte ein.
This commit is contained in:
1 parent
981a2331df
commit
b7cc06b7c1
12 files changed
+461
-180
No files matched your search
@@ -184,6 +184,36 @@ in beiden: Menüleiste, Palette, Einstellungen, App-Liste.
|
||||
**Tasten:** `M` Betriebsart · `S` Einstellungen · `?` Hilfe ·
|
||||
`Esc` schließt Startmenü, oberstes Fenster oder Dialog — in dieser Reihenfolge.
|
||||
|
||||
## Widgets
|
||||
|
||||
Ein Widget ist eine **Beschreibung**, kein Kasten in der `index.html`:
|
||||
|
||||
```js
|
||||
widgetAnmelden({
|
||||
id: "wetter", titel: "wetter",
|
||||
wo: ["terminal", "desktop"], // wo es erscheinen darf
|
||||
sichtbar: () => state.settings.weatherDesk === "on",
|
||||
laden: async () => …, // false = es gibt nichts zu zeigen
|
||||
leer: "verbergen", // oder ein Satz, der dann dasteht
|
||||
inhalt: () => "<html>",
|
||||
takt: 10 * 60 * 1000, // Nachladen, optional
|
||||
})
|
||||
```
|
||||
|
||||
Den Rest macht `web/js/widgets/rahmen.js`: Im Terminal-Modus wird daraus ein
|
||||
Fenster in der linken Spalte, im Desktop-Modus ein Schild oben rechts. Er kennt
|
||||
vier Zustände — **lädt · fertig · nichts da · Fehler** — und hält den
|
||||
Nachladetakt.
|
||||
|
||||
**Ein Widget, das seinen Server nicht erreicht, sagt das in seinem eigenen
|
||||
Rahmen.** Es verschwindet nicht (das sähe aus wie abgeschaltet) und reißt weder
|
||||
den Schreibtisch noch die anderen Widgets mit. Wo „nichts da" schlicht heißt,
|
||||
dass es nichts zu zeigen gibt, kann ein Widget mit `leer: "verbergen"` ganz
|
||||
wegbleiben — so macht es das Wetter ohne eingestellten Ort.
|
||||
|
||||
Eine neue Anzeige ist damit eine Datei in `web/js/widgets/` und ein Import in
|
||||
`os.js`. Weder das Raster noch die Seite werden dafür angefasst.
|
||||
|
||||
## Wetter
|
||||
|
||||
Ein Pixelsymbol mit der Temperatur — wahlweise auf dem Schreibtisch, in der
|
||||
|
||||
Reference in new issue
Block a user