terms: per-pack storage + import from another pack (v0.3.2)
- store.ts: 약관을 manifest/terms/<packKey>/ 폴더별로 저장. 첫 접근 시 legacy 전역 .md 파일을 시드로 자동 복사한다. - importTerms() 추가: 다른 음악퀴즈의 .md + _meta.json 을 현재 pack 으로 복사한다. 동일 kind 는 source 값으로 덮어쓴다. - /op/agreement 라우트를 세 단계로 분리: · /op/agreement → 음악퀴즈 카드 선택 페이지 · /op/agreement/:packName → 해당 pack 의 약관 목록 + 추가 + 불러오기 · /op/agreement/:packName/:kind → 에디터 - 공개 라우트도 /manifest/terms/:packKey/:fileName 으로 변경. - 설치기 main.ts: state.selectedKey 를 약관 URL 에 포함하도록 수정 (메인 + rp 양쪽). pack 미선택 상태에서는 에러 반환. - termsEditor.js: PACK_KEY 를 받아 저장 URL 에 포함. - 다른 음악퀴즈 후보 select + 확인 모달 + locale 추가. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -162,7 +162,7 @@
|
||||
function save() {
|
||||
status.classList.remove('error')
|
||||
status.textContent = I18N.saving
|
||||
fetch('/op/agreement/' + encodeURIComponent(TERM_KIND), {
|
||||
fetch('/op/agreement/' + encodeURIComponent(PACK_KEY) + '/' + encodeURIComponent(TERM_KIND), {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ content: editor.value })
|
||||
|
||||
Reference in New Issue
Block a user