fix(ui): 타임라인 상세 화면 이동 오류 수정 및 실행 중 작업 상세 버튼 추가 (#34) #36

병합
HYOJIN bugfix/ISSUE-34-timeline-detail-navigation 에서 develop 로 2 commits 를 머지했습니다 2026-03-11 09:49:05 +09:00
4개의 변경된 파일22개의 추가작업 그리고 18개의 파일을 삭제

파일 보기

@ -8,5 +8,8 @@
- 자동 재수집 및 재수집 프로세스 전면 개선 (#30) - 자동 재수집 및 재수집 프로세스 전면 개선 (#30)
- 배치 작업 목록 UX 개선: 상태 필터, 카드/테이블 뷰, 정렬, 실행 중 강조 (#33) - 배치 작업 목록 UX 개선: 상태 필터, 카드/테이블 뷰, 정렬, 실행 중 강조 (#33)
### 수정
- 타임라인 상세 화면 이동 오류 수정 및 실행 중 작업 상세 버튼 추가 (#34)
### 기타 ### 기타
- 팀 워크플로우 v1.6.1 동기화 - 팀 워크플로우 v1.6.1 동기화

파일 보기

@ -450,7 +450,7 @@ export default function Executions() {
</td> </td>
<td className="px-6 py-4 text-right"> <td className="px-6 py-4 text-right">
<div className="flex items-center justify-end gap-2"> <div className="flex items-center justify-end gap-2">
{isRunning(exec.status) ? ( {isRunning(exec.status) && (
<> <>
<button <button
onClick={() => onClick={() =>
@ -460,7 +460,6 @@ export default function Executions() {
> >
</button> </button>
{/* F1: 강제 종료 버튼 */}
<button <button
onClick={() => onClick={() =>
setAbandonTarget(exec) setAbandonTarget(exec)
@ -470,7 +469,7 @@ export default function Executions() {
</button> </button>
</> </>
) : ( )}
<button <button
onClick={() => onClick={() =>
navigate( navigate(
@ -481,7 +480,6 @@ export default function Executions() {
> >
</button> </button>
)}
</div> </div>
</td> </td>
</tr> </tr>

파일 보기

@ -1,4 +1,5 @@
import { useState, useCallback, useRef, useEffect } from 'react'; import { useState, useCallback, useRef, useEffect } from 'react';
import { Link } from 'react-router-dom';
import { batchApi, type ExecutionInfo, type JobExecutionDto, type PeriodInfo, type ScheduleTimeline } from '../api/batchApi'; import { batchApi, type ExecutionInfo, type JobExecutionDto, type PeriodInfo, type ScheduleTimeline } from '../api/batchApi';
import { formatDateTime, calculateDuration } from '../utils/formatters'; import { formatDateTime, calculateDuration } from '../utils/formatters';
import { usePoller } from '../hooks/usePoller'; import { usePoller } from '../hooks/usePoller';
@ -446,12 +447,12 @@ export default function Timeline() {
{calculateDuration(exec.startTime, exec.endTime)} {calculateDuration(exec.startTime, exec.endTime)}
</td> </td>
<td className="py-2 px-3 text-right"> <td className="py-2 px-3 text-right">
<a <Link
href={`/executions/${exec.executionId}`} to={`/executions/${exec.executionId}`}
className="text-xs text-wing-accent hover:text-wing-accent font-medium" className="text-xs text-wing-accent hover:text-wing-accent font-medium no-underline"
> >
</a> </Link>
</td> </td>
</tr> </tr>
))} ))}

파일 보기

@ -14,7 +14,9 @@ public class WebViewController {
@GetMapping({"/", "/jobs", "/executions", "/executions/{id:\\d+}", @GetMapping({"/", "/jobs", "/executions", "/executions/{id:\\d+}",
"/recollects", "/recollects/{id:\\d+}", "/recollects", "/recollects/{id:\\d+}",
"/schedules", "/schedule-timeline", "/monitoring"}) "/schedules", "/schedule-timeline", "/monitoring",
"/jobs/**", "/executions/**", "/recollects/**",
"/schedules/**", "/schedule-timeline/**", "/monitoring/**"})
public String forward() { public String forward() {
return "forward:/index.html"; return "forward:/index.html";
} }