diff --git a/04_Tablet-Quiz/app/index.html b/04_Tablet-Quiz/app/index.html index cc49586..1f6c982 100644 --- a/04_Tablet-Quiz/app/index.html +++ b/04_Tablet-Quiz/app/index.html @@ -151,6 +151,13 @@ .aufBox ul li{margin:3px 0} .roleChips{display:flex;flex-wrap:wrap;gap:6px} .roleChip{background:#eef0f3;border-radius:999px;padding:3px 11px;font-size:13px} + /* Aufgaben-Kasten (Anweisung hervorgehoben) */ + .frageBox{background:#f7f9fc;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:14px 18px;margin:6px 0;font-size:16px;line-height:1.55} + .frageBox .frageLabel{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;margin-bottom:5px} + /* Phasen-Abschluss-Feedback */ + .phaseDone{margin:16px 0 4px;padding:16px 18px;border-radius:12px;background:#fffdf5;border:1px solid var(--line);border-left:4px solid var(--accent)} + .phaseDone .pdTitle{font-weight:800;font-size:18px;margin-bottom:6px} + .phaseDone p{color:var(--ink)} .actions { display:flex; gap:10px; align-items:center; margin-top:24px; flex-wrap:wrap; } .actions .spacer { flex:1; } @@ -1104,6 +1111,14 @@ function gateGoto(st, i){ } save(); draw(); } +/* Zielstation einer Gate-Entscheidung (für Phasenwechsel-Feedback). -1 = Ende/Ablehnung. */ +function gateTargetIndex(st, i){ + const t = (GATE_FLOW[st.id] || [])[i] || "next"; + if(t==="end") return -1; + if(t==="next") return Math.min(S.index+1, STATIONEN.length-1); + const j = STATIONEN.findIndex(s=>s.id===t); + return j>=0 ? j : Math.min(S.index+1, STATIONEN.length-1); +} function raciTable(st){ const rows = st.raci.map(([r,c])=>`
Diskutiert gemeinsam: Was fällt alles unter „${st.name}"? Was stellt ihr euch darunter vor? Nennt Beispiele.
`, + frage:`Diskutiert gemeinsam: Was fällt alles unter „${st.name}"? Was stellt ihr euch darunter vor? Nennt Beispiele.`, auf:`${st.beschreibung}
Welche Rollen sind an dieser Aktivität beteiligt? Stellt ihre Figuren auf die Mulden des Station-Pucks.
`, + frage:`Welche Rollen sind an dieser Aktivität beteiligt? Stellt ihre Figuren auf die Mulden des Station-Pucks.`, auf:`Klärt die RACI: Wer ist R, A, C, I? Sortiert die Figuren ins Aktiv-Feld (R·A·C·I).
`, + frage:`Klärt die RACI: Wer ist R, A, C, I? Sortiert die Figuren ins Aktiv-Feld (R·A·C·I).`, auf:`Welche Artefaktkarte entsteht hier und gehört in die Service-Akte?
`, + frage:`Welche Artefaktkarte entsteht hier und gehört in die Service-Akte?`, auf:`${st.artefakt}
` } ]; } @@ -1161,8 +1176,25 @@ function renderActivity(st){ const i = Math.min(S.actStep||0, steps.length-1); const step = steps[i]; const isLast = i === steps.length-1; - let html = `Gratulation — ihr habt die Phase ${PHASEN[st.phase].label} zu Ende gespielt!
+Weiter geht's mit der Phase ${PHASEN[next.phase].label}.
+Reicht die Ressourcen-/Entscheidungshoheit der SOR nicht (zusätzliche Mittel nötig), wird der Change zum Demand → über DPM ans Mission Board.
` : ``; + const tIdx = gateTargetIndex(st, i); + const target = tIdx>=0 ? STATIONEN[tIdx] : null; + const phaseEnd = target && target.phase !== st.phase; + let feedback = `Legt den passenden Entscheidungs-Chip ans Gate.
`; + let nextLabel = `Weiter →`; + if(phaseEnd){ + const curColor = PHASEN[st.phase].color, nextColor = PHASEN[target.phase].color; + nextLabel = `→ Weiter zur Phase ${PHASEN[target.phase].label}`; + feedback += `Gratulation — ihr habt die Phase ${PHASEN[st.phase].label} zu Ende gespielt!
+Weiter geht's mit der Phase ${PHASEN[target.phase].label}.
+${pf[1]}
Legt den passenden Entscheidungs-Chip ans Gate.
+ ${feedback}