Profilfotos im Chat, rechte Hand zuerst, Karten lesbar

---- SCREEN 9: DIE FOTOS -------------------------------------------

Filipe: "da soll man im chat auch die profilfotos von den leuten sehen
wenn die schon eins drin haben."

ZWEI Luecken, beide an Stellen, wo ein Feld weggeworfen wurde:

1. Die GESPRAECHSLISTE bekam kein Bild. `teilnehmerVon` liest es aus
   der Datenbank, die Detailansicht nimmt es mit -- die Zeile fuer die
   Liste warf es weg. Folge: im offenen Gespraech ein Gesicht, in der
   Liste daneben ein Buchstabe. Vom selben Menschen.

2. Eine FRISCH GESENDETE Nachricht trug kein Bild. Der Verlauf beim
   Laden schon. Folge: Wer gerade zusieht, bekommt einen Buchstaben;
   wer neu laedt, ein Gesicht -- der Unterschied haengt nur daran, wann
   man geschaut hat.

Der Buchstabe bleibt als Unterlage LIEGEN und wird nicht ersetzt: Laedt
das Bild nicht, steht dort weiterhin etwas Sinnvolles statt eines
kaputten Bildsymbols. Vier Stellen, ein Verhalten.

---- SCREEN 3: REIHENFOLGE UND AUSSEHEN ----------------------------

Filipe: "ich will dass hier wie ueberall die reihenfolge immer rechte
hand und dan erst die modis."

Die Abfrage sortierte nach `aktiv DESC, name` -- die ROLLE wurde nicht
einmal mitgelesen. Die Seite konnte gar nicht wissen, wer rechte Hand
ist; sie sortierte alphabetisch, und damit stand Diene vor Funny, weil
D vor F kommt. Jetzt mit ROLLEN_SORTIERUNG -- derselben Regel, die auch
Personenliste, Chat und Rechtetafel benutzen.

"die kiste von rechte hand soll auch noch vieeeeeel krasser und
spezieller aussehen ... der hintergrund von den kacheln soll auch viel
krasser und geiler sein und so dass man texte und so besser erkennt.
weil gerade ist es schwer lesbar."

ZUERST DAS LESEN: Der Grund fuer die schlechte Lesbarkeit war der
durchscheinende Untergrund -- die Karten lagen auf dem Buehnenbild, und
ein Foto wird stellenweise hell. Sie bekommen jetzt eine DECKENDE
Unterlage und erst darueber die Verlaeufe. Die Verlaeufe sieht man
weiterhin, nur nicht mehr das Bild dahinter.

DANN DAS BESONDERE: Die rechte Hand bekommt einen goldenen Ton, eine
deutlich hellere Kante und eine schmale Leiste an der linken Seite --
man sieht den Rang aus zwei Metern, ohne ein Wort zu lesen. KEIN
zweiter Bauplan: dieselbe Karte, dieselben Felder, nur ein Merkmal am
Element. Zwei Karten zu bauen hiesse, jede kuenftige Aenderung zweimal
zu machen.

---- EINE PRUEFUNG, DIE EINE POSITION FESTNAGELTE ------------------

`ok(leute[0]?.id === idMarina, "die Aktiven stehen oben")` wurde rot,
sobald die rechte Hand nach vorn sortierte. Richtig wurde sie dadurch
nicht: Die Aussage "die Aktiven stehen oben" hat mit Marinas Platz
nichts zu tun. Jetzt prueft sie die EIGENSCHAFT (keine Pause vor einer
Aktiven) -- eine Pruefung, die eine Position festnagelt, verbietet jede
Umsortierung, auch die gewollte.

GEPRUEFT: pruef-team-stufen 28/0 (zwei Aussagen mehr),
pruef-erwaehnung 69/0 (zwei mehr: das Bild kommt in der Liste an, und
wer keines hat, bekommt auch keines vorgegaukelt), pruef-css-klassen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-20 19:07:06 +02:00
co-authored by Claude Opus 5
parent c59517cb23
commit 586eb51504
44 changed files with 742 additions and 510 deletions
+22 -2
View File
@@ -34,6 +34,7 @@
import express from "express";
import {
db, sitzungLesen, istDogFather, fuehrtTeamDogi, heuteLokal, protokolliere, echteIp,
ROLLEN_SORTIERUNG,
} from "./workspace.js";
import { MODI_PUNKTE } from "./workspace-modi-punkte.js";
import { checklistenTabellen } from "./workspace-checkliste.js";
@@ -171,10 +172,24 @@ teamlageRouter.get("/workspace/api/teamlage", (req, res) => {
verhindern soll. Der Riegel eine Zeile hoeher (`darfEingang`)
bleibt beim Angemeldeten: Das ist ein Recht, keine Anzeige. */
const zeigt = req.sicht || person;
/* ==== DIE RECHTE HAND STEHT ZUERST (20.09.2026) ==============
Filipe: "ich will dass hier wie ueberall die reihenfolge immer
rechte hand und dan erst die modis."
Hier stand `ORDER BY aktiv DESC, name` -- die Rolle wurde nicht
einmal MITGELESEN. Die Seite konnte also gar nicht wissen, wer
rechte Hand ist und wer Modi; sie sortierte alphabetisch, und
damit stand Diene vor Funny, weil D vor F kommt.
Sortiert wird jetzt mit ROLLEN_SORTIERUNG -- derselben Regel, die
auch die Personenliste, der Chat und die Rechtetafel benutzen.
Eine eigene Reihenfolge hier waere die zweite Wahrheit, und die
zweite ist die, die beim naechsten Rollenwechsel abweicht. */
const modis = db().prepare(
`SELECT id, name, bild, letzter_login, aktiv, erstellt, stufe FROM personen
`SELECT id, name, rolle, bild, letzter_login, aktiv, erstellt, stufe FROM personen
WHERE rolle IN ('hand','modi') AND id <> ?
ORDER BY aktiv DESC, name`).all(zeigt.id);
ORDER BY aktiv DESC, ` + ROLLEN_SORTIERUNG + `, name`).all(zeigt.id);
if (!modis.length) {
/* `eingang` auch hier -- die Oberflaeche darf nicht raten
@@ -374,6 +389,11 @@ teamlageRouter.get("/workspace/api/teamlage", (req, res) => {
return {
id: m.id,
name: m.name,
/* DIE ROLLE GEHT MIT (20.09.2026). Ohne sie kann die Seite
die rechte Hand nicht von einem Modi unterscheiden -- und
genau das soll sie: andere Reihenfolge, anderes Aussehen.
Sie stand bisher nicht einmal in der Abfrage. */
rolle: m.rolle,
bild: m.bild ? `/workspace/api/steckbrief/bild/${m.bild}` : null,
letzter_login: m.letzter_login,
/* Die drei Felder aus Kapitel 4: Status, "dabei seit", Stufe. */