frontend: Mitgeliefertes Dokument heißt „Werkbaum" (Tippfehler korrigiert)
„Werkbank" war ein Vertipper, gemeint war der Projektname. - WERKBAUM_NAME auf „Werkbaum" gesetzt. - `loadDocs()` zieht den Namen bei bereits angelegten Dokumenten nach — aber nur, solange er unverändert der ausgelieferte „Werkbank" ist. Eine eigene Umbenennung des Nutzers bleibt stehen; ein fremdes Dokument, das zufällig „Werkbank" heißt, wird nicht angefasst (die Regel greift über die reservierte id, nicht über den Namen). Verifiziert im Browser: Bestandszustand mit drei Dokumenten (Example, id=werkbaum/„Werkbank", eigenes d9/„Werkbank") -> nach dem Laden ist nur id=werkbaum umbenannt, d9 bleibt unberührt; frischer Zustand zeigt „Example" und „Werkbaum" im Wähler, Wechsel rendert 75 Knoten ohne Warnung. Vitest 37/37. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6fb45ff37a
commit
e160015fc7
+5
-3
@@ -620,9 +620,9 @@ als `max-width`/`max-height` im CSS**, weil die gespeicherte Größe ein fester
|
|||||||
px-Wert ist: schrumpft das Panel später (Zug am großen Splitter, Drehung,
|
px-Wert ist: schrumpft das Panel später (Zug am großen Splitter, Drehung,
|
||||||
Bildschirmtastatur), würde der Editor sonst auf 0 gedrückt.
|
Bildschirmtastatur), würde der Editor sonst auf 0 gedrückt.
|
||||||
|
|
||||||
## D27 — „Werkbank": Werkbaums eigener Plan als mitgeliefertes Dokument
|
## D27 — „Werkbaum": der eigene Plan als mitgeliefertes Dokument
|
||||||
Neben dem Beispiel (D22) liegt ein zweites mitgeliefertes Dokument im Wähler:
|
Neben dem Beispiel (D22) liegt ein zweites mitgeliefertes Dokument im Wähler:
|
||||||
**„Werkbank"** — Werkbaum selbst, mit Werkbaum geplant (Bestand + mögliche
|
**„Werkbaum"** — Werkbaum selbst, mit Werkbaum geplant (Bestand + mögliche
|
||||||
Weiterentwicklung). Damit ist der interessanteste Beispielbaum ohne Umweg über
|
Weiterentwicklung). Damit ist der interessanteste Beispielbaum ohne Umweg über
|
||||||
einen `?sourceUrl=`-Link erreichbar; zugleich dient er als lebende
|
einen `?sourceUrl=`-Link erreichbar; zugleich dient er als lebende
|
||||||
Projektübersicht.
|
Projektübersicht.
|
||||||
@@ -644,7 +644,9 @@ kehrte bei **jedem** Laden zurück. Das aktive Dokument bleibt beim Anlegen
|
|||||||
unverändert — niemand wird aus seinem Text gerissen.
|
unverändert — niemand wird aus seinem Text gerissen.
|
||||||
|
|
||||||
**Fester Name, nicht lokalisiert** — wie „Example" (D22): Dokumentnamen sind
|
**Fester Name, nicht lokalisiert** — wie „Example" (D22): Dokumentnamen sind
|
||||||
Nutzerdaten. Der Reset (D22) setzt jetzt **beide** mitgelieferten Dokumente auf
|
Nutzerdaten. (Die erste Fassung hieß durch einen Tippfehler „Werkbank";
|
||||||
|
`loadDocs()` zieht den Namen nach — aber **nur**, solange er unverändert der
|
||||||
|
ausgelieferte ist, damit eine eigene Umbenennung stehen bleibt.) Der Reset (D22) setzt jetzt **beide** mitgelieferten Dokumente auf
|
||||||
ihren Auslieferungsstand zurück; eigene Dokumente bleiben weiterhin unangetastet.
|
ihren Auslieferungsstand zurück; eigene Dokumente bleiben weiterhin unangetastet.
|
||||||
|
|
||||||
**Offen:** Der Text wird nach dem Anlegen nicht mehr aktualisiert. Erscheint
|
**Offen:** Der Text wird nach dem Anlegen nicht mehr aktualisiert. Erscheint
|
||||||
|
|||||||
+1
-1
@@ -106,7 +106,7 @@ verworfene Elemente. Quelle sind ES-Module unter `src/`; `index.html` ist der
|
|||||||
`werkbaum-ui`/`werkbaum-lang`/Update-Flags — **andere Dokumente bleiben stehen**
|
`werkbaum-ui`/`werkbaum-lang`/Update-Flags — **andere Dokumente bleiben stehen**
|
||||||
(nicht mehr pauschal alle `werkbaum-*` löschen!). Das letzte gelöschte Dokument
|
(nicht mehr pauschal alle `werkbaum-*` löschen!). Das letzte gelöschte Dokument
|
||||||
wird als Beispiel neu gesät.
|
wird als Beispiel neu gesät.
|
||||||
- Mitgeliefertes Dokument „Werkbank" (D27): `app.js` importiert
|
- Mitgeliefertes Dokument „Werkbaum" (D27): `app.js` importiert
|
||||||
`../../docs/examples/example-werkbaum.werkbaum?raw` — die Beispieldatei ist
|
`../../docs/examples/example-werkbaum.werkbaum?raw` — die Beispieldatei ist
|
||||||
damit **Build-Eingabe**, Umbenennen/Verschieben bricht den Build (Zugriff
|
damit **Build-Eingabe**, Umbenennen/Verschieben bricht den Build (Zugriff
|
||||||
außerhalb des Roots erlaubt `server.fs.allow:['..']`). `seedShippedDocs()` legt
|
außerhalb des Roots erlaubt `server.fs.allow:['..']`). `seedShippedDocs()` legt
|
||||||
|
|||||||
+8
-1
@@ -1318,7 +1318,9 @@ let hadStoredUI = false; /* gab es beim Laden schon gespeicherte GUI-Einstellun
|
|||||||
const EXAMPLE_ID = 'example', EXAMPLE_NAME = 'Example';
|
const EXAMPLE_ID = 'example', EXAMPLE_NAME = 'Example';
|
||||||
/* Zweites mitgeliefertes Dokument: Werkbaum selbst (D27). Fester Name wie beim
|
/* Zweites mitgeliefertes Dokument: Werkbaum selbst (D27). Fester Name wie beim
|
||||||
Beispiel — Dokumentnamen sind Nutzerdaten und werden nicht übersetzt (D22). */
|
Beispiel — Dokumentnamen sind Nutzerdaten und werden nicht übersetzt (D22). */
|
||||||
const WERKBAUM_ID = 'werkbaum', WERKBAUM_NAME = 'Werkbank';
|
const WERKBAUM_ID = 'werkbaum', WERKBAUM_NAME = 'Werkbaum';
|
||||||
|
/* Die erste Fassung hieß versehentlich „Werkbank" (Tippfehler). */
|
||||||
|
const WERKBAUM_NAME_ALT = 'Werkbank';
|
||||||
let docs = []; /* [{id, name, text}] */
|
let docs = []; /* [{id, name, text}] */
|
||||||
let activeId = null;
|
let activeId = null;
|
||||||
function uid(){ return 'd' + Date.now().toString(36) + Math.random().toString(36).slice(2, 7); }
|
function uid(){ return 'd' + Date.now().toString(36) + Math.random().toString(36).slice(2, 7); }
|
||||||
@@ -1376,6 +1378,11 @@ function loadDocs(){
|
|||||||
docs[0].name = EXAMPLE_NAME;
|
docs[0].name = EXAMPLE_NAME;
|
||||||
}
|
}
|
||||||
seedShippedDocs();
|
seedShippedDocs();
|
||||||
|
/* Namensfix für die kurzlebige Fassung mit dem Tippfehler — nur, solange der
|
||||||
|
ausgelieferte Name unverändert ist; eine eigene Umbenennung bleibt stehen
|
||||||
|
(Dokumentnamen sind Nutzerdaten, D22). */
|
||||||
|
const wb = docs.find(d => d.id === WERKBAUM_ID);
|
||||||
|
if(wb && wb.name === WERKBAUM_NAME_ALT) wb.name = WERKBAUM_NAME;
|
||||||
activeId = docs.some(d => d.id === a) ? a : docs[0].id;
|
activeId = docs.some(d => d.id === a) ? a : docs[0].id;
|
||||||
}
|
}
|
||||||
function saveSrc(){
|
function saveSrc(){
|
||||||
|
|||||||
Reference in New Issue
Block a user