From 2b74e400076eb4694688f30f3e86e7bc276b2b26 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Fri, 18 Sep 2026 22:16:53 +0200 Subject: [PATCH] Startseite: der Ring zaehlte Aufgaben -- ein Zuschauer hat keine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- server/workspace-zentrale.js | 47 +++++++++++++++++++++++++++++++++ workspace/app.webmanifest | 8 +++--- workspace/assets/js/start.js | 13 ++++++++- workspace/aufgaben.html | 24 ++++++++--------- workspace/automation.html | 26 +++++++++--------- workspace/befinden.html | 24 ++++++++--------- workspace/bereich.html | 36 ++++++++++++------------- workspace/bewerben.html | 30 ++++++++++----------- workspace/bewerbungen.html | 28 ++++++++++---------- workspace/calls.html | 28 ++++++++++---------- workspace/chat.html | 28 ++++++++++---------- workspace/content.html | 30 ++++++++++----------- workspace/crew-index.html | 10 +++---- workspace/crew.webmanifest | 8 +++--- workspace/dateien.html | 26 +++++++++--------- workspace/entwicklung.html | 24 ++++++++--------- workspace/index.html | 8 +++--- workspace/kalender.html | 28 ++++++++++---------- workspace/leistung.html | 26 +++++++++--------- workspace/personen.html | 26 +++++++++--------- workspace/profil.html | 28 ++++++++++---------- workspace/rechte.html | 24 ++++++++--------- workspace/report.html | 28 ++++++++++---------- workspace/scouting.html | 26 +++++++++--------- workspace/start.html | 30 ++++++++++++--------- workspace/startcheck.html | 28 ++++++++++---------- workspace/steckbrief.html | 28 ++++++++++---------- workspace/talente.html | 26 +++++++++--------- workspace/team.html | 26 +++++++++--------- workspace/teamlage.html | 24 ++++++++--------- workspace/teilen.html | 22 +++++++-------- workspace/treff-moderation.html | 24 ++++++++--------- workspace/treff-regeln.html | 26 +++++++++--------- workspace/uebersicht.html | 26 +++++++++--------- workspace/wissen.html | 26 +++++++++--------- 35 files changed, 466 insertions(+), 404 deletions(-) diff --git a/server/workspace-zentrale.js b/server/workspace-zentrale.js index 2f4c01bb..883b89c6 100644 --- a/server/workspace-zentrale.js +++ b/server/workspace-zentrale.js @@ -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", diff --git a/workspace/app.webmanifest b/workspace/app.webmanifest index 6608434d..5fb5eef7 100644 --- a/workspace/app.webmanifest +++ b/workspace/app.webmanifest @@ -22,25 +22,25 @@ }, "icons": [ { - "src": "/assets/img/app-symbole/workspace-192.png?v=202609182204", + "src": "/assets/img/app-symbole/workspace-192.png?v=202609182214", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-512.png?v=202609182204", + "src": "/assets/img/app-symbole/workspace-512.png?v=202609182214", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609182204", + "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609182214", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609182204", + "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609182214", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/assets/js/start.js b/workspace/assets/js/start.js index f921413a..0126db4e 100644 --- a/workspace/assets/js/start.js +++ b/workspace/assets/js/start.js @@ -1033,7 +1033,12 @@ svg.appendChild(svgEl('circle', { cx: px, cy: py, r: '3.4', fill: '#eaf4ff' })); } - $('zring-prozent').textContent = `${anteil} %`; + /* `mitte` schlaegt die Prozentzahl, wenn der Server eine schickt. + Fuer die Community steht dort die Zahl der Termine -- „2" sagt + mehr als „50 %", und bei null Terminen waere jede Prozentangabe + eine Behauptung ueber nichts. Fehlt das Feld, bleibt alles wie + bisher. */ + $('zring-prozent').textContent = daten.mitte ? String(daten.mitte) : `${anteil} %`; $('zring-unter').textContent = daten.titel || ''; } @@ -1297,6 +1302,12 @@ Kachel bleibt nur, wenn sie etwas zu zeigen hat. */ delete kachel.dataset.laedt; kachel.hidden = !etwasLinks && !etwasRechts; + + /* DIE ERKLAERUNG GEHT MIT. Sie beschreibt genau diesen Kasten -- + steht er nicht da, erklaert sie etwas, das es nicht gibt, und + man sucht danach. */ + const fuss = $('fuss-dran'); + if (fuss) fuss.hidden = kachel.hidden; } /** hh:mm aus einem Zeitstempel, ohne Zeitzonen-Rechnerei. diff --git a/workspace/aufgaben.html b/workspace/aufgaben.html index 7564cb8e..e86c2bda 100644 --- a/workspace/aufgaben.html +++ b/workspace/aufgaben.html @@ -12,19 +12,19 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - + + + + + + - + @@ -291,10 +291,10 @@ - - - - - + + + + + diff --git a/workspace/automation.html b/workspace/automation.html index 4d4eb4a8..abc7b75a 100644 --- a/workspace/automation.html +++ b/workspace/automation.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -168,10 +168,10 @@ - - - - - + + + + + diff --git a/workspace/befinden.html b/workspace/befinden.html index 5bd656af..4c67e032 100644 --- a/workspace/befinden.html +++ b/workspace/befinden.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -105,9 +105,9 @@ - - - - + + + + diff --git a/workspace/bereich.html b/workspace/bereich.html index 5e8e719b..8348aa4e 100644 --- a/workspace/bereich.html +++ b/workspace/bereich.html @@ -12,24 +12,24 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - + + + + + + - - + + - + @@ -251,14 +251,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/workspace/bewerben.html b/workspace/bewerben.html index 59dc5313..039f13bd 100644 --- a/workspace/bewerben.html +++ b/workspace/bewerben.html @@ -7,17 +7,17 @@ - - - - - - - - - + + + + + + + + + - + @@ -108,10 +108,10 @@ - - - - - + + + + + diff --git a/workspace/bewerbungen.html b/workspace/bewerbungen.html index 8d5aab24..f8d9e647 100644 --- a/workspace/bewerbungen.html +++ b/workspace/bewerbungen.html @@ -7,16 +7,16 @@ - - - - - - - - + + + + + + + + - + @@ -80,10 +80,10 @@ - - - - - + + + + + diff --git a/workspace/calls.html b/workspace/calls.html index 21a96208..ceaf4b96 100644 --- a/workspace/calls.html +++ b/workspace/calls.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -89,11 +89,11 @@ - - - - - - + + + + + + diff --git a/workspace/chat.html b/workspace/chat.html index fea4e181..18671e02 100644 --- a/workspace/chat.html +++ b/workspace/chat.html @@ -12,26 +12,26 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - - + + + - + @@ -341,15 +341,15 @@ - - - - + + + + - - + + diff --git a/workspace/content.html b/workspace/content.html index 76cd51c9..526c9120 100644 --- a/workspace/content.html +++ b/workspace/content.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -179,12 +179,12 @@ - - - - - - - + + + + + + + diff --git a/workspace/crew-index.html b/workspace/crew-index.html index 77943269..ef717748 100644 --- a/workspace/crew-index.html +++ b/workspace/crew-index.html @@ -36,15 +36,15 @@ - - - + + + - + @@ -339,6 +339,6 @@ - + diff --git a/workspace/crew.webmanifest b/workspace/crew.webmanifest index 4630f41b..5a9fa25f 100644 --- a/workspace/crew.webmanifest +++ b/workspace/crew.webmanifest @@ -22,25 +22,25 @@ }, "icons": [ { - "src": "/assets/img/app-symbole/crew-192.png?v=202609182204", + "src": "/assets/img/app-symbole/crew-192.png?v=202609182214", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-512.png?v=202609182204", + "src": "/assets/img/app-symbole/crew-512.png?v=202609182214", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609182204", + "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609182214", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609182204", + "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609182214", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/dateien.html b/workspace/dateien.html index c48a98a4..4e992b42 100644 --- a/workspace/dateien.html +++ b/workspace/dateien.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -108,10 +108,10 @@ - - - - - + + + + + diff --git a/workspace/entwicklung.html b/workspace/entwicklung.html index d02e869b..ad205734 100644 --- a/workspace/entwicklung.html +++ b/workspace/entwicklung.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -102,9 +102,9 @@ - - - - + + + + diff --git a/workspace/index.html b/workspace/index.html index 91a5a9c6..e671f6a4 100644 --- a/workspace/index.html +++ b/workspace/index.html @@ -30,9 +30,9 @@ - - - + + + @@ -401,6 +401,6 @@ - + diff --git a/workspace/kalender.html b/workspace/kalender.html index 06052d34..4c490828 100644 --- a/workspace/kalender.html +++ b/workspace/kalender.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -377,11 +377,11 @@ - - - - - - + + + + + + diff --git a/workspace/leistung.html b/workspace/leistung.html index f041915c..a2df55df 100644 --- a/workspace/leistung.html +++ b/workspace/leistung.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -444,10 +444,10 @@ - - - - - + + + + + diff --git a/workspace/personen.html b/workspace/personen.html index a2cf94b0..70376eb9 100644 --- a/workspace/personen.html +++ b/workspace/personen.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -423,10 +423,10 @@ - - - - - + + + + + diff --git a/workspace/profil.html b/workspace/profil.html index d415c8a3..1eb95b37 100644 --- a/workspace/profil.html +++ b/workspace/profil.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -214,11 +214,11 @@ - - - - - - + + + + + + diff --git a/workspace/rechte.html b/workspace/rechte.html index 91eb9acf..be14db3d 100644 --- a/workspace/rechte.html +++ b/workspace/rechte.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -134,9 +134,9 @@ Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, die seit dem 07.09. jede Seite danach absucht. --> - - - - + + + + diff --git a/workspace/report.html b/workspace/report.html index 7b0e1434..d4390657 100644 --- a/workspace/report.html +++ b/workspace/report.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -106,11 +106,11 @@ - - - - - - + + + + + + diff --git a/workspace/scouting.html b/workspace/scouting.html index 4bda3ba4..7f530e1e 100644 --- a/workspace/scouting.html +++ b/workspace/scouting.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -173,10 +173,10 @@ - - - - - + + + + + diff --git a/workspace/start.html b/workspace/start.html index 3aba2530..e68b6e9d 100644 --- a/workspace/start.html +++ b/workspace/start.html @@ -12,21 +12,21 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - + + - + @@ -667,17 +667,21 @@ start.js – dort steht auch, warum. -->
-

+ +

„Was ist dran" führt keine eigene Liste, sondern zeigt, was in den Bereichen schon liegt – ein Punkt verschwindet von selbst, sobald die Sache erledigt ist. Angezeigt wird nur, was du ohnehin sehen darfst.

- - - - - + + + + + diff --git a/workspace/startcheck.html b/workspace/startcheck.html index 3691455c..25a4754d 100644 --- a/workspace/startcheck.html +++ b/workspace/startcheck.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -85,11 +85,11 @@ - - - - - - + + + + + + diff --git a/workspace/steckbrief.html b/workspace/steckbrief.html index 4ff2f720..464d73e9 100644 --- a/workspace/steckbrief.html +++ b/workspace/steckbrief.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -146,11 +146,11 @@ - - - - - - + + + + + + diff --git a/workspace/talente.html b/workspace/talente.html index eedef27f..57a5aee1 100644 --- a/workspace/talente.html +++ b/workspace/talente.html @@ -7,18 +7,18 @@ - - - - - - + + + + + + - - - + + + @@ -111,9 +111,9 @@ - - - - + + + + diff --git a/workspace/team.html b/workspace/team.html index f2b1f9b8..467e91e5 100644 --- a/workspace/team.html +++ b/workspace/team.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + @@ -110,10 +110,10 @@ - - - - - + + + + + diff --git a/workspace/teamlage.html b/workspace/teamlage.html index fb1dd6ed..1e332597 100644 --- a/workspace/teamlage.html +++ b/workspace/teamlage.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + - - - - + + + + diff --git a/workspace/teilen.html b/workspace/teilen.html index 6c6d456c..2a4feeae 100644 --- a/workspace/teilen.html +++ b/workspace/teilen.html @@ -7,13 +7,13 @@ - - - - - - - + + + + + + + @@ -112,9 +112,9 @@ - - - - + + + + diff --git a/workspace/treff-moderation.html b/workspace/treff-moderation.html index 5ef0e164..db09ddde 100644 --- a/workspace/treff-moderation.html +++ b/workspace/treff-moderation.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -126,9 +126,9 @@ - - - - + + + + diff --git a/workspace/treff-regeln.html b/workspace/treff-regeln.html index 4c04231c..d97f5161 100644 --- a/workspace/treff-regeln.html +++ b/workspace/treff-regeln.html @@ -7,18 +7,18 @@ - - - - - - - + + + + + + + - + @@ -221,10 +221,10 @@ Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, die seit dem 07.09. jede Seite danach absucht. --> - - - - - + + + + + diff --git a/workspace/uebersicht.html b/workspace/uebersicht.html index 27c3b0b2..b5c51d34 100644 --- a/workspace/uebersicht.html +++ b/workspace/uebersicht.html @@ -12,22 +12,22 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - - + + + - + @@ -149,11 +149,11 @@ - + - - - - + + + + diff --git a/workspace/wissen.html b/workspace/wissen.html index 7781de26..7f052dfc 100644 --- a/workspace/wissen.html +++ b/workspace/wissen.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -190,10 +190,10 @@ - - - - - + + + + +