feat(view): project save/open, Ctrl+S, save status, IndexedDB auto-backup (plan B2–B5)
- 저장 (Ctrl+S) downloads <교량명>_교각설계.pzr.json; 프로젝트 열기 reads it back and regenerates every pier without the source workbook. - Save status in the header: 저장 전 / 변경 있음 · 미저장 / 저장됨. The snapshot excludes the history so a save is not counted as a change. - Auto-backup to IndexedDB 0.8 s after changes while unsaved; on start a banner offers recovery or discard. Storage failures are reported, not fatal. - beforeunload warns while there are unsaved changes. - B1 (default-vs-changed tracking) is not added yet: inputs are not editable until the 2단계 input cards exist. - Not verified in a browser (no debuggable Chrome in this session). Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5ce6d0e2f1
commit
f5303e4c2b
3 files changed
+205
No files matched your search
@@ -19,11 +19,20 @@
|
||||
</nav>
|
||||
<div class="actions">
|
||||
<button id="open-import" class="btn" type="button">엑셀 불러오기</button>
|
||||
<button id="open-project" class="btn" type="button">프로젝트 열기</button>
|
||||
<button id="save-project" class="btn" type="button" disabled>저장 (Ctrl+S)</button>
|
||||
<button id="regen" class="btn primary" type="button" disabled>선택 교각 형상 생성</button>
|
||||
<input id="project-file" type="file" accept=".json" hidden />
|
||||
<span id="save-status" class="muted">저장 전</span>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<p id="status" class="status-line" role="status" aria-live="polite">엑셀을 불러오면 교각 형상을 생성합니다.</p>
|
||||
<div id="backup-banner" class="status-line" hidden>
|
||||
<span id="backup-text"></span>
|
||||
<button id="restore-backup" class="btn small" type="button">복구</button>
|
||||
<button id="discard-backup" class="btn small" type="button">버리기</button>
|
||||
</div>
|
||||
|
||||
<main class="grid">
|
||||
<aside class="panel piers" aria-labelledby="pier-title">
|
||||
|
||||
Reference in new issue
Block a user