관리자 글쓰기·목록 UX 개선 및 POST 설정 추가(v1.1.14~v1.1.18)

Ghost형 툴바·초안 자동 저장·발행 모달, private 제거, 미디어 모달 통합,
발행일·수정일 표시 설정과 DB 마이그레이션 025·026을 반영한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-15 16:26:48 +09:00
parent ca1e17890b
commit 2074b0b93a
26 changed files with 1184 additions and 393 deletions

View File

@@ -33,7 +33,8 @@ const form = reactive({
logoText: settings.value?.logoText || '井',
logoUrl: settings.value?.logoUrl || '',
faviconUrl: settings.value?.faviconUrl || '',
copyrightText: settings.value?.copyrightText || '©2026 sori.studio'
copyrightText: settings.value?.copyrightText || '©2026 sori.studio',
showPostUpdatedAt: Boolean(settings.value?.showPostUpdatedAt)
})
/**
@@ -49,6 +50,12 @@ const settingsNavGroups = [
{ id: 'admin-settings-section-misc', label: '기타 설정', keywords: 'logo url copyright favicon' }
]
},
{
heading: '게시물',
items: [
{ id: 'admin-settings-section-post', label: 'POST 설정', keywords: 'post updated date display 수정일' }
]
},
{
heading: '사이트',
items: [
@@ -242,7 +249,8 @@ const buildSiteSettingsPayload = () => ({
logoText: form.logoText || '井',
logoUrl: form.logoUrl,
faviconUrl: form.faviconUrl,
copyrightText: form.copyrightText
copyrightText: form.copyrightText,
showPostUpdatedAt: Boolean(form.showPostUpdatedAt)
})
/**
@@ -667,6 +675,44 @@ onBeforeUnmount(() => {
</div>
</section>
<h2 class="admin-settings-screen__section-heading z-20 mb-px pt-10 text-2xl font-bold tracking-tight text-[#15171a]">
게시물
</h2>
<section
id="admin-settings-section-post"
class="admin-settings-screen__card rounded-xl border border-[#e6e8eb] bg-white p-6 shadow-[0_1px_2px_rgba(15,23,42,0.04)]"
>
<div class="admin-settings-screen__card-head mb-4">
<h2 class="text-lg font-semibold text-[#15171a]">
POST 설정
</h2>
<p class="mt-1 text-sm leading-relaxed text-[#657080]">
공개 상세·관리자 목록에서 발행 수정이 있었을 수정일을 함께 표시합니다.
</p>
</div>
<label class="admin-settings-screen__toggle flex cursor-pointer items-center justify-between gap-4 rounded-lg border border-[#e6e8eb] bg-[#f7f8fa] px-4 py-4">
<span class="grid gap-1">
<span class="text-sm font-semibold text-[#15171a]">수정일 표시</span>
<span class="text-xs text-[#657080]">발행일 아래에 수정: YYYY.MM.DD 오전/오후 HH:MM 형식으로 노출</span>
</span>
<input
v-model="form.showPostUpdatedAt"
class="admin-settings-screen__toggle-input size-5 shrink-0 accent-[#15171a]"
type="checkbox"
>
</label>
<div class="admin-settings-screen__actions mt-6 flex justify-end border-t border-[#eceff2] pt-6">
<button
class="rounded-md bg-[#15171a] px-5 py-2.5 text-sm font-semibold text-white transition-opacity hover:opacity-90 disabled:opacity-50"
type="button"
:disabled="saving"
@click="persistSiteSettings({ successToast: 'POST 설정이 저장되었습니다.' })"
>
{{ saving ? '저장 중' : 'POST 설정 저장' }}
</button>
</div>
</section>
<h2 class="admin-settings-screen__section-heading z-20 mb-px pt-10 text-2xl font-bold tracking-tight text-[#15171a]">
사이트
</h2>