사용자 정보 팝오버 추가
This commit is contained in:
@@ -6,6 +6,7 @@ const loginForm = document.getElementById("login-form");
|
||||
const loginMessage = document.getElementById("login-message");
|
||||
const logoutBtn = document.getElementById("logout-btn");
|
||||
const userBadge = document.getElementById("user-badge");
|
||||
const userPopover = document.getElementById("user-popover");
|
||||
const currentViewTitle = document.getElementById("current-view-title");
|
||||
const navButtons = Array.from(document.querySelectorAll(".header-center [data-view]"));
|
||||
const organizationFrame = document.getElementById("organization-frame");
|
||||
@@ -37,6 +38,14 @@ function clearSession() {
|
||||
sessionStorage.removeItem(sessionKey);
|
||||
}
|
||||
|
||||
function hideUserPopover() {
|
||||
userPopover?.classList.add("hidden");
|
||||
}
|
||||
|
||||
function toggleUserPopover() {
|
||||
userPopover?.classList.toggle("hidden");
|
||||
}
|
||||
|
||||
function setActiveView(view) {
|
||||
const previousView = currentView;
|
||||
currentView = view in viewLabels ? view : "organization";
|
||||
@@ -71,8 +80,29 @@ function renderAuth() {
|
||||
dashboardPanel.classList.toggle("hidden", !authenticated);
|
||||
if (authenticated) {
|
||||
const displayName = session.user.display_name || "접속자";
|
||||
userBadge.innerHTML = `<span class="user-chip-icon">◎</span><span class="user-chip-text"><strong>${displayName}</strong><em>-</em></span>`;
|
||||
const rank = "-";
|
||||
userBadge.innerHTML = `<span class="user-chip-icon">◎</span><span class="user-chip-text"><strong>${displayName}</strong><em>${rank}</em></span>`;
|
||||
userBadge.title = `${displayName} / -`;
|
||||
if (userPopover) {
|
||||
userPopover.innerHTML = `
|
||||
<div class="user-popover-row">
|
||||
<span class="user-popover-label">이름</span>
|
||||
<strong>${displayName}</strong>
|
||||
</div>
|
||||
<div class="user-popover-row">
|
||||
<span class="user-popover-label">직급</span>
|
||||
<span>${rank}</span>
|
||||
</div>
|
||||
<div class="user-popover-row">
|
||||
<span class="user-popover-label">권한</span>
|
||||
<span>${session.user.role || "-"}</span>
|
||||
</div>
|
||||
<div class="user-popover-row">
|
||||
<span class="user-popover-label">아이디</span>
|
||||
<span>${session.user.username || "-"}</span>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,15 +130,28 @@ if (loginForm) {
|
||||
if (logoutBtn) {
|
||||
logoutBtn.addEventListener("click", () => {
|
||||
clearSession();
|
||||
hideUserPopover();
|
||||
renderAuth();
|
||||
});
|
||||
}
|
||||
|
||||
if (userBadge) {
|
||||
userBadge.addEventListener("click", (event) => {
|
||||
event.stopPropagation();
|
||||
toggleUserPopover();
|
||||
});
|
||||
}
|
||||
|
||||
navButtons.forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
hideUserPopover();
|
||||
setActiveView(button.dataset.view || "organization");
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener("click", () => {
|
||||
hideUserPopover();
|
||||
});
|
||||
|
||||
setActiveView(currentView);
|
||||
renderAuth();
|
||||
|
||||
Reference in New Issue
Block a user