- 암 경계 · 암 절토 경사 저장소(`B06_Section_UI_Page_Persist`) = 세션 칸이 주인 — 읽을 때마다 측점 열쇠 칸(`readCells`) · 고칠 때 지금 칸을 읽어 그 측점만 바꿔 씀(`putCell`) · 메모리 맵 · load · 갈아끼움 다시 읽기(keyedStores · reloadKeyedStores) 걷음 · ↶ 뒤 다음 조작이 되돌림을 덮던 흠(N5) 고침 - 저장 재료 = `offsets()` · `ratios()`(새 Map) · ↶ ↷ 가 rockb · cutslope 칸을 바꾸면 조정창과 같은 onRestore 로 카드 · 면적 다시 - B05 상단측 메모리 맵(uphillOverrides · load/saveUphillOverrides) 걷음 — 읽는 곳 없이 저장 뒤 비우기만 하던 사본 · 값 주인 = 세션 칸 `uphill` · 상단측 차례 = 기본 조각 그대로 - 노선 바뀐 [저장] 성공 뒤(페이지 다시 세운 뒤) 옛 노선 번호의 노선 범위 초안(`clearRouteDrafts`) · `route-draft-hold` 비움 · 넘김 규칙 그대로 · 같은 번호면 노선 칸 안 지움 · 실패면 그대로 - 시험 test_472_5r_rock_owner 7(옛 코드 빨강 5) · 옛 단언 고침(176_3 · 271 · 443 상단측 조각 · 344_3 저장소 load) - 위키 암선 · 암 경사 · ↶ ↷ 규칙 · 노선 저장 뒤 정리 줄 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.2 KiB
7.2 KiB
type, status, related_pages, last_updated, source
| type | status | related_pages | last_updated | source | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| concept | stable |
|
2026-10-19 |
|
공통 조작 흐름 — 되돌리기 · 보기 · 수명 · 저장
조작 표
| 조작 | 처음 놓이는 곳 | 브라우저 즉시 셈(모듈) | 서버 뒤 셈(API) | [저장]·[확정] 때 | 사본 | 위치(파일:줄) |
|---|---|---|---|---|---|---|
| ↶ ↷ | 사진첩 = 세션 draft 칸 글(고름 · 관 id 등 뺌) · 빈 칸 「""」·「{}」·「null」 = 칸 없음 · 「[]」 = 값 | 칸 되씀 → 종단 · 시설 · 노선 다시 먹임 · 횡단 입력 물러섬 = 저장 정본 | — | — | 사진 n | B05_Profile_UI_Profile_History.ts:50 · 57 · 186 · 226-245 · design_pipeline_facilities.ts:62-69 · B05_Profile_UI_RouteEdit_History.ts:174-180 |
| B05 ↔ B06 전환 | 없음(보기 숨김 · 보임) | 보인 보기가 가게 · 세션 다시 읽음 · 입력 대 묶음 맞춤(최대 3 바퀴) · 시설 줄 · 묶음은 숨은 동안도 셈 | — | — | — | design_page.ts:209-262 · design_pipeline_page.ts:559-582 · design_view_cross.ts:557-565 · design_view_profile.ts:427 |
| 종단 판 접기 | pref profile-collapsed |
본문 0 크기 = 파생값(낡음 예약 · 유토 총괄값 · 배분 선반입 · 측점 자료)만 셈 · 그리기만 건너뜀 | — | — | — | B05_Profile_UI_Profile_Render.ts:131-159 · 211-226 · B05_Profile_UI_Profile_Drag.ts:43-58 |
| 팝아웃 | 없음 — 종단 판 DOM 만 새 창 | 같은 함수 · 같은 가게 | — | — | — | design_profile_popout.ts:87-132 |
| 새로고침 | 세션 남음 · 메모리 전부 잃음 | 세션 상세로 먼저 섬 → 서버 정본과 비교(checkSessionCanon) → 다르면 갈아씀 · 노선 초안 있으면 hold · 관 · 구조물 · 추가 측점 초안 있으면 측점 냄 · 없으면 조용히 열고 가게 측점 = 상세 측점 |
상세 GET(정본 확인) | — | — | B06_Section_Section_Store.ts:117-135 · design_pipeline_page.ts:528-545 · design_pipeline_page_publish.ts opened · shown |
| 떠남 [취소] | 없음 — 페이지 그대로 | — | — | — | — | design_leave.ts:95-123 |
| 떠남 [폐기] | 세션 고침 칸 지움(모든 노선 · NOT_EDITS · B08 · B09 칸 뺌) → 떠남 = dispose |
dispose = 묶음 · 시설 줄 · 페이지 자료(forgetPageData) · 상세 메모리(forgetSectionMemory) 버림 · 다시 열면 새로고침 길 |
— | — | — | design_leave.ts:27-42 · 85-87 · design_page.ts:286-295 · B06_Section_Section_Store.ts:424-428 |
| [저장] | — | 앞 단계 prepare = 전 측점 강제 다시 셈(서버가 면적 버림) · 화면 잠금 |
조각 한 본문 POST /design/save(서버가 아래 차례 · 전부 아니면 없음 · 노선 바뀜도) · 서버 정본 다시 셈 |
끝 = invalidateSectionDetail · 두 보기가 새 상세 한 객체 받음 · 노선 바뀜 = 페이지 다시 세움 |
— | design_shared.ts:395-448 · design_save.ts:183-237 |
| [확정] | — | [저장]과 같음 | [저장] + 빈 측점 기본 설계 · 단계 완료 · 측구 쪽을 B05 종단 파일로 되씀 | 끝 = invalidateSectionDetail → B07 로 넘어감 · 노선이 바뀐 [확정] = [저장]으로 · 다시 [확정] 알림 |
— | design_shared.ts:426-432 · design_save.ts:224-228 · B06_Section_Router_Confirm.py:368-496 |
| [초기화] | — | 상세 비움 · 새로고침(메모리 전부 버림) | /route/reset |
DB 노선 행 지우고 초기값으로 · 파일 트리 복원 · 세션 초안 전부 지움(B08 · B09 뺌) | — | design_reset.ts:30-62 · B05_Profile_Router_Lifecycle.py:234-390 · common_util_initial_snapshot.py:38-54 · 266-327 |
[저장] 차례(서버 B06_Section_Router_DesignSave.py:99-195 · 칸 = design_save_api.ts SAVE_PART_KEYS)
- [저장] · [확정] = 한 본문 한 요청(472-6) — 브라우저가 차례마다 조각(본문 · 저장 뒤 정리)을 모아
POST /design/save(design_save.ts:183-237) · 서버가 아래 차례로 안쪽 창구 함수를 부름 · 하나라도 실패 = DB 행 · storage 되돌림(common_util_save_guard.py) · 차례 이름째 알림 · 다 저장한 뒤에만 조각 정리 · 같은 프로젝트 저장 겹침 = 뒤 요청 기다림. - 노선 바뀐 저장 = 같은 본문에
route(노선 초안) ·carry(옛 노선 세션 횡단 고침 원본routeCarryInputsB06_Section_Station_Keys.ts:314) · 기본 조각만(화면 몫 건너뜀) · 늘 [저장](노선이 바뀐 [확정] = 노선만 저장 · 다시 [확정] 알림) · 되돌림 범위 + 배수 폴더 · 지표면 확정 · 다 저장하고 페이지를 다시 세운 뒤 옛 노선 번호 칸(노선 범위 초안clearRouteDrafts) ·route-draft-hold비움(472-5).
| 차례 | 브라우저 조각 | 서버 | 노선 바뀐 [저장] | 위치(파일:줄) |
|---|---|---|---|---|
| route | pendingRouteSave → 본문 route |
replan_route(/route/replan 체인 · 관 · 구조물 · 추가 측점 좌표 따라감 · 종횡단 · 계획고 이월) |
맨 앞 · 새 노선 id · 관 · 구조물 초안 다시 얹기 = Node facility.rebase(rebasePipeDraft · rebaseStructureDraft) · 구조물 판번호 = 저장 뒤 판 |
B06_Section_Router_DesignSave.py:128-145 · B06_Section_Router_DesignSave_Route.py |
| settings | pageSettingsPart |
save_page_settings |
그대로 | design_save.ts:137 |
| pipes | pipesPart + 화면 몫(배수판 다시 받음 · PUT 없음) |
put_pipe_points(confirm = 배수유역 다시 셈) |
기본 조각만 · 다시 얹은 목록 | design_save.ts:139 |
| structures | structuresPart |
write_structures |
기본 조각만 · 다시 얹은 목록 | design_save.ts:141 |
| plusStations | plusStationsPart |
put_plus_stations |
기본 조각만 | design_save.ts:143 |
| alignment | alignmentPart |
save_profile_alignment |
노선 초안 칸(0) ?? 옛 노선 칸 → 서버가 새 노선 번호로 · 저장 뒤 두 칸 비움 | design_save.ts:115-126 |
| culvertOptions | culvertOptionsPart(culvertopt · 노선 열쇠) |
저장 관 위에 얹어 pipe_points.json 다시 씀 |
옛 노선 열쇠(누가거리)로 읽음 | B06_Section_Api_Culvert_Options.ts:102-106 |
| uphill | routePartsBody |
confirm_latest_route(상단측 · 비정규 측점 횡단) |
안 보냄 · 서버도 안 받음 · 저장 뒤 세션 비우고 수 알림(요구 274) | design_save.ts:149-155 |
| cross | ctx.crossPart(confirm) = 횡단 patch |
save_sections · confirm_sections · 재계산 맨 앞 종단 경고 다시 씀 |
옛 노선 세션 칸 → 새 측점 patch = Node stations.carry(routeCarryPatches B06_Section_Route_Carry_Patch.ts:368 · 넘김 규칙 logic/B06_Section_Route_Carry.ts) · 고침이 없어도 한 번 · 표준 횡단면 · 풍선 = routeCarryPart |
B06_Section_Router_DesignSave.py:172-195 · B05_Profile_UI_RouteEdit_Apply.ts:157 |
- 저장 중 =
saving표시 · 묶음 맞춤은 저장 뒤로 미룸(design_pipeline_page.tssaving 분기).