Files
PM_test/views/index/index-onpremise.html
2026-06-12 17:14:03 +09:00

151 lines
5.4 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/index/css/reset.css">
<link rel="stylesheet" href="/index/css/system.css">
<link rel="stylesheet" href="/index/css/style-index-onpremise.css">
<title>PM > TDC</title>
</head>
<body>
<!-- 헤더부분 ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== -->
<header class="header">
<div class="header__left">
<div class="--logo__project-master">
<h3 class="--logo__project-master_logo">PROJECT MASTER</h3>
<p class="--logo__project-master_version">ver</p>
<h6 class="--logo__project-master_number" id="project-version">0.4.000000</h6>
</div>
</div>
<div class="header__right">
<a href="/admin/" id="adminBtn" class="btn-admin" target="_blank">
⚙️ 관리자 화면
</a>
<a href="/auth/logout" class="btn-logout">
🔓 로그아웃
</a>
</div>
</header>
<!-- 메인부분 ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== -->
<main class="main">
<div class="main__left">
<img class="main__title" src="/index/img-onpremise/s-icon__sw-full-logo--fff.svg" alt="s-icon__gpd-full-logo--fff">
<ul class="main__list" id="tdc">
<!-- <li class="main__list-item">
<img class="icon" src="/index/img-onpremise/icon__folder--fff.svg" alt="icon__folder--fff">
<h3 class="main__list-item-label">// DB 리스트</h3>
</li> -->
</ul>
</div>
<div class="main__right">
<img class="main__title" src="/index/img-onpremise/s-icon__gpd-full-logo--fff.svg" alt="s-icon__gpd-full-logo--fff">
<ul class="main__list" id="gpd">
<!-- <li class="main__list-item">
<img class="icon" src="/index/img-onpremise/icon__folder--fff.svg" alt="icon__folder--fff">
<h3 class="main__list-item-label">// DB 리스트</h3>
</li> -->
</ul>
</div>
</main>
<!-- 푸터부분 ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== -->
<footer class="footer">
<div class="footer__left"></div>
<div class="footer__right">
<p class="footer__copyright">Powered by BARON Consultant Co,.Ltd</p>
</div>
</footer>
</body>
</html>
<script src="https://api.digitalarchive.work/hmCesium/lib/axios/dist/axios.js"></script>
<script>
async function init(){
let res = await axios.get('/common/getProject');
let list = res.data.data;
let tdcUl = document.getElementById('tdc');
let gpdUl = document.getElementById('gpd');
for(let i = 0; i < list.length; i++){
if(list[i].category === 'tdc' || list[i].category === 'gpd'){
let li = document.createElement('li');
li.id = list[i].project_id;
li.classList.add('main__list-item');
li.link_url = `/${list[i].project_id}/archive`;
let wrap = document.createElement('div');
wrap.classList.add('wrap');
let img = document.createElement('img');
img.classList.add('icon');
img.src = "/index/img-onpremise/icon__folder--fff.svg";
img.alt = "icon__folder--fff";
let h3 = document.createElement('h3');
h3.innerHTML = list[i].project_nm;
h3.classList.add('main__list-item-label');
wrap.appendChild(img);
wrap.appendChild(h3);
let sign = document.createElement('div');
sign.classList.add('sign');
if (!list[i].is_active) sign.classList.add('inactive');
let master = document.createElement('div');
master.classList.add('master');
master.innerHTML = `${list[i].user_nm} ${list[i].position}`;
li.appendChild(wrap);
li.appendChild(sign);
li.appendChild(master);
if(list[i].category === 'tdc') tdcUl.appendChild(li);
if(list[i].category === 'gpd') gpdUl.appendChild(li);
}
}
document.querySelectorAll('li').forEach(ele=>{
ele.addEventListener('click',(e)=>{
let value = e.currentTarget.link_url;
window.location.href = value;
// window.open(`${value}`, '', `width=${screen.availWidth}, height=${screen.availHeight}, fullscreen=yes ,location=no`);
// window.open(`${value}`, '_blank');
})
});
document.querySelector('.header__left').addEventListener('click',()=>{
window.location.href = '/';
});
let version_res = await axios.get('/common/getVersion');
if(version_res.data.message == 'getVersion success') document.getElementById('project-version').innerText = version_res.data.version;
// 관리자 권한 확인 및 버튼 노출 제어
try {
let statusRes = await axios.get('/auth/status');
if (statusRes.data.loggedIn && statusRes.data.user) {
const uGroup = statusRes.data.user.group;
if (uGroup === 'USER_GROUP_super' || uGroup === 'super' || uGroup === 'dev') {
const adminBtn = document.getElementById('adminBtn');
if (adminBtn) adminBtn.style.display = 'inline-flex';
}
}
} catch (err) {
console.error("Check admin status error:", err);
}
}
init();
</script>