diff --git a/public/listEditor.js b/public/listEditor.js index b8cdea8..4675b04 100644 --- a/public/listEditor.js +++ b/public/listEditor.js @@ -10,8 +10,14 @@ // 저장되지 않은 변경 추적 var dirty = false - function markDirty() { dirty = true } - function markClean() { dirty = false } + var dirtyMarkEl = document.getElementById('dirty-mark') + var baseTitle = document.title + function updateDirtyIndicator() { + if (dirtyMarkEl) dirtyMarkEl.hidden = !dirty + document.title = dirty ? ('*' + baseTitle) : baseTitle + } + function markDirty() { dirty = true; updateDirtyIndicator() } + function markClean() { dirty = false; updateDirtyIndicator() } // ── 탭 ──────────────────────────────────────────── var tabBtns = document.querySelectorAll('.tabBtn') diff --git a/public/styles.css b/public/styles.css index c5e6465..50d8470 100644 --- a/public/styles.css +++ b/public/styles.css @@ -545,3 +545,15 @@ body.siteBody.centerLayout { } .packCard.pickable { cursor: pointer; } .packCard.pickable:hover { border-color: var(--accent); } + +/* 저장 안 됨 표시 (목록 편집기) */ +.dirtyMark { + font-size: 36px; + font-weight: 700; + color: var(--danger, #f85149); + line-height: 1; + margin-left: auto; + align-self: flex-start; + padding: 4px 8px; + user-select: none; +} diff --git a/views/op/listEditor.ejs b/views/op/listEditor.ejs index dae8e36..c00faec 100644 --- a/views/op/listEditor.ejs +++ b/views/op/listEditor.ejs @@ -16,6 +16,7 @@
<%= packKey %>.json
+