기능 개선 — 사진 업로드, HEIC 지원, 재조치 흐름, 신고 순번, 모바일 UI
- 이미지 압축: 삼성/네이버 브라우저 호환, URL.createObjectURL 방식으로 메모리 절감, 대용량 PNG/HEIC 처리, blob 유효성 검증, 순차 압축으로 모바일 OOM 방지 - HEIC/HEIF 지원: pillow-heif 서버사이드 변환, Pillow 12.2.0 업그레이드 - 조치 페이지: '조치 완료 저장' 단일 버튼으로 단순화 - 재조치 흐름: 관리자 재조치 요청 시 이전 조치 이력을 번호 카드로 순차 표시 - 신고 순번: 전체 기준 ROW_NUMBER(oldest=1) 순번 표시, 삭제 gap 제거 - 모바일 탭바: position:fixed 적용으로 nav 하단 흰 여백 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,10 +21,16 @@ const Auth = (() => {
|
||||
}
|
||||
|
||||
function require(allowedRoles) {
|
||||
if (!token()) { logout(); return false; }
|
||||
if (!token()) {
|
||||
// 로그인 후 원래 페이지로 돌아올 수 있도록 현재 URL 저장
|
||||
if (location.pathname !== '/pages/login.html') {
|
||||
sessionStorage.setItem('ev_redirect', location.pathname + location.search);
|
||||
}
|
||||
logout(); return false;
|
||||
}
|
||||
if (allowedRoles && !allowedRoles.includes(role())) {
|
||||
alert('접근 권한이 없습니다.');
|
||||
history.back();
|
||||
alert('접근 권한이 없습니다. (현재 역할: ' + (role() || '없음') + ')');
|
||||
logout();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -72,12 +78,14 @@ const Auth = (() => {
|
||||
if (!sidebar) return;
|
||||
const opening = !sidebar.classList.contains('mobile-open');
|
||||
sidebar.classList.toggle('mobile-open', opening);
|
||||
overlay?.classList.toggle('show', opening);
|
||||
if (overlay) overlay.classList.toggle('show', opening);
|
||||
}
|
||||
|
||||
function closeMobileNav() {
|
||||
document.querySelector('.sidebar')?.classList.remove('mobile-open');
|
||||
document.getElementById('mobileNavOverlay')?.classList.remove('show');
|
||||
var sb = document.querySelector('.sidebar');
|
||||
if (sb) sb.classList.remove('mobile-open');
|
||||
var ov = document.getElementById('mobileNavOverlay');
|
||||
if (ov) ov.classList.remove('show');
|
||||
}
|
||||
|
||||
function statusBadge(status) {
|
||||
|
||||
Reference in New Issue
Block a user