Ebene + Zeichnungsebene Erzeugen: Dialog mit Name-Input (wie Kombi)
UX-Beschwerde: addNew/addQuick haben still im Hintergrund eine Ebene am Listenende hinzugefuegt. User sah das Ergebnis nicht weil scroll- abhaengig oder ueberhaupt — "kann gar nicht erstellen". Bei Ebenen- Kombinationen geht's via window.prompt, das ist klar. Beide auf gleiche Prompt-UX umgebaut: EbenenManager.addNew: - Prompt "Name für neue Ebene:" mit Default "NEU" - Bei Cancel/leer: kein Add - Bei OK: Ebene mit UPPERCASE-Name + auto-generiertem Code, Code- Feld bekommt sofort den Edit-Mode (User kann ihn schnell anpassen). GeschossManager.addQuick: - Prompt "Name für neue Zeichnungsebene (Geschoss):" mit Default basiert auf Anzahl Geschosse (z.B. "3OG" wenn 2 vorhanden). - Bei OK: neuer Eintrag als Geschoss (isGeschoss=true) mit hoehe=3.0 und schnitthoehe=1.0 — die Default-Werte. Wegen recalcOkff zeigt er automatisch das richtige OKFF. Vorher war addQuick auf `isGeschoss=false` (= Beschriftungs-Eintrag, kein Geschoss), das war ein Konventions-Mismatch zur User-Erwartung. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -359,12 +359,18 @@ export default function EbenenManager({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const addNew = () => {
|
const addNew = () => {
|
||||||
|
// Modal-Dialog via window.prompt fuer expliziten Name-Input — selbe UX
|
||||||
|
// wie bei Ebenenkombinationen. Code wird automatisch generiert.
|
||||||
|
const name = (window.prompt('Name für neue Ebene:', 'NEU') || '').trim()
|
||||||
|
if (!name) return
|
||||||
|
// Doppel-Namen erlauben (gibt's auch bisher), aber doppel-Codes vermeiden.
|
||||||
const code = nextFreeCode()
|
const code = nextFreeCode()
|
||||||
onChange([...ebenen, {
|
onChange([...ebenen, {
|
||||||
code, name: 'NEU',
|
code, name: name.toUpperCase(),
|
||||||
color: '#888888', lw: 0.18, visible: true, locked: false,
|
color: '#888888', lw: 0.18, visible: true, locked: false,
|
||||||
}])
|
}])
|
||||||
// Code-Feld der neuen Ebene fokussieren
|
// Direkt in den Edit-Mode fuer Code-Feld — User kann Code anpassen
|
||||||
|
// falls die Auto-Vergabe nicht passt.
|
||||||
setAutoEdit({ code, field: 'code', token: Date.now() })
|
setAutoEdit({ code, field: 'code', token: Date.now() })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -94,10 +94,20 @@ export default function GeschossManager({
|
|||||||
.reduce((s, z) => s + (z.hoehe ?? 0), 0)
|
.reduce((s, z) => s + (z.hoehe ?? 0), 0)
|
||||||
|
|
||||||
const addQuick = () => {
|
const addQuick = () => {
|
||||||
|
// Modal-Dialog via window.prompt fuer expliziten Name-Input — selbe UX
|
||||||
|
// wie bei Ebenenkombinationen / neuer Ebene.
|
||||||
|
const defaultName = `${zeichnungsebenen.filter(z => z.isGeschoss).length + 1}OG`
|
||||||
|
const name = (window.prompt(
|
||||||
|
'Name für neue Zeichnungsebene (Geschoss):',
|
||||||
|
defaultName
|
||||||
|
) || '').trim()
|
||||||
|
if (!name) return
|
||||||
const newZ = {
|
const newZ = {
|
||||||
id: `z_${Date.now()}`,
|
id: `z_${Date.now()}`,
|
||||||
name: `Neu ${zeichnungsebenen.length + 1}`,
|
name,
|
||||||
isGeschoss: false,
|
isGeschoss: true,
|
||||||
|
hoehe: 3.0,
|
||||||
|
schnitthoehe: 1.0,
|
||||||
visible: true,
|
visible: true,
|
||||||
}
|
}
|
||||||
onChange([...zeichnungsebenen, newZ])
|
onChange([...zeichnungsebenen, newZ])
|
||||||
|
|||||||
Reference in New Issue
Block a user