), sonst schlichte Zeile. */
+function rolleItemHtml(r, color){
+ if(!ROLLEN[r]) return "";
+ const dot = ``;
+ const desc = (ROLLEN_DESC && ROLLEN_DESC[r]) ? ROLLEN_DESC[r].trim() : "";
+ return desc
+ ? `${dot}${ROLLEN[r]}
${desc}
`
+ : `${dot}${ROLLEN[r]}
`;
+}
const PHASEN = {
design:{label:"Design", color:"var(--design)"},
transition:{label:"Transition", color:"var(--transition)"},
@@ -1414,10 +1437,7 @@ function renderRollen(){
html += `RACI-Rollen im Lebenszyklus · Farbe = Figuren-Kategorie
`;
for(const g of ROLLEN_GRUPPEN){
html += `${g.label}
`;
- g.roles.forEach(r=>{
- if(!ROLLEN[r]) return;
- html += `${ROLLEN[r]}
`;
- });
+ g.roles.forEach(r=>{ html += rolleItemHtml(r, g.color); });
}
$("#rollenList").innerHTML = html;
const c = $("#rollenClose"); if(c) c.onclick = ()=> document.body.classList.remove("rollenOpen");
@@ -1879,8 +1899,7 @@ function raciLegendHtml(){
function rollenLegendHtml(){
let body = "";
for(const g of ROLLEN_GRUPPEN){
- const items = g.roles.filter(r=>ROLLEN[r])
- .map(r=>`${ROLLEN[r]}
`).join("");
+ const items = g.roles.filter(r=>ROLLEN[r]).map(r=>rolleItemHtml(r, g.color)).join("");
if(!items) continue;
body += ``;
}
diff --git a/04_Tablet-Quiz/app/sw.js b/04_Tablet-Quiz/app/sw.js
index d75fe9a..4fa46e1 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-v37";
+const CACHE = "slc-companion-v38";
const SHELL = ["./", "index.html", "manifest.webmanifest", "icon.svg"];
// Action-Card-Grafiken (cards/s-c.png) fuer Offline vorab cachen (alle 24).
const CARDS = [];