diff --git a/M02_MasterTemplete/M02_MasterTemplete_Matset.ts b/M02_MasterTemplete/M02_MasterTemplete_Matset.ts index 9627e7b5..931e58d6 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Matset.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Matset.ts @@ -213,7 +213,10 @@ export function buildMatsetSection(opt: MatsetSectionOptions): MatsetSection { ], }); const setDirty = opt.show(isNew ? tm("New") : `${row.키} ${row.이름}`, node); - if (isNew) setDirty(true); + if (isNew) { + setDirty(true); + node.querySelector('[data-matset-field="이름"]')?.focus(); // 바로 이름 적기 + } opt.onOpen(); paintList(); paintButtons(); @@ -227,7 +230,7 @@ export function buildMatsetSection(opt: MatsetSectionOptions): MatsetSection { const from = all.find((x) => x.키 === openKey); if (!from || !(await opt.confirmLeave())) return; const copy = structuredClone(from); - draw({ ...copy, 키: "", 이름: tm("CopyName", from.이름), 본뜬키: from.키, 소유: "현장" }, true); + draw({ ...copy, 키: "", 이름: "", 본뜬키: from.키, 소유: "현장" }, true); // 이름은 새로 적음 }); btnDel.addEventListener("click", async () => { const key = openKey; diff --git a/M02_MasterTemplete/M02_MasterTemplete_Matset_Text.ts b/M02_MasterTemplete/M02_MasterTemplete_Matset_Text.ts index 41b961cd..541568e8 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Matset_Text.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Matset_Text.ts @@ -10,7 +10,6 @@ const TEXT = { Search: ["키 · 이름으로 찾기", "Search by key or name"], Empty: ["자재 조합 없음", "No material sets"], New: ["새 자재 조합(저장 전)", "New material set (unsaved)"], - CopyName: ["{value} 본뜸", "{value} copy"], Save: ["저장", "Save"], InUse: [ "{value} 열이 쓰는 자재 조합이라 못 지움", diff --git a/resources/tester/test_m02_matset.py b/resources/tester/test_m02_matset.py index 47e5a749..7c4589c0 100644 --- a/resources/tester/test_m02_matset.py +++ b/resources/tester/test_m02_matset.py @@ -123,3 +123,10 @@ def test_쓰는_열이_있으면_못_지우고_없으면_지워진다(client) -> def test_M01_마스터는_UM_을_모른다() -> None: assert "UM" not in m01.cm.mk.IDS and "자재조합" not in m01.cm.mk.ROW_ORDER + + +def test_새로_본떠_만들기는_열자마자_이름_칸에_초점() -> None: + ui = (ROOT / "M02_MasterTemplete/M02_MasterTemplete_Matset.ts").read_text(encoding="utf-8") + assert "'[data-matset-field=\"이름\"]')?.focus()" in ui.split("if (isNew) {")[1] + copy = ui.split("btnCopy.addEventListener")[1].split("});")[0] + assert '이름: ""' in copy # 본떠 만들기는 이름 칸 비움