v17
This commit is contained in:
parent
32c2556ec9
commit
0c25d42532
2 changed files with 38 additions and 9 deletions
|
|
@ -1199,6 +1199,7 @@ function draw(){
|
||||||
if(S.view!=="run"){ document.body.classList.remove("navOpen","akteOpen","rollenOpen"); }
|
if(S.view!=="run"){ document.body.classList.remove("navOpen","akteOpen","rollenOpen"); }
|
||||||
renderCardBadge();
|
renderCardBadge();
|
||||||
if(S.view==="deck") return renderDeck();
|
if(S.view==="deck") return renderDeck();
|
||||||
|
if(S.view==="mainIntro") return renderMainIntro();
|
||||||
if(S.view==="classify") return renderClassify();
|
if(S.view==="classify") return renderClassify();
|
||||||
if(S.view==="freigabe") return renderFreigabe();
|
if(S.view==="freigabe") return renderFreigabe();
|
||||||
if(S.view==="entry") return renderEntry();
|
if(S.view==="entry") return renderEntry();
|
||||||
|
|
@ -1234,13 +1235,41 @@ function renderDeck(){
|
||||||
<div class="deck"><div class="deckRow mainRow">${cards}</div></div>`;
|
<div class="deck"><div class="deckRow mainRow">${cards}</div></div>`;
|
||||||
$("#panel").querySelectorAll(".deckCard").forEach(el=>{
|
$("#panel").querySelectorAll(".deckCard").forEach(el=>{
|
||||||
el.onclick=()=>{ S.service=+el.dataset.s; S.change=0; S.mode="main";
|
el.onclick=()=>{ S.service=+el.dataset.s; S.change=0; S.mode="main";
|
||||||
S.classifyDone=false; S.classifyWrong=null;
|
S.classifyDone=true; S.classifyWrong=null;
|
||||||
S.freigabeDone=false; S.freigabeWrong=null;
|
S.freigabeDone=true; S.freigabeWrong=null;
|
||||||
S.entryDone=false; S.entryWrong=null; S.bonusDone={};
|
S.entryDone=true; S.entryWrong=null; S.bonusDone={};
|
||||||
S.view="classify"; save(); draw(); };
|
S.view="mainIntro"; save(); draw(); };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Main-Intro: Major Change — Service wird neu eingeführt ------- */
|
||||||
|
function renderMainIntro(){
|
||||||
|
const u = USE_CASES[S.service];
|
||||||
|
const card = acard(S.service, 0);
|
||||||
|
const rec = START_EMPFEHLUNG[0];
|
||||||
|
const recIndex = STATIONEN.findIndex(s=>s.id===rec.id);
|
||||||
|
const cardBig = `<img class="classifyCard" src="cards/s${S.service}-c0.png" alt="${card.titel}">`;
|
||||||
|
$("#panel").innerHTML = `
|
||||||
|
<div class="setupHead">Main · ${u.service}</div>
|
||||||
|
<div class="classifyTop">
|
||||||
|
${cardBig}
|
||||||
|
<div class="classifyMain">
|
||||||
|
<div class="hint ok">Major Change</div>
|
||||||
|
<h2 class="setupTitle" style="margin-top:8px">${card.titel}</h2>
|
||||||
|
<div class="recBox"><h4>Worum geht's</h4>
|
||||||
|
<p style="margin:0 0 8px">${card.text}</p>
|
||||||
|
<p style="margin:0;color:var(--muted)">Als <b>Major Change</b> wird der Service <b>neu eingeführt</b> und durchläuft den <b>kompletten Lifecycle ab Design</b>. Die Freigaben fallen unterwegs an den <b>Gates</b> (SOR bzw. Service Owner) an — hier müsst ihr nichts einordnen. Das Einordnen (Change-Art · Freigabe · Einstieg) kommt danach bei den <b>Bonus-Varianten</b>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="actions">
|
||||||
|
<button class="ghost" id="mainBackDeck">← Service-Deck</button>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<button class="primary" id="startRun">Los geht's → voller Durchlauf</button>
|
||||||
|
</div>`;
|
||||||
|
$("#mainBackDeck").onclick=()=>{ S.view="deck"; save(); draw(); };
|
||||||
|
$("#startRun").onclick=()=>{ seedAkte(recIndex); enterStation(recIndex); S.view="run"; save(); draw(); };
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------- Schritt 2+3: Change-Art bestimmen (retry bis richtig) -------- */
|
/* ---------- Schritt 2+3: Change-Art bestimmen (retry bis richtig) -------- */
|
||||||
function renderClassify(){
|
function renderClassify(){
|
||||||
const correct = S.change;
|
const correct = S.change;
|
||||||
|
|
@ -1265,13 +1294,13 @@ function renderClassify(){
|
||||||
<div class="choiceGrid grid2">${choices}</div>
|
<div class="choiceGrid grid2">${choices}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="actions"><button class="ghost" id="backDeck">← Andere Karte</button></div>`;
|
<div class="actions"><button class="ghost" id="backDeck">← Varianten</button></div>`;
|
||||||
$("#panel").querySelectorAll(".choice").forEach(el=>{
|
$("#panel").querySelectorAll(".choice").forEach(el=>{
|
||||||
el.onclick=()=>{ const i=+el.dataset.i;
|
el.onclick=()=>{ const i=+el.dataset.i;
|
||||||
if(i===correct){ S.classifyWrong=null; S.classifyDone=true; } else { S.classifyWrong=i; }
|
if(i===correct){ S.classifyWrong=null; S.classifyDone=true; } else { S.classifyWrong=i; }
|
||||||
save(); renderClassify(); };
|
save(); renderClassify(); };
|
||||||
});
|
});
|
||||||
$("#backDeck").onclick=()=>{ S.view="deck"; save(); draw(); };
|
$("#backDeck").onclick=()=>{ S.view="bonusPick"; save(); draw(); };
|
||||||
} else {
|
} else {
|
||||||
$("#panel").innerHTML = `
|
$("#panel").innerHTML = `
|
||||||
<div class="setupHead">Aufgabe 1 · Change-Art ✓</div>
|
<div class="setupHead">Aufgabe 1 · Change-Art ✓</div>
|
||||||
|
|
@ -1286,11 +1315,11 @@ function renderClassify(){
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<button class="ghost" id="backDeck">← Andere Karte</button>
|
<button class="ghost" id="backDeck">← Varianten</button>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<button class="primary" id="toFreigabe">Weiter → Freigabe bestimmen</button>
|
<button class="primary" id="toFreigabe">Weiter → Freigabe bestimmen</button>
|
||||||
</div>`;
|
</div>`;
|
||||||
$("#backDeck").onclick=()=>{ S.view="deck"; save(); draw(); };
|
$("#backDeck").onclick=()=>{ S.view="bonusPick"; save(); draw(); };
|
||||||
$("#toFreigabe").onclick=()=>{ S.view="freigabe"; S.freigabeDone=false; S.freigabeWrong=null; save(); draw(); };
|
$("#toFreigabe").onclick=()=>{ S.view="freigabe"; S.freigabeDone=false; S.freigabeWrong=null; save(); draw(); };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* Service Worker — SLC-Workshop Companion (App-Shell, offline-first) */
|
/* Service Worker — SLC-Workshop Companion (App-Shell, offline-first) */
|
||||||
const CACHE = "slc-companion-v19";
|
const CACHE = "slc-companion-v20";
|
||||||
const SHELL = ["./", "index.html", "manifest.webmanifest", "icon.svg"];
|
const SHELL = ["./", "index.html", "manifest.webmanifest", "icon.svg"];
|
||||||
// Action-Card-Grafiken (cards/s<service>-c<change>.png) fuer Offline vorab cachen (alle 30).
|
// Action-Card-Grafiken (cards/s<service>-c<change>.png) fuer Offline vorab cachen (alle 30).
|
||||||
const CARDS = [];
|
const CARDS = [];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue