From c6776d5488f860bc6f8582edeaabb7f5a15f8e00 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 2 Oct 2026 09:41:51 +0900 Subject: [PATCH] =?UTF-8?q?fix(M01):=20=EB=A1=9C=EC=A7=81=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=E3=80=8C=EB=A7=89=ED=9E=98=EB=A7=8C=E3=80=8D=20?= =?UTF-8?q?=EC=A7=80=EC=9B=80=20=C2=B7=20=EC=99=BC=EC=AA=BD=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=E3=80=8C=EC=A0=84=EC=B2=B4=E3=80=8D=20=EA=B0=80=20?= =?UTF-8?q?=EA=B0=80=EC=9A=B4=EB=8D=B0=EB=A5=BC=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 「막힘만」 체크 지움(줄의 ⛔ 막힘 표시 · 까닭 말풍선은 그대로) - 로직 컨테이너 「전체」 · 구분 거름이 가운데를 로직 화면으로 바꿈(다른 컨테이너를 보던 중에도) — 원인: 거름이 로직 목록만 거르고 화면 전환(onLogic)을 안 부름 - 「전체」 는 찾는 글까지 비움 · 로직 상세가 열린 채면 목록으로 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016PSXsvyDxjNmufteN5bqmt --- M01_MasterData/M01_MasterData_UI_Logic_List.ts | 15 +++------------ M01_MasterData/M01_MasterData_UI_Side.ts | 1 + 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/M01_MasterData/M01_MasterData_UI_Logic_List.ts b/M01_MasterData/M01_MasterData_UI_Logic_List.ts index 334592c0e..53867b183 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_List.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_List.ts @@ -1,6 +1,6 @@ /* ============================================================================= * M01_MasterData_UI_Logic_List.ts - * 로직 목록 — 가운데 표 · 왼쪽 「전체」 + 구분 → 상세구분 거름이 고른 범위 + 이름 찾기 + 막힘만 + * 로직 목록 — 가운데 표 · 왼쪽 「전체」 + 구분 → 상세구분 거름이 고른 범위 + 이름 찾기 * 파일을 가로질러 한 목록 · 쪽 나눔 · 막힘(⛔)·고침(●) 표시 · 거르기는 화면에서(목록은 한 번 받음) * ========================================================================== */ @@ -47,7 +47,6 @@ export function buildList(onOpen: (item: ListItem) => void): ListHandle { const pick = { sub: "", detail: "" }; const searchField = createInputField({ type: "search", placeholder: tx("List_Search") }); const search = searchField.input; - const blockedOnly = el("input", { attrs: { type: "checkbox" } }); const grid = el("div", { className: "m01-master__grid-wrap" }); const draw = (): void => { @@ -56,7 +55,6 @@ export function buildList(onOpen: (item: ListItem) => void): ListHandle { (x) => (!pick.sub || x.sub === pick.sub) && (!pick.detail || x.detail === pick.detail) && - (!blockedOnly.checked || x.blocked) && (!q || [x.key, x.number, x.name].some((v) => v.toLowerCase().includes(q))), ); page = Math.min(page, Math.max(1, Math.ceil(shown.length / SIZE))); @@ -107,7 +105,6 @@ export function buildList(onOpen: (item: ListItem) => void): ListHandle { }; search.addEventListener("input", () => go(1)); - blockedOnly.addEventListener("change", () => go(1)); let pager = buildPager(0, SIZE, 1, go); const root = el("div", { @@ -115,14 +112,7 @@ export function buildList(onOpen: (item: ListItem) => void): ListHandle { children: [ el("div", { className: "m01-logic__filters", - children: [ - searchField.root, - el("label", { - className: "m01-logic__check", - children: [blockedOnly, el("span", { text: tx("List_BlockedOnly") })], - }), - pager, - ], + children: [searchField.root, pager], }), grid, ], @@ -151,6 +141,7 @@ export function buildList(onOpen: (item: ListItem) => void): ListHandle { }, setPick: (sub, detail) => { Object.assign(pick, { sub, detail }); + if (!sub && !detail) search.value = ""; // 「전체」 — 찾는 글까지 비움 go(1); }, total: () => items.length, diff --git a/M01_MasterData/M01_MasterData_UI_Side.ts b/M01_MasterData/M01_MasterData_UI_Side.ts index cdacbb622..6a30fd0e1 100644 --- a/M01_MasterData/M01_MasterData_UI_Side.ts +++ b/M01_MasterData/M01_MasterData_UI_Side.ts @@ -248,6 +248,7 @@ export function buildSide(onOpen: (pick: Pick) => void, onLogic: () => void): Si /* 기억 못 해도 거름은 됨 */ } setActive(a.id); + if (a.id === LOGIC_ID) onLogic(); // 로직 거름(「전체」 · 구분) — 가운데를 로직 목록으로 lastRun.set(a.id.split(/[|\n]/)[0] as Group, a.id); a.onPick( sub.select.value,