"Review" heisst jetzt "Zur Freigabe" -- und Datumsfelder sind so hoch wie alle anderen

Im Code stand die Begruendung selbst: "«Review» allein sagt einem Neuen
nichts." Das Wort ist englisch, ein Hauptwort ohne Handlung, und es
verraet nicht, WER jetzt dran ist. "Zur Freigabe" sagt beides: fertig
von mir, wartet auf jemanden.

Geaendert wurde nur, was ein Mensch LIEST -- der Zustandsschluessel
bleibt `review`, der gehoert der Datenbank. Betroffen: Spalte und
Weiterknopf im Aufgabenbrett, Dateien-Filter, Startseiten-Zaehler,
Kachel-Unterzeile, Hinweis "Datei wartet auf Freigabe", Report.

NICHT geaendert: der Kalender. Dort ist `review` eine TERMINART (ein
Gespraech, in dem man zurueckschaut), kein Zustand. Ich hatte das beim
Umbenennen selbst verwechselt und wieder zurueckgenommen -- ein
Kommentar an der Stelle haelt die zwei Bedeutungen jetzt auseinander.

pruef-sprung hing an der Wortwahl (`/review/i` auf der Beschriftung)
und wurde rot, obwohl der Filter richtig stand. Sie prueft jetzt
`data-status` -- den Schluessel, der sich nicht mit der Sprache aendert.

DAZU, unabhaengig gefunden: Datumsfelder waren 48 px hoch, alle anderen
Felder 44. Gemessen auf drei Seiten bei 390 px. Alle liegen auf dem
44-px-Beruehrziel -- nur das Datumsfeld drueckte sich darueber, weil
Chromium in `::-webkit-datetime-edit` eine eigene Innenpolsterung setzt,
die sogar ein gesetztes `height: 44px` ueberstimmt.

Zwei Anteile, einzeln nachgemessen (jeder allein 48->46, erst beide
zusammen 48->44): 1 px Polsterung oben und unten im Feldkasten, und
eine Zeilenhoehe von 24 statt 22. Keine feste Hoehe gesetzt -- die
Zeilenhoehe wird aus Beruehrziel und Polsterung gerechnet, damit sie
mitwandert, wenn sich eines davon aendert.

Geprueft: pruef-formulare 19/0 (war 16 mit 3 Fehlern), pruef-sprung
43/0, pruef-start-ansicht 151/0, pruef-aufgabenbrett 49/0,
pruef-uebersicht 35/0, pruef-uebersicht-browser 20/0,
pruef-deutsche-texte, pruef-css-klassen.

Ausserdem: vorlagen.js geloescht (8,2 KB). `vorlagenBlock(` wurde in
ca104799 eingebaut und in 9267797d wieder ausgebaut -- seither laedt
die Datei auf zwei Seiten, ohne dass jemand sie aufruft.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-20 17:27:09 +02:00
co-authored by Claude Opus 5
parent 0f5faf7ee6
commit 409ed551f3
50 changed files with 607 additions and 727 deletions
+16 -4
View File
@@ -191,7 +191,9 @@ const soll = [
["Aufgaben erledigt", "aufgaben.html?zeigen=erledigt"],
["Aufgaben offen", "aufgaben.html?zeigen=offen"],
["überfällig", "aufgaben.html?zeigen=ueberfaellig"],
["Dateien im Review", "dateien.html?zeigen=review"],
/* Heisst seit dem 20.09.2026 so -- der Schluessel bleibt `review`,
das Wort auf dem Bildschirm nicht. */
["Dateien warten auf Freigabe", "dateien.html?zeigen=review"],
["Dateien freigegeben", "dateien.html?zeigen=frei"],
["Termine gewesen", "kalender.html?zeigen=vergangen"],
["Termine stehen an", "kalender.html?zeigen=kommend"],
@@ -311,8 +313,11 @@ await seite.waitForTimeout(1200);
const da = await seite.evaluate(() => ({
leiste: !!document.querySelector(".ziel-leiste"),
text: document.querySelector(".ziel-leiste__text")?.textContent || "",
gedrueckt: [...document.querySelectorAll("#filter .schritt")]
.find((b) => b.getAttribute("aria-pressed") === "true")?.textContent?.trim(),
gedrueckt: (() => {
const b = [...document.querySelectorAll("#filter .schritt")]
.find((x) => x.getAttribute("aria-pressed") === "true");
return b ? { schluessel: b.dataset.status || "", wort: b.textContent.trim() } : null;
})(),
}));
/* Es liegt keine Datei da -- und genau dieser Fall ist der wichtige:
Wer auf eine Zahl klickt und auf einer leeren Seite landet, glaubt,
@@ -320,7 +325,14 @@ const da = await seite.evaluate(() => ({
ist und die Sache erledigt. */
ok(da.leiste, "auch ohne Treffer erscheint die Leiste");
ok(/nichts davon da/.test(da.text), ` und sagt, dass hier nichts liegt ("${da.text}")`);
ok(/review/i.test(da.gedrueckt || ""), ` der Filter steht auf "${da.gedrueckt}"`);
/* AM SCHLUESSEL PRUEFEN, NICHT AM WORT (20.09.2026). Hier stand
`/review/i` auf der Beschriftung. Als aus "Review" das deutsche
"Zur Freigabe" wurde, wurde diese Pruefung rot -- obwohl der Filter
genau richtig stand. Eine Pruefung, die an der Wortwahl haengt,
bestraft jede Textverbesserung. `data-status` ist der Schluessel,
den der Server kennt; der aendert sich nicht mit der Sprache. */
ok(da.gedrueckt?.schluessel === "review" && (da.gedrueckt?.wort || "").length > 2,
` der Filter steht auf "${da.gedrueckt?.wort}" (Schluessel: ${da.gedrueckt?.schluessel})`);
/* ================================================================
5. Kalender: schaltet auf die Liste um
+1 -1
View File
@@ -181,7 +181,7 @@ hinweisRouter.get("/workspace/api/hinweise", (req, res) => {
const d = sichtbarDateien(person);
if (d) {
dazu("dateien_review", istLeitung(person) ? "warnung" : "offen",
"Datei im Review", "dateien.html",
"Datei wartet auf Freigabe", "dateien.html",
zaehle(`SELECT COUNT(*) n FROM dateien d
WHERE ${d.wo} AND d.status = 'review'`, d.werte));
}
+1 -1
View File
@@ -588,7 +588,7 @@ export const ROLLEN_GRUPPE = {
===================================================================== */
const MODI_BEREICHE = [
{ gruppe: "Täglich", gruppeUnter: "Was du sowieso jeden Tag aufmachst",
name: "Aufgaben", unter: "Offen, in Arbeit, Review", zeichen: "aufgaben",
name: "Aufgaben", unter: "Offen, in Arbeit, zur Freigabe", zeichen: "aufgaben",
ton: 13, gross: true, ziel: "aufgaben.html", szene: "garage" },
{ gruppe: "Täglich", gruppeUnter: "Was du sowieso jeden Tag aufmachst",
name: "Chat", unter: "Nachrichten mit dem Team", zeichen: "chat",