- 상세 가게 칸 셋(B06_Section_Section_Canon.ts · 가벼운 자리): 저장 정본 상세(받을 때 · 세션 · 판 바뀜 · 되돌릴 때 · 갈아끼움 제외) · 초안 전 hold 상세(판 바뀌면 새 판) · 노선 초안 상세(= pipelineDetail) - 페이지: canon.detail · held.detail · shown 사본 걷음 — 저장 기준 셈(savedEdits · storedPvi · crossNow)은 가게 칸을 읽음 · 초안 버림 = 가게 hold 상세로 정본 잡음 - 떠남(forgetSectionMemory) · invalidate 때 칸 셋 비움 · savedStations 는 sub2 관 · 구조물 줄로 셈 → 남김 - 시험: test_472_5b_detail_owner(옛 코드 빨강 3) · 묶음 헬퍼 넷(365 · 346_2 · 349_0j · 451_drop)이 종단도 흉내 정본을 가게 칸에도 채움 - 위키 design_page 값 · 규칙 · 층 줄 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5.7 KiB
5.7 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 = 전 측점 강제 다시 셈(서버가 면적 버림) · 화면 잠금 |
아래 차례 표 · 서버 정본 다시 셈 | 끝 = invalidateSectionDetail · 두 보기가 새 상세 한 객체 받음 · 노선 바뀜 = 페이지 다시 세움 |
— | design_shared.ts:395-448 · design_save.ts:237-324 |
| [확정] | — | [저장]과 같음 | [저장] + 빈 측점 기본 설계 · 단계 완료 · 측구 쪽을 B05 종단 파일로 되씀 | 끝 = invalidateSectionDetail → B07 로 넘어감 · 노선이 바뀐 [확정] = 노선만 저장 · 다시 [확정] 알림 |
— | design_shared.ts:426-432 · design_save.ts:303-310 · 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 |
[저장] 차례(DESIGN_SAVE_ORDER design_save.ts:58-68)
| 차례 | 기본 창구 | 서버 | 노선 바뀐 [저장] | 위치(파일:줄) |
|---|---|---|---|---|
| route | pendingRouteSave → saveRouteDraft |
/route/replan · 관 · 구조물 따라감 · 노선 밖 알림 |
새 노선 id · 관 · 구조물 초안 다시 얹음 | design_save.ts:255-274 |
| settings | flushPageSettings |
PUT /route/page-settings |
그대로 | design_save.ts:177-178 |
| pipes | flushPendingPipes + 화면 몫(배수판 다시 받음 · PUT 없음) |
PUT /drainage/pipe-points |
기본 창구만 | design_save.ts:179-180 · 289-294 |
| structures | flushPendingStructures |
PUT /route/structures |
기본 창구만 | design_save.ts:181-182 |
| plusStations | flushPlusStations |
PUT /section/plus-stations |
기본 창구만 | design_save.ts:183-184 |
| alignment | flushAlignmentDraft |
PUT /route/profile-alignment |
초안 노선 0 편집을 새 노선에 | design_save.ts:185-186 |
| culvertOptions | flushCulvertOptions(culvertopt · 옛 노선 열쇠) |
pipe_points.json 한 번 더 PUT |
옛 노선 열쇠로 읽음 | design_save.ts:187-188 · B06_Section_Api_Culvert_Options.ts:67-95 |
| uphill | flushRouteParts |
상단측 | 건너뜀 — 횡단 차례가 옮긴 뒤 보냄 | design_save.ts:189-190 · 285 · B05_Profile_Api_Fetch.ts:321-342 |
| cross | ctx.cross(confirm) = 횡단 패치 한 요청 |
/sections/{노선}/save · confirm · 재계산 맨 앞 종단 경고 다시 씀(B06_Section_Server_Calc_Prebuild.py refresh_alignment) |
carryAfterRouteSave(새 측점으로 옮김) |
design_save.ts:275-283 |
- 차례마다 따로 커밋 — 실패 = 그 차례에서 멈춤 · 이름째 알림 · 앞 차례는 저장된 채(
design_save.ts:297-299). - 저장 중 =
saving표시 · 묶음 맞춤은 저장 뒤로 미룸(design_pipeline_page.ts:520).