-
- 등록된 스케줄
- {schedules.length > 0 && (
-
- ({schedules.length}개)
-
- )}
-
+
+
+ 등록된 스케줄
+ {schedules.length > 0 && (
+
+ ({schedules.length}개)
+
+ )}
+
+ setGuideOpen(true)} />
+
);
}
diff --git a/frontend/src/pages/Timeline.tsx b/frontend/src/pages/Timeline.tsx
index 2ce2e21..d0b95c6 100644
--- a/frontend/src/pages/Timeline.tsx
+++ b/frontend/src/pages/Timeline.tsx
@@ -8,6 +8,7 @@ import { getStatusColor } from '../components/StatusBadge';
import StatusBadge from '../components/StatusBadge';
import LoadingSpinner from '../components/LoadingSpinner';
import EmptyState from '../components/EmptyState';
+import GuideModal, { HelpButton } from '../components/GuideModal';
type ViewType = 'day' | 'week' | 'month';
@@ -70,9 +71,31 @@ function isRunning(status: string): boolean {
return status === 'STARTED' || status === 'STARTING';
}
+const TIMELINE_GUIDE = [
+ {
+ title: '타임라인이란?',
+ content: '타임라인은 배치 작업의 실행 스케줄과 결과를 시각적으로 보여주는 화면입니다.\n세로축은 작업 목록, 가로축은 시간대를 나타냅니다.\n각 셀의 색상으로 실행 상태를 한눈에 파악할 수 있습니다.',
+ },
+ {
+ title: '보기 모드',
+ content: '3가지 보기 모드를 제공합니다.\n• Day: 하루 단위 (시간대별 상세 보기)\n• Week: 일주일 단위\n• Month: 한 달 단위\n\n이전/다음 버튼으로 기간을 이동하고, "오늘" 버튼으로 현재 날짜로 돌아옵니다.',
+ },
+ {
+ title: '색상 범례',
+ content: '각 셀의 색상은 실행 상태를 나타냅니다.\n• 초록색: 완료 (성공적으로 실행됨)\n• 빨간색: 실패 (오류 발생)\n• 파란색: 실행 중 (현재 진행 중)\n• 보라색: 예정 (아직 실행 전)\n• 회색: 없음 (해당 시간대에 실행 기록 없음)',
+ },
+ {
+ title: '상세 보기',
+ content: '셀 위에 마우스를 올리면 툴팁으로 작업명, 기간, 상태 등 요약 정보를 보여줍니다.\n셀을 클릭하면 하단에 상세 패널이 열리며, 해당 시간대의 실행 이력 목록을 확인할 수 있습니다.\n"상세" 링크를 클릭하면 실행 상세 화면으로 이동합니다.',
+ },
+];
+
export default function Timeline() {
const { showToast } = useToastContext();
+ // Guide modal state
+ const [guideOpen, setGuideOpen] = useState(false);
+
const [view, setView] = useState
('day');
const [currentDate, setCurrentDate] = useState(() => new Date());
const [periodLabel, setPeriodLabel] = useState('');
@@ -254,6 +277,9 @@ export default function Timeline() {
>
새로고침
+
+ {/* Help */}
+ setGuideOpen(true)} />