세션 유지 기능 추가 및 FAQ 관리 개선:

- 비운영 환경 + DB 설정 활성 시 세션 유지(타임아웃 무시) 지원
- FAQ 단건 조회 API 추가 (`FaqFacade`, `FaqFacadeImpl`)
- 헤더 세션 타이머 UI 개선 및 유지 옵션 체크박스 추가
This commit is contained in:
Rinjae
2026-07-10 16:36:11 +09:00
parent 7d6aabe122
commit 99f765507b
16 changed files with 268 additions and 71 deletions
+35 -5
View File
@@ -5264,14 +5264,44 @@ select.form-control {
font-weight: 700;
}
.session-timer-mobile {
margin-right: 8px;
font-size: 12px;
.session-float {
position: fixed;
top: 16px;
right: 20px;
z-index: 1000;
display: flex;
align-items: center;
gap: 8px;
padding: 6px 14px;
background: #fff;
border: 1px solid #e0e0e0;
border-radius: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.session-timer-mobile .session-timer-text {
min-width: 34px;
.session-float .session-keepalive {
display: inline-flex;
align-items: center;
gap: 4px;
margin: 0;
padding-left: 8px;
border-left: 1px solid #e0e0e0;
font-size: 12px;
color: #64748B;
cursor: pointer;
white-space: nowrap;
}
.session-float .session-keepalive input {
margin: 0;
cursor: pointer;
}
@media (max-width: 768px) {
.session-float {
top: 12px;
right: 72px;
padding: 4px 10px;
}
}
.data-table {
width: 100%;
background: #FFFFFF;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -79,7 +79,9 @@
li.innerHTML = ''
+ '<div class="djb-comment-meta">'
+ ' <div class="djb-comment-meta-left">'
+ ' <span class="djb-comment-writer">' + escapeHtml(c.writerName || '(알 수 없음)') + '</span>'
+ (c.adminYn === 'Y'
? ' <span class="djb-comment-admin-badge">관리자</span>'
: ' <span class="djb-comment-writer">' + escapeHtml(c.writerName || '(알 수 없음)') + '</span>')
+ ' </div>'
+ ' <div class="djb-comment-meta-right">'
+ ' <span class="djb-comment-date">' + escapeHtml(formatDate(c.createdDate)) + '</span>'
@@ -32,12 +32,51 @@
}
}
// 모바일 헤더(햄버거 버튼 좌측)용 타이머
.session-timer-mobile {
margin-right: $spacing-sm;
font-size: $font-size-xs;
// -----------------------------------------------------------------------------
// 우측 상단 Float 세션 타이머 위젯
// 데스크톱: 헤더 우측(유저 메뉴 우측)에 상단 정렬로 고정(fixed).
// 모바일: 헤더 우측 햄버거(메뉴 버튼) 바로 왼쪽에 배치.
// -----------------------------------------------------------------------------
.session-float {
position: fixed;
top: 16px;
right: 20px;
z-index: 1000;
display: flex;
align-items: center;
gap: $spacing-sm;
padding: 6px 14px;
background: #fff;
border: 1px solid #e0e0e0;
border-radius: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
.session-timer-text {
min-width: 34px;
// 세션 유지 체크박스 (비운영 전용, 조건부 렌더)
.session-keepalive {
display: inline-flex;
align-items: center;
gap: 4px;
margin: 0;
padding-left: 8px;
border-left: 1px solid #e0e0e0;
font-size: $font-size-xs;
color: $text-gray;
cursor: pointer;
white-space: nowrap;
input {
margin: 0;
cursor: pointer;
}
}
}
// 모바일: 헤더 우측 햄버거(메뉴 버튼) 바로 왼쪽에 나란히 배치.
// right = 헤더 padding(20px) + 햄버거 폭(~32px) + 간격(~20px) ≈ 72px
@media (max-width: $breakpoint-sm) {
.session-float {
top: 12px;
right: 72px;
padding: 4px 10px;
}
}