diff --git a/server/pruef-haus-trennung.mjs b/server/pruef-haus-trennung.mjs index d84c2be0..b21e9988 100644 --- a/server/pruef-haus-trennung.mjs +++ b/server/pruef-haus-trennung.mjs @@ -430,6 +430,42 @@ console.log("=== Personen & Zugaenge ==="); ok(neuWs.status === 201, `auf workspace. geht es (${neuWs.status})`); } +/* ======================================================================= + 9b. DIE RECHTE HAND STEHT UEBER DEN MODIS (14.09.2026) + ======================================================================= + Filipe, mit dem Bildschirmfoto: "rechte hand soll immer ueber modi + stehen bitte." + + Die Reihenfolge stand an ZWEI Stellen: in ROLLEN_REIHE (richtig) und + von Hand in `zusatzrollen` (falsch herum). Dasselbe Muster wie heute + schon dreimal -- eine Aussage, zwei Listen, und die zweite ist die + unvollstaendige. Jetzt wird sortiert, nicht geschrieben. + + GEPRUEFT WIRD DIE REIHENFOLGE, NICHT DIE ANWESENHEIT: "beide sind + da" waere auch dann gruen, wenn sie vertauscht sind -- und genau das + war der Fall. */ +{ + const antwort = await hole("/workspace/api/verwaltung/personen", + { host: CREW, keks: dogi.keks }); + const zusatz = (antwort.daten?.zusatzrollen || []).map((z) => z.wert); + ok(zusatz.includes("hand") && zusatz.includes("modi"), + `beide Rollen stehen in der Liste (${zusatz.join(", ")})`); + ok(zusatz.indexOf("hand") < zusatz.indexOf("modi"), + `die Rechte Hand steht VOR den Modis (${zusatz.join(" -> ")})`); + + /* UND SIE FOLGT DER EINEN LISTE. Ohne diese Zeile haette jemand die + Reihenfolge auch von Hand andersherum schreiben koennen -- richtig + im Ergebnis, falsch im Aufbau, und beim naechsten Mal wieder + auseinander. */ + const { ROLLEN_REIHE } = await import("./workspace.js"); + const erwartet = [...zusatz].sort((a, b) => { + const p = (r) => (ROLLEN_REIHE.indexOf(r) < 0 ? ROLLEN_REIHE.length : ROLLEN_REIHE.indexOf(r)); + return p(a) - p(b); + }); + ok(JSON.stringify(zusatz) === JSON.stringify(erwartet), + `die Reihenfolge folgt ROLLEN_REIHE (${zusatz.join(", ")})`); +} + /* ======================================================================= 10. Eine Rolle aendern -- es gab die Funktion gar nicht ======================================================================= diff --git a/server/workspace-personen.js b/server/workspace-personen.js index 814f2aee..449655b0 100644 --- a/server/workspace-personen.js +++ b/server/workspace-personen.js @@ -309,6 +309,21 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => { faellt er dadurch von selbst weg (darfAnlegen filtert dort auf die Team-Rollen), und genau das ist richtig: Wer dort jemanden anlegt, meint jemanden aus dem Team. */ + /* DIE REIHENFOLGE KOMMT AUS ROLLEN_REIHE, nicht aus dieser Liste + (14.09.2026). + + Filipe, mit dem Bildschirmfoto: "rechte hand soll immer ueber + modi stehen bitte." Hier stand Modi zuerst -- ROLLEN_REIHE + hatte die Rechte Hand dagegen laengst vor den Modis, und die + SQL-Sortierung ebenfalls. Eine Aussage, zwei Stellen, und die + zweite war die falsche: dasselbe Muster wie heute schon dreimal. + + Sortiert wird deshalb ABGELEITET. Wer die Reihenfolge aendern + will, aendert ROLLEN_REIHE -- und alles andere zieht nach, + statt nachgezogen werden zu muessen. + + Was dort NICHT steht (heute: "gast"), wandert ans Ende statt + stillschweigend nach vorn. */ zusatzrollen: [ ...(darfAnlegen(req.person).includes("gast") ? [{ @@ -364,7 +379,13 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => { + "privaten Kalender und keine Einzelchats.", }] : []), - ], + ].sort((a, b) => { + const platz = (r) => { + const i = ROLLEN_REIHE.indexOf(r); + return i < 0 ? ROLLEN_REIHE.length : i; + }; + return platz(a.wert) - platz(b.wert); + }), }); } catch (fehler) { console.error("[workspace] Personen lesen:", fehler?.message); diff --git a/workspace/app.webmanifest b/workspace/app.webmanifest index f36d014c..26a7d9ec 100644 --- a/workspace/app.webmanifest +++ b/workspace/app.webmanifest @@ -13,25 +13,25 @@ "theme_color": "#06090f", "icons": [ { - "src": "/assets/img/app-symbole/workspace-192.png?v=202609141404", + "src": "/assets/img/app-symbole/workspace-192.png?v=202609141428", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-512.png?v=202609141404", + "src": "/assets/img/app-symbole/workspace-512.png?v=202609141428", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609141404", + "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609141428", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609141404", + "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609141428", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/aufgaben.html b/workspace/aufgaben.html index 6af2eb0d..831c07f3 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. --> - - - - - - + + + + + + - +
@@ -252,10 +252,10 @@ - - - - - + + + + +