From 47c8c9109e93209a555800689d624c4b55401292 Mon Sep 17 00:00:00 2001 From: breitenbach76 Date: Wed, 10 Jun 2026 11:03:18 +0200 Subject: [PATCH] Rollenuebersicht ausklappbar + Rollen-Glossar bereinigt - Neuer ausklappbarer Block "Klicke fuer Rollenuebersicht" unter der RACI-Legende (in beiden RACI-Schritten); zeigt die gruppierten Rollen wie das linke Panel. - Rollen-Glossar bereinigt: - "Betrieb (AL B&C / AL App)" -> "Operation Manager (AL B&C/App)" - "Architektur" -> "IT-Architekt" (inkl. betroffener Quiz-Optionen) - SOR aus der Rollenuebersicht entfernt (bleibt Gate-Keeper-Label) - AL Basis & Cloud / AL Applikationen entfernt - Gruppen-Ueberschrift "Management (operative Fuehrung)" -> "Operative Fuehrung" - SOR-Hinweis aus der Rollenuebersicht entfernt - sw.js Cache hochgezaehlt. Co-Authored-By: Claude Opus 4.8 --- 04_Tablet-Quiz/app/index.html | 36 ++++++++++++++++++++++------------- 04_Tablet-Quiz/app/sw.js | 2 +- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/04_Tablet-Quiz/app/index.html b/04_Tablet-Quiz/app/index.html index 8727e93..f4b1adb 100644 --- a/04_Tablet-Quiz/app/index.html +++ b/04_Tablet-Quiz/app/index.html @@ -480,21 +480,20 @@ const TOUR = { ========================================================================= */ const ROLLEN = { spm:"Service-Portfolio-Manager", sor:"Service Operations Runde (SOR)", - service_owner:"Service Owner", al_basis_cloud:"AL Basis & Cloud", - al_applikationen:"AL Applikationen", support_manager:"Support Manager", + service_owner:"Service Owner", support_manager:"Support Manager", problem_manager:"Problem Manager", projektleitung:"Projektleitung", betriebsteam:"Betriebsteam", service_support_team:"Service-Support Team", projektteam:"Projektteam", queue_koordinator:"Queue Koordinator", first_level_agent:"1st Level Agent", second_level_agent:"2nd Level Agent", - testmanagement:"Testmanagement", architektur:"Architektur", - lieferant:"Lieferant", operations_manager:"Betrieb (AL B&C / AL App)", dpm:"Demand Portfolio Manager" + testmanagement:"Testmanagement", architektur:"IT-Architekt", + lieferant:"Lieferant", operations_manager:"Operation Manager (AL B&C/App)", dpm:"Demand Portfolio Manager" }; // Rollen-Glossar fuer das Overlay: gruppiert/eingefaerbt nach den 6 Figuren-Kategorien // (Farbe = Filamentfarbe der Figuren). Deckt alle ROLLEN-Eintraege ab. const ROLLEN_GRUPPEN = [ - { label:"Governance (Entscheider)", color:"#c9a227", roles:["spm","service_owner","sor"] }, + { label:"Governance (Entscheider)", color:"#c9a227", roles:["spm","service_owner"] }, { label:"Umfeld / Auftraggeber", color:"#7d2e3f", roles:["dpm"] }, - { label:"Management (operative Führung)", color:"#2f80c9", roles:["projektleitung","operations_manager","al_basis_cloud","al_applikationen","support_manager","problem_manager"] }, + { label:"Operative Führung", color:"#2f80c9", roles:["projektleitung","operations_manager","support_manager","problem_manager"] }, { label:"Operative / Fachexperten", color:"#6b7686", roles:["queue_koordinator","first_level_agent","second_level_agent","testmanagement","architektur"] }, { label:"Externe", color:"#cfd6df", roles:["lieferant"] }, { label:"Teams (Sonderfiguren)", color:"#2f9e57", roles:["betriebsteam","service_support_team","projektteam"] } @@ -744,7 +743,7 @@ const STATIONEN = [ raci:[["service_owner","A"],["projektleitung","R"],["betriebsteam","C"],["architektur","C"],["spm","C"]], quiz:[ {frage:"Wer trägt die Ergebnisverantwortung (A) für diese Aktivität?", - optionen:["Service Owner","Projektleitung","SPM","Architektur"], richtig:0, + optionen:["Service Owner","Projektleitung","SPM","IT-Architekt"], richtig:0, expl:"Der (designierte) Service Owner ist Accountable; die Projektleitung führt operativ aus (R)."}, {frage:"Welches zentrale Artefakt entsteht hier?", optionen:["Betriebshandbuch","Service-Definition","Review-Bericht","Incident Record"], richtig:1, @@ -758,8 +757,8 @@ const STATIONEN = [ raci:[["service_owner","A"],["architektur","R"],["projektteam","R"],["spm","I"]], quiz:[ {frage:"Wer führt das Architektur-Design operativ aus (R)?", - optionen:["SPM","Service Owner","Architektur","Support Manager"], richtig:2, - expl:"Architektur und Projektteam sind Responsible; der Service Owner bleibt Accountable."} + optionen:["SPM","Service Owner","IT-Architekt","Support Manager"], richtig:2, + expl:"IT-Architekt und Projektteam sind Responsible; der Service Owner bleibt Accountable."} ]}, { id:"ds_03", phase:"design", typ:"aktivitaet", name:"Beschreiben des Vorgehens zur Implementierung", @@ -823,7 +822,7 @@ const STATIONEN = [ raci:[["projektleitung","A/R"],["architektur","C"],["service_owner","I"],["lieferant","C/I"]], quiz:[ {frage:"Wer trägt die Ergebnisverantwortung (A) für die Koordination der Entwicklung?", - optionen:["Projektleitung","Architektur","Service Owner","Lieferant"], richtig:0, + optionen:["Projektleitung","IT-Architekt","Service Owner","Lieferant"], richtig:0, expl:"Die Projektleitung ist Accountable; Architektur berät (C), der Service Owner ist informiert (I)."} ]}, { id:"tr_03", phase:"transition", typ:"aktivitaet", @@ -1420,7 +1419,6 @@ function renderRollen(){ html += `
${ROLLEN[r]}
`; }); } - html += `

Hinweis: Die SOR ist ein Gremium (SPM · Betrieb · Support-Manager · Service Owner …), das am Gate-Puck zusammenkommt — keine Einzelfigur.

`; $("#rollenList").innerHTML = html; const c = $("#rollenClose"); if(c) c.onclick = ()=> document.body.classList.remove("rollenOpen"); } @@ -1876,6 +1874,18 @@ function raciLegendHtml(){ `
ergänzend — nice-to-have
${erg.map(row).join("")}
` + ``; } +/* Ausklappbare Rollenübersicht (gleiche Inhalte wie das linke Rollen-Panel), + direkt unter der RACI-Legende im Aktivitäts-Schritt. */ +function rollenLegendHtml(){ + let body = ""; + for(const g of ROLLEN_GRUPPEN){ + const items = g.roles.filter(r=>ROLLEN[r]) + .map(r=>`
${ROLLEN[r]}
`).join(""); + if(!items) continue; + body += `
${g.label}
${items}
`; + } + return `
Klicke für Rollenübersicht
${body}
`; +} function renderRun(){ renderList(); @@ -1919,13 +1929,13 @@ function activitySteps(st){ auf:`

${st.beschreibung}

Das fällt darunter

` }, { label:"Verantwortung (R + A)", frage:`Klärt die zwei Pflicht-Rollen dieser Aktivität: Wer setzt sie operativ um (Responsible) und wer ist rechenschaftspflichtig (Accountable — genau eine Rolle)? Stellt die Figuren auf die Spielfelder R und A im RACI-Kreis.`, - legend: raciLegendHtml(), + legend: raciLegendHtml() + rollenLegendHtml(), auf:`

Operativ verantwortlich (R)

${(st.raci.filter(([r,c])=>c.includes("R")).map(([r,c])=>`${roleLabel(r)}${c.includes("A")?" (zugleich A)":""}`).join("")) || '— (keine eigene R-Rolle)'}
` + `

Rechenschaftspflichtig (A)

${(st.raci.filter(([r,c])=>c.includes("A")).map(([r,c])=>`${roleLabel(r)}`).join("")) || ''}
` + `

R und A sind die Pflicht. Beratend (C) bzw. informiert (I) klärt der nächste Schritt (ergänzend).

` }, { label:"Beteiligung (C + I)", frage:`Ergänzt nun die beteiligten Rollen (ergänzend, nice-to-have): Wer wird Consulted (vorab um Rat gefragt), wer nur Informed (über das Ergebnis)? Stellt die Figuren auf die Spielfelder C und I im RACI-Kreis.`, - legend: raciLegendHtml(), + legend: raciLegendHtml() + rollenLegendHtml(), auf:`

Konsultiert (C) / Informiert (I)

${(st.raci.filter(([r,c])=>c.includes("C")||c.includes("I")).map(([r,c])=>`${roleLabel(r)} · ${c}`).join("")) || '— (keine C/I-Rolle)'}
` + `

RACI vollständig

${raciTable(st)}` }, { label:"Artefakt", artefakt:true, diff --git a/04_Tablet-Quiz/app/sw.js b/04_Tablet-Quiz/app/sw.js index 29470a1..d75fe9a 100644 --- a/04_Tablet-Quiz/app/sw.js +++ b/04_Tablet-Quiz/app/sw.js @@ -1,5 +1,5 @@ /* Service Worker — SLC-Workshop Companion (App-Shell, offline-first) */ -const CACHE = "slc-companion-v36"; +const CACHE = "slc-companion-v37"; const SHELL = ["./", "index.html", "manifest.webmanifest", "icon.svg"]; // Action-Card-Grafiken (cards/s-c.png) fuer Offline vorab cachen (alle 24). const CARDS = [];