Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1
This commit is contained in:
@@ -57,10 +57,18 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise<Mounte
|
||||
settle: () => main.settle(),
|
||||
onChanged: (colId) => main.openTable(layer, colId, true),
|
||||
});
|
||||
// 일위대가 화면이 떠 있나 — 뿌리를 바꿔도(어느 뿌리 줄을 누르든) 일위대가로 다시 엶 ·
|
||||
// 해시 `open` 도 맞춤(새로 고침 · 카드 진입과 같게) · 옵션 · 도면은 옛 규칙(구조물 조합으로)
|
||||
let view: OpenTarget = entry.open;
|
||||
const mark = (open: OpenTarget): void => {
|
||||
view = open;
|
||||
const query = new URLSearchParams(entryQuery({ ...entry, open }));
|
||||
history.replaceState(history.state, "", `#/${ROUTES.M02_MASTER_TEMPLATE}?${query}`);
|
||||
};
|
||||
const go = async (
|
||||
next: Root,
|
||||
nextOwner: string | null,
|
||||
open: OpenTarget = "구조물조합",
|
||||
open: OpenTarget = view === "일위대가" ? "일위대가" : "구조물조합",
|
||||
): Promise<void> => {
|
||||
// 같은 주소 안 이동은 머리 가드가 안 물음 — 저장 안 한 고침은 여기서
|
||||
if (!(await main.confirmLeave())) return;
|
||||
@@ -75,7 +83,7 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise<Mounte
|
||||
user,
|
||||
active: { root: entry.root, owner },
|
||||
panel,
|
||||
go: (next, nextOwner) => void go(next, nextOwner, "일위대가"),
|
||||
go: (next, nextOwner) => void go(next, nextOwner),
|
||||
});
|
||||
const roots = createLibraryRoots({
|
||||
user,
|
||||
@@ -90,7 +98,11 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise<Mounte
|
||||
const main = createMain(
|
||||
isAdmin,
|
||||
() => void Promise.all([side.refresh(), tree.refresh()]),
|
||||
() => side.paint(),
|
||||
() => {
|
||||
side.paint();
|
||||
// 일위대가 화면에서 양식으로 옮김(일위대가 · 옵션 화면은 current 없음)
|
||||
if (main.current() && view === "일위대가") mark("구조물조합");
|
||||
},
|
||||
{
|
||||
top: readOnlyBar?.root,
|
||||
aside,
|
||||
@@ -118,7 +130,10 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise<Mounte
|
||||
buildLaborSection({
|
||||
show: main.showView,
|
||||
confirmLeave: main.confirmLeave,
|
||||
onOpen,
|
||||
onOpen: () => {
|
||||
onOpen();
|
||||
mark("일위대가");
|
||||
},
|
||||
make: () =>
|
||||
buildLaborLibrary({ scope: { layer, owner }, canEdit: isAdmin, roots: laborRoots }),
|
||||
}),
|
||||
|
||||
@@ -74,3 +74,16 @@ def test_나무_고침_알림(got):
|
||||
assert rename_item["경로"] == ["석축", "나나"]
|
||||
assert "열" not in delete_item and delete_item["지운항목"] == ["UP1-000002"]
|
||||
assert "경로" not in delete_folder
|
||||
|
||||
|
||||
def test_뿌리를_바꿔도_일위대가_화면_유지_해시도_맞춤():
|
||||
"""브레인 검증 흠(27-2b) — 뿌리 줄은 두 벌(구조물 · 일위대가) · 어느 줄을 누르든 지금 화면 ·
|
||||
좌측 「일위대가 라이브러리」를 열면 해시 `open=일위대가`(다시 그리지 않고 주소만)."""
|
||||
page = (ROOT / "M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts").read_text("utf-8")
|
||||
assert 'open: OpenTarget = view === "일위대가" ? "일위대가" : "구조물조합"' in page
|
||||
assert page.count("go: (next, nextOwner) => void go(next, nextOwner),") == 2 # 두 벌 같은 길
|
||||
assert '"일위대가")' not in page.split("const laborRoots")[1].split("const roots")[0]
|
||||
labor = page.split("buildLaborSection({")[1].split("make:")[0]
|
||||
assert 'mark("일위대가")' in labor # 여는 순간 해시 open
|
||||
assert "history.replaceState" in page # hashchange 없이(화면 다시 안 그림)
|
||||
assert 'if (main.current() && view === "일위대가") mark("구조물조합")' in page
|
||||
|
||||
@@ -188,7 +188,8 @@ def test_좌측_고름_표시는_열린_것_한_줄뿐():
|
||||
# 자재 조합 상세도 같은 한 곳 — 열면 양식 · 열 줄 고름 지움 · 양식을 열면 자재 조합 고름 지움
|
||||
assert re.search(r"sel = null;\s*onOpened\?\.\(\);", _text(MAIN))
|
||||
assert "if (opt.getOpen()) matset.clear();" in side.split("function paint(): void {")[1]
|
||||
assert "() => side.paint()" in _text(M02 / "M02_MasterTemplete_UI_Page.ts")
|
||||
# 편집 칸이 열 때마다 좌측 `paint`(27-2b 뒤 = 일위대가 화면 해시 맞춤도 같은 자리)
|
||||
assert re.search(r"\(\) => \{\s*side\.paint\(\);", _text(M02 / "M02_MasterTemplete_UI_Page.ts"))
|
||||
|
||||
|
||||
def test_리본_접힘_모드에서_탭으로_편_것은_밖을_누르면_다시_접힘():
|
||||
|
||||
Reference in New Issue
Block a user