Rundgang: drei Schritte fuer die Community, fuenf fuers Team

Bauplan Kapitel 10 verlangt "Community drei Schritte, Team-Rollen
fuenf Schritte (zusaetzlich 'Deine Aufgaben' und die Gruppen ...)".
Gemessen hatte die Community bisher FUENF -- sie bekam auch die beiden
Arbeitslisten gezeigt, "Was ist dran" und "Deine Aufgaben". Auf ihrer
Zentrale stehen beide Kaesten zwar, aber leer; eine Station, die vor
einem leeren Kasten erklaert, was dort sonst steht, ist schlechter als
keine.

WO DIE ENTSCHEIDUNG LIEGT, UND WARUM NICHT IN rundgang.js:
Der Server schickt mit der Einweisung jetzt `team: true/false`
(abgeleitet aus AUSSEN_ROLLEN, nicht aus einer zweiten Liste von
Rollennamen). `rundgang.js` siebt damit und kennt weiterhin keinen
einzigen Rollennamen. Haette ich die Rollen dort hineingeschrieben,
waere jede spaeter dazukommende Rolle stillschweigend eine Teamrolle --
und niemand kaeme auf die Idee, in einer Datei ueber Begruessungen
nach Rechten zu suchen.

ZWEI SIEBE, UND BEIDE SIND NOETIG: `nurTeam` nimmt der Community die
Arbeitslisten, `querySelector` nimmt jedem das, was auf SEINER
Zentrale gar nicht steht. Ohne das zweite bliebe der Rundgang vor
einem Kasten stehen, den es nicht gibt.

Dazu zwei Kleinigkeiten, beide beim Nachmessen aufgefallen:
  * Die Begruessung sagte "In fuenf Minuten"; im Bauplan steht "In
    zwei Minuten". Fuenf Minuten sind eine Ankuendigung, die abschreckt
    -- und bei drei Schritten auch nicht wahr.
  * Ohne Namen stand dort "Willkommen im Creator Workspace". Dieselbe
    Datei laeuft auf beiden Adressen; bei Team Dogi war das das
    falsche Haus. Jetzt nur "Willkommen!" -- kein Haus zu nennen ist
    besser als das falsche.

