- config.js loginPage를 /index.html에서 /login(SSO)으로 변경 - navigation.js, load-navbar.js에 redirect 파라미터 추가 - 8개 JS 파일의 하드코딩된 '/login' → window.getLoginUrl() 전환 - 로그아웃 시 clearSSOAuth() 호출 추가 (SSO 쿠키 삭제) - api-base.js v=2→v=3 (SW 캐시 해제 코드 통합) - TBM 모듈 버전 쿼리스트링 통일 (tbm.html, tbm-mobile.html) - dashboard.html SW 캐시 해제 인라인 코드 제거 (api-base.js에서 처리) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
// ✅ /js/admin.js (수정됨 - 중복 로딩 제거)
|
|
async function initDashboard() {
|
|
// 로그인 토큰 확인
|
|
const token = localStorage.getItem('sso_token') || (window.getSSOToken ? window.getSSOToken() : null);
|
|
if (!token) {
|
|
location.href = window.getLoginUrl ? window.getLoginUrl() : '/login';
|
|
return;
|
|
}
|
|
|
|
// ✅ navbar, sidebar는 각각의 모듈에서 처리하도록 변경
|
|
// load-navbar.js, load-sidebar.js가 자동으로 처리함
|
|
|
|
// ✅ 콘텐츠만 직접 로딩 (admin-sections.html이 자동 로딩됨)
|
|
console.log('관리자 대시보드 초기화 완료');
|
|
}
|
|
|
|
// ✅ 보조 함수 - 필요시 수동 컴포넌트 로딩용
|
|
async function loadComponent(id, url) {
|
|
try {
|
|
const res = await fetch(url);
|
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
const html = await res.text();
|
|
const element = document.getElementById(id);
|
|
if (element) {
|
|
element.innerHTML = html;
|
|
} else {
|
|
console.warn(`요소를 찾을 수 없습니다: ${id}`);
|
|
}
|
|
} catch (err) {
|
|
console.error(`컴포넌트 로딩 실패 (${url}):`, err);
|
|
}
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', initDashboard); |