fix(studio): Lauf-Anzeige ohne geöffneten Fall zurücksetzen
Nachtrag zu ffbdd51. _renderLauf lief nur über _stagesIdle, und das wiederum
nur beim Laden eines Falls. Schloss man den Fall oder öffnete das Studio ohne
Fall, blieb der Stand-Kasten mit den Angaben des zuletzt geöffneten Falls
stehen, beim allerersten Aufruf war er leer.
Zwei Absicherungen. Der Leerzustand setzt Fall und Frischedaten zurück und
zeichnet die Spalte einmal neu, und das Dokument bringt den Ausgangstext
bereits mit.
Sechs Prüfungen dafür.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -170,6 +170,14 @@ const Studio = {
|
||||
const cols = document.getElementById('studio-cols');
|
||||
if (cols) cols.classList.toggle('idle', on);
|
||||
document.getElementById('studio-empty').style.display = on ? '' : 'none';
|
||||
// Ohne Fall wuerde die Lauf-Anzeige sonst mit dem Stand des zuletzt
|
||||
// geoeffneten Falls stehen bleiben. Nur beim Leerschalten neu zeichnen,
|
||||
// beim Oeffnen macht das loadDetail mit den richtigen Daten.
|
||||
if (on) {
|
||||
this.incident = null;
|
||||
this.fresh = null;
|
||||
this._renderLauf();
|
||||
}
|
||||
},
|
||||
|
||||
// === Linke Spalte: Reiter "Fälle" / "Quellen" ===
|
||||
|
||||
@@ -396,7 +396,7 @@
|
||||
selben Ziel nebeneinander stehen. Die Beschriftung des Knopfes
|
||||
richtet sich nach dem Zustand des Falls, siehe _renderLauf. -->
|
||||
<div class="lauf-stand" id="lauf-stand">
|
||||
<div class="ls-haupt" id="ls-haupt"></div>
|
||||
<div class="ls-haupt" id="ls-haupt">Kein Fall geöffnet</div>
|
||||
<div class="ls-neben" id="ls-neben"></div>
|
||||
<button class="ls-btn" id="ls-btn" data-stage="full" disabled
|
||||
onclick="Studio.laufKnopf()">
|
||||
|
||||
@@ -43,6 +43,7 @@ function element(id) {
|
||||
toggle: (n, an) => { if (an) klassen.add(n); else klassen.delete(n); },
|
||||
contains: (n) => klassen.has(n),
|
||||
},
|
||||
style: {},
|
||||
_kinder: {},
|
||||
querySelector(sel) {
|
||||
const k = sel.replace('.', '');
|
||||
@@ -55,7 +56,8 @@ function element(id) {
|
||||
|
||||
const IDS = ['lauf-stand', 'ls-haupt', 'ls-neben', 'ls-btn', 'ls-hinweis',
|
||||
'lauf-kette', 'lauf-fortschritt', 'lauf-schritte', 'start-panel',
|
||||
'art-summary-meta', 'art-fc-meta', 'art-snap-meta', 'art-tl-meta'];
|
||||
'art-summary-meta', 'art-fc-meta', 'art-snap-meta', 'art-tl-meta',
|
||||
'studio-cols', 'studio-empty'];
|
||||
const elemente = {};
|
||||
const meldungen = [];
|
||||
const aufrufe = [];
|
||||
@@ -91,6 +93,14 @@ const Studio = vm.runInContext(
|
||||
'var Studio = {\n' + quelle.slice(von, bis) + '\n'
|
||||
+ ' incident: null, fresh: null, _runningStage: null,\n'
|
||||
+ ' async runStage(s) { this._letzterStart = s; },\n'
|
||||
// _showEmpty steht ausserhalb des herausgeloesten Blocks, deshalb hier
|
||||
// wortgleich nachgebildet.
|
||||
+ ' _showEmpty(on) {\n'
|
||||
+ ' const c = document.getElementById("studio-cols");\n'
|
||||
+ ' if (c) c.classList.toggle("idle", on);\n'
|
||||
+ ' document.getElementById("studio-empty").style.display = on ? "" : "none";\n'
|
||||
+ ' if (on) { this.incident = null; this.fresh = null; this._renderLauf(); }\n'
|
||||
+ ' },\n'
|
||||
+ '};\nStudio;', kontext);
|
||||
|
||||
const LAGE = { id: 7, title: 'Ceuta', type: 'adhoc' };
|
||||
@@ -307,6 +317,19 @@ async function main() {
|
||||
pruefe('J2 und behandelt den Fall wie leer',
|
||||
g('ls-haupt').textContent.includes('Noch keine Artikel'));
|
||||
|
||||
console.log('\nK) Der Leerzustand räumt die Anzeige auf');
|
||||
neu('aktuell');
|
||||
Studio._renderLauf();
|
||||
pruefe('K1 zunächst steht der Stand des Falls da',
|
||||
g('ls-haupt').textContent.includes('neuesten Stand'));
|
||||
Studio._showEmpty(true);
|
||||
pruefe('K2 danach steht dort kein alter Stand mehr',
|
||||
g('ls-haupt').textContent === 'Kein Fall geöffnet', g('ls-haupt').textContent);
|
||||
pruefe('K3 die Kette ist geleert', g('lauf-kette').innerHTML === '');
|
||||
pruefe('K4 die Schrittliste ist geleert', g('lauf-schritte').innerHTML === '');
|
||||
pruefe('K5 der Knopf ist gesperrt', g('ls-btn').disabled === true);
|
||||
pruefe('K6 der Fall ist wirklich losgelassen', Studio.incident === null);
|
||||
|
||||
console.log('\nErgebnis: ' + ok + ' bestanden, ' + fail + ' fehlgeschlagen');
|
||||
process.exit(fail ? 1 : 0);
|
||||
}
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren