+
+
@@ -331,5 +331,5 @@
-
+
{% endblock %}
diff --git a/app/static/project.js b/app/static/project.js
index c223563..6e13b17 100644
--- a/app/static/project.js
+++ b/app/static/project.js
@@ -605,7 +605,15 @@
}
let timeline = null;
- let currentView = "calendar";
+ // 마지막으로 보던 뷰를 기억한다 — 달력 이전/다음달 이동은 페이지를 통째로
+ // 새로고침하므로(?y=&m=), 기억이 없으면 달력을 보다가도 매번 기본값(보드)
+ // 으로 튕겨나간다.
+ const VIEW_KEY = "pj_view";
+ let currentView = "board";
+ try {
+ const saved = localStorage.getItem(VIEW_KEY);
+ if (saved && ["board", "list", "calendar", "timeline"].indexOf(saved) >= 0) currentView = saved;
+ } catch (_) {}
// ── 프로젝트 스코프 — 아사나처럼 기본은 "이 프로젝트만", "전체 프로젝트"로
// 전환하면 예전처럼 접근 가능한 모든 프로젝트를 합쳐서 보여준다.
@@ -633,8 +641,18 @@
v.hidden = v.dataset.view !== view;
});
currentView = view;
+ try { localStorage.setItem(VIEW_KEY, view); } catch (_) {}
renderView(view);
});
+ // 서버가 그린 기본 탭(보드)과 기억된 탭이 다르면 화면을 맞춰준다.
+ if (currentView !== "board") {
+ tabs.querySelectorAll(".pj-tab").forEach(function (t) {
+ t.classList.toggle("is-active", t.dataset.view === currentView);
+ });
+ document.querySelectorAll(".pj-view").forEach(function (v) {
+ v.hidden = v.dataset.view !== currentView;
+ });
+ }
// ── 프로젝트 스코프 토글 ──
const scopeToggle = el("pj-scope-toggle");
@@ -1828,8 +1846,9 @@
});
});
- // 최초 렌더 — 달력 막대 그리기 + 드래그 연결
- renderCalendar();
+ // 최초 렌더 — 아사나처럼 프로젝트에 들어오면 보드(세션)가 기본 화면이다
+ // (달력을 보던 중이었다면 그 기억된 뷰를 그린다, 위 VIEW_KEY 복원 참고).
+ renderView(currentView);
// 사이드 트리에서 업무 클릭(?task=ID)으로 들어오면 해당 업무 모달 자동 열기.
// 단, 처리 후 URL 에서 task 파라미터를 제거한다 — 드래그 이동 후 location.reload()