Startseite: der Ring zaehlte Aufgaben -- ein Zuschauer hat keine

Nach dem Aufgabenblock und der dritten Zahl war noch ein Rest da, und
zwar der auffaelligste: In der Mitte der Seite stand gross

    100 %
    HEUTE NICHTS OFFEN

Der Ring zaehlt AUFGABEN -- was heute faellig war und was davon fertig
ist. Ein Mitglied hat keine, also stand dort dauerhaft 100 %. Dieselbe
tote Zahl wie "0 betreut" daneben, nur groesser.

Was ein Mitglied an dieser Stelle wissen will, ist etwas anderes:
Laeuft heute noch etwas? Der Ring zaehlt bei ihm jetzt die TERMINE des
Tages und faerbt, was davon vorbei ist. Bei null Terminen sagt er das
in Worten ("Heute steht nichts an") statt eine Null als Prozentzahl
auszugeben -- jede Prozentangabe waere da eine Behauptung ueber
nichts.

Dafuer kann der Server jetzt `mitte` schicken: einen Text fuer die
Ringmitte. Fehlt das Feld, bleibt alles wie bisher -- fuer alle
anderen aendert sich nichts.

UND DER FUSSTEXT ERKLAERTE EINEN KASTEN, DEN ES NICHT GAB. Unten stand
"„Was ist dran" fuehrt keine eigene Liste, sondern zeigt ..." -- der
Kasten selbst erscheint aber nur, wenn er etwas zu zeigen hat, und bei
einem Mitglied nie. Eine Erklaerung fuer etwas, das nicht da ist, ist
schlimmer als keine: Man sucht danach. Sie verschwindet jetzt mit ihm.

Gemessen (Handy): Startseite 1781 -> 1634 px.
pruef-community-sicht 10, pruef-zentrale-ring 14, pruef-vorlagen 24 --
alle ohne Fehler.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-18 22:16:53 +02:00
co-authored by Claude Opus 5
parent fa34017809
commit 2b74e40007
35 changed files with 466 additions and 404 deletions
+47
View File
@@ -295,6 +295,53 @@ zentraleRouter.get("/workspace/api/zentrale", (req, res) => {
const heuteFertig = meineAufgaben.filter(
(a) => String(a.erledigt_am || "").slice(0, 10) === heute).length;
const dran = offenDran + heuteFertig;
/* ---- UND FUER DIE COMMUNITY ZAEHLT DER RING ETWAS ANDERES ----
(18.09.2026)
Er zaehlt AUFGABEN: was heute faellig war und was davon fertig
ist. Ein Mitglied der Community hat keine -- bei ihm stand
deshalb immer „100 % HEUTE NICHTS OFFEN", gross und in der
Mitte der Seite. Dieselbe tote Zahl wie „0 betreut" daneben, nur
auffaelliger.
Was ein Mitglied an dieser Stelle wissen will, ist etwas
anderes: Laeuft heute noch etwas? Also zaehlt der Ring bei ihm
die TERMINE des Tages und faerbt, was davon schon vorbei ist.
Bei null Terminen sagt er das in Worten, statt eine Null als
Prozentzahl auszugeben.
Woran erkannt: `freigabeBedingung` gibt nur fuer Leute von
aussen etwas zurueck -- dieselbe Frage wie bei der dritten Zahl
weiter unten, und wieder ohne Rollennamen. */
if (freigabeBedingung(zeigt, "e")) {
const vorbei = meine.filter(
(t) => Number(String(t.beginn).slice(11, 13)) < stundeJetzt).length;
return res.json({
art: "tag",
titel: meine.length
? (vorbei === meine.length ? "Termine heute – alle vorbei" : "Termine heute")
: "Heute steht nichts an",
/* `mitte` statt einer Prozentzahl: „2" sagt hier mehr als
„50 %", und bei null Terminen ist jede Prozentangabe eine
Behauptung ueber nichts. */
mitte: meine.length ? String(meine.length) : "–",
prozent: meine.length ? Math.round((vorbei / meine.length) * 100) : 0,
segmente,
zahlen: [
{ wert: meine.length, schild: "Termine heute" },
{ wert: meine.filter(
(t) => Number(String(t.beginn).slice(11, 13)) >= stundeJetzt).length,
schild: "kommt noch" },
{ wert: db().prepare(
`SELECT COUNT(*) AS n FROM eintraege e
WHERE e.bereich = 'wunsch' AND e.status = 'offen' AND ${
freigabeBedingung(zeigt, "e").wo}`)
.get(...freigabeBedingung(zeigt, "e").werte).n,
schild: "Wünsche offen" },
],
});
}
return res.json({
art: "tag",
titel: dran ? "Heute geschafft" : "Heute nichts offen",