feat(project): 내 업무 패널 스크롤 + 프로젝트 폴더 펼치기/접기 토글
- .pj-home-side 에 max-height+overflow-y:auto 추가 — 목록이 길어지면 패널 안에서만 스크롤(프로젝트 상세 화면은 기존 height:100% 우선 적용). - "내 업무"의 프로젝트별 폴더 아이콘을 별도 토글 버튼으로 분리(이름은 계속 프로젝트로 이동하는 링크) — 클릭 시 하위 업무 목록 펼침/접힘, 아이콘도 folder_open/folder 로 전환. localStorage로 접힘 상태 기억. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2441,11 +2441,41 @@
|
||||
setTimeout(poll, 8000);
|
||||
}
|
||||
|
||||
// ── "내 업무" 패널 — 프로젝트별 폴더 아이콘 클릭으로 하위 업무 목록
|
||||
// 펼치기/접기. 홈 화면·프로젝트 상세 화면 둘 다 같은 마크업이라 공용으로
|
||||
// 한 번만 처리한다(각 initXxx 와 무관, 서버 렌더 마크업 그대로 사용).
|
||||
function wireMyTreeToggles() {
|
||||
const KEY = "pj_mytree_collapsed";
|
||||
let collapsed;
|
||||
try { collapsed = new Set(JSON.parse(localStorage.getItem(KEY) || "[]")); }
|
||||
catch (_) { collapsed = new Set(); }
|
||||
function save() {
|
||||
try { localStorage.setItem(KEY, JSON.stringify(Array.prototype.slice.call(collapsed))); } catch (_) {}
|
||||
}
|
||||
document.querySelectorAll(".pj-mytree-group").forEach(function (group) {
|
||||
const gid = group.dataset.groupId;
|
||||
const btn = group.querySelector(".pj-mytree-toggle");
|
||||
const icon = btn ? btn.querySelector(".material-symbols-outlined") : null;
|
||||
function apply() {
|
||||
const isCollapsed = collapsed.has(gid);
|
||||
group.classList.toggle("is-collapsed", isCollapsed);
|
||||
if (icon) icon.textContent = isCollapsed ? "folder" : "folder_open";
|
||||
}
|
||||
apply();
|
||||
if (btn) btn.addEventListener("click", function () {
|
||||
if (collapsed.has(gid)) collapsed.delete(gid); else collapsed.add(gid);
|
||||
save();
|
||||
apply();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
initHome();
|
||||
initProject();
|
||||
initBell();
|
||||
initInbox();
|
||||
initLiveRefresh();
|
||||
wireMyTreeToggles();
|
||||
});
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user