GEPRUEFT (pruef-anleitung 137 -> 148):
Die Zaehlung wird nicht nachgebildet, sondern AUSGEFUEHRT: Die
Stationsliste und der Siebausdruck werden aus der echten Datei geholt
und laufen zweimal, mit team=false und team=true. Ein Muster ("steht
da istTeam?") waere gruen, sobald das Wort in einem Kommentar steht --
genau der Fall, der am 04.10. bei pruef-anruf-klingelt aufgefallen ist.
Gegenprobe gefahren: Sieb entfernt -> drei FEHL, Anzahl bleibt 148
(kein stilles Ueberspringen). Dazu eine Zeile, die festhaelt, dass in
rundgang.js kein Rollenname steht, auf dem Code ohne Kommentare.

Im Browser nachgemessen (mess-anleitung-crew, echte Anmeldung, 390 px,
HTTPS-Vorbau wegen HSTS): Community 3 Stationen, Rechte Hand 5, beide
mit der neuen Begruessung.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-06 16:52:51 +02:00
co-authored by Claude Opus 5
parent 8aaadbd403
commit f09a0c3456
50 changed files with 852 additions and 694 deletions
+36 -8
View File
@@ -1,9 +1,16 @@
/* =====================================================================
rundgang.js — Begrüßung und Rundgang beim ersten Anmelden (Etappe 6)
Bauplan Kapitel 10. Fünf Schritte über die Zentrale, im letzten
leuchten nur die Muss-Kacheln, am Ende steht man auf der Anleitung
bei den Ersten Schritten.
Bauplan Kapitel 10. Ein Rundgang über die Zentrale — für die
Community drei Schritte, für die Teamrollen fünf (zusätzlich die
Arbeitslisten). Im letzten leuchten nur die Muss-Kacheln, am Ende
steht man auf der Anleitung bei den Ersten Schritten.
Welche der beiden Längen gilt, sagt der SERVER (`team: true/false`)
— hier steht absichtlich kein einziger Rollenname. Sonst wäre jede
neue Rolle, die irgendwann dazukommt, stillschweigend eine
Teamrolle, und niemand käme auf die Idee, in dieser Datei
nachzusehen.
---------------------------------------------------------------------
ER DARF DIE SEITE UNTER KEINEN UMSTÄNDEN BLOCKIEREN
@@ -54,12 +61,17 @@
{ wo: '.willkommen', titel: 'Deine Zentrale',
text: 'Hier siehst du auf einen Blick, wie dein Tag steht: der Ring, '
+ 'der nächste Termin und was offen ist.' },
{ wo: '#dran-seite', titel: 'Was ist dran',
/* NUR FUERS TEAM (Bauplan Kapitel 10). Die Community bekommt drei
Stationen, die Teamrollen fuenf -- "zusaetzlich Deine Aufgaben"
und die Arbeitslisten. Wer nur mitliest, hat hier nichts
stehen, und eine Station vor einem leeren Kasten erklaert
nichts. */
{ wo: '#dran-seite', nurTeam: true, titel: 'Was ist dran',
text: 'Die wichtigste Liste des Hauses. Was hier steht, will etwas von dir – '
+ 'und es verschwindet von selbst, sobald es erledigt ist.' },
{ wo: '#heute-seite', titel: 'Heute',
text: 'Deine Termine für heute. Steht nichts da, steht wirklich nichts an.' },
{ wo: '#zahlen-block', titel: 'Deine Aufgaben',
{ wo: '#zahlen-block', nurTeam: true, titel: 'Deine Aufgaben',
text: 'Offen, in Arbeit, zur Freigabe, erledigt. Ein Tippen bringt dich '
+ 'ins Aufgabenbrett.' },
{ wo: '#bereiche', titel: 'Mit diesen fängst du an',
@@ -70,6 +82,9 @@
let schritt = 0;
let stationen = [];
let muss = [];
/* Teamrolle oder Community? Kommt vom Server als Ja/Nein -- ein
Rollenname stuende hier falsch (siehe den Kopf dieser Datei). */
let istTeam = true;
let schale = null;
/* ---------- Das Hervorheben ---------------------------------------
@@ -149,7 +164,14 @@
}
function rundgangStarten() {
stationen = STATIONEN.filter((s) => document.querySelector(s.wo));
/* ZWEI SIEBE, UND BEIDE SIND NOETIG:
`nurTeam` nimmt der Community die Arbeitslisten (Bauplan
Kapitel 10), `querySelector` nimmt jedem das, was auf SEINER
Zentrale gar nicht steht. Ohne das zweite bliebe die Einweisung
vor einem Kasten stehen, den es nicht gibt. */
stationen = STATIONEN
.filter((s) => (s.nurTeam ? istTeam : true))
.filter((s) => document.querySelector(s.wo));
if (!stationen.length) { beenden(false); return; }
schritt = 0;
document.body.dataset.rundgang = 'ja';
@@ -190,9 +212,14 @@
const fenster = el('dialog', 'dialog rg-gruss');
const rumpf = el('div', 'rg-gruss__rumpf');
rumpf.append(el('h2', 'dialog__titel',
d.name ? `Willkommen, ${d.name}!` : 'Willkommen im Creator Workspace'));
/* OHNE NAMEN BEWUSST OHNE HAUSNAMEN: Dieselbe Datei läuft auf
beiden Adressen. „Willkommen im Creator Workspace" wäre bei
Team Dogi das falsche Haus, und ein Haus zu nennen, das man
nicht kennt, ist schlimmer als keins zu nennen. */
d.name ? `Willkommen, ${d.name}!` : 'Willkommen!'));
rumpf.append(el('p', 'rg-gruss__text',
'In fünf Minuten zeige ich dir, was für dich wichtig ist und was nicht.'));
'Schön, dass du da bist. In zwei Minuten zeige ich dir, '
+ 'was hier für dich wichtig ist.'));
const knoepfe = el('div', 'dialog__knoepfe');
const spaeter = el('button', 'knopf-still', 'Später');
spaeter.type = 'button';
@@ -244,6 +271,7 @@
let d;
try { d = await a.json(); } catch { return; }
muss = Array.isArray(d.muss) ? d.muss : [];
istTeam = d.team !== false;
/* Der Knopf „Rundgang noch einmal starten" steht auf der
Anleitung; von dort kommt man mit `#rundgang` zurück. Das geht