terms: agreement pages + site Notion-style editor + rp cancel fix
- 5종 약관(map/resourcepack/mod/installer/installer-rp) markdown 시드 + manifest/terms/ 노출 - 사이트 /op/agreement 목록 + Notion 스타일 markdown 에디터 (슬래시 명령어, 미리보기) - 메인 installer: 음악퀴즈 선택 직후 약관 동의 페이지(맵·모드·설치기) 추가 - rp installer: 음악퀴즈 선택 직후 약관 동의 페이지(리소스팩·설치기) 추가 - rp installer 취소 버그 수정: buildResourcepackZip 단계간 + archive.abort() 폴링 - rp installer 취소 UX: 즉시 "취소 중…" 표시, 취소 시 installFailed 알림 생략 - 0.2.6 → 0.3.0 (큰 기능) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
49
views/op/termsEditor.ejs
Normal file
49
views/op/termsEditor.ejs
Normal file
@@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title><%= t('terms.editorBrowserTitle', { label: label }) %></title>
|
||||
<link rel="stylesheet" href="/static/styles.css" />
|
||||
<link rel="stylesheet" href="/static/termsEditor.css" />
|
||||
</head>
|
||||
<body class="siteBody">
|
||||
<%- include('../partials/navbar', { userId }) %>
|
||||
|
||||
<main class="pageWrap">
|
||||
<section class="dashboardHeader">
|
||||
<div>
|
||||
<a class="ghostLink" href="/op/agreement"><%= t('common.back') %></a>
|
||||
<h1 style="margin-top:20px;"><%= t('terms.editorTitle', { label: label }) %></h1>
|
||||
<p class="muted"><%= kind %>.md</p>
|
||||
</div>
|
||||
<div class="dirtyMark" id="dirty-mark" hidden>*</div>
|
||||
</section>
|
||||
|
||||
<div class="listActionsRow" style="align-items:center;">
|
||||
<button type="button" class="primaryButton" id="saveBtn"><%= t('terms.save') %></button>
|
||||
<div class="tabBar" style="margin:0 0 0 12px;">
|
||||
<button type="button" class="tabBtn active" data-mode="edit"><%= t('terms.edit') %></button>
|
||||
<button type="button" class="tabBtn" data-mode="preview"><%= t('terms.preview') %></button>
|
||||
</div>
|
||||
<span class="statusText" id="status"></span>
|
||||
</div>
|
||||
|
||||
<p class="muted" style="font-size:12px;"><%= t('terms.slashHint') %></p>
|
||||
|
||||
<div id="editorWrap" class="termsEditorWrap">
|
||||
<textarea id="editor" class="termsEditor" spellcheck="false"></textarea>
|
||||
<div id="preview" class="termsPreview" hidden></div>
|
||||
<div id="slashMenu" class="slashMenu" hidden></div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
var TERM_KIND = <%- JSON.stringify(kind) %>;
|
||||
var INITIAL = <%- JSON.stringify(content) %>;
|
||||
var I18N = <%- JSON.stringify(localeDict.terms) %>;
|
||||
I18N.common = <%- JSON.stringify(localeDict.common) %>;
|
||||
</script>
|
||||
<script src="/static/termsEditor.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user