diff --git a/frontend/issues-dashboard.html b/frontend/issues-dashboard.html index 72cd989..e91c54b 100644 --- a/frontend/issues-dashboard.html +++ b/frontend/issues-dashboard.html @@ -471,6 +471,20 @@ container.innerHTML = dateGroups; } + // 부적합명 추출 (첫 번째 줄) + function getIssueTitle(issue) { + const description = issue.final_description || issue.description || ''; + const lines = description.split('\n'); + return lines[0] || '부적합명 없음'; + } + + // 상세 내용 추출 (두 번째 줄부터) + function getIssueDetail(issue) { + const description = issue.final_description || issue.description || ''; + const lines = description.split('\n'); + return lines.slice(1).join('\n') || '상세 내용 없음'; + } + // 이슈 카드 생성 (관리함 진행 중 스타일, 읽기 전용) function createIssueCard(issue) { const project = projects.find(p => p.id === issue.project_id); @@ -526,13 +540,17 @@
-
- No.${issue.project_sequence_no || '-'} -
- - - ${getCategoryText(issue.final_category || issue.category)} - +
+
+ No.${issue.project_sequence_no || '-'} +
+ ${projectName} + + + ${getCategoryText(issue.final_category || issue.category)} + +
+

${getIssueTitle(issue)}

${isUrgent() ? '🔥 긴급' : ''} @@ -548,13 +566,10 @@
- 부적합 내용 + 상세 내용
-
- ${(issue.final_description || issue.description || '중복작업 신고용').split(' ')[0] || '부적합'} -
-
- ${(issue.final_description || issue.description || '중복작업 신고용').split(' ').slice(1).join(' ') || '상세 내용 없음'} +
+ ${getIssueDetail(issue)}
diff --git a/frontend/issues-inbox.html b/frontend/issues-inbox.html index 423854e..87fb7e2 100644 --- a/frontend/issues-inbox.html +++ b/frontend/issues-inbox.html @@ -377,9 +377,15 @@
- + + +
+ +
+ + placeholder="부적합에 대한 상세한 설명을 입력하세요...">
@@ -1192,7 +1198,10 @@ // 현재 값들로 폼 초기화 document.getElementById('reviewCategory').value = issue.category; - document.getElementById('reviewDescription').value = issue.description; + // 기존 description을 title과 description으로 분리 (첫 번째 줄을 title로 사용) + const lines = issue.description.split('\n'); + document.getElementById('reviewTitle').value = lines[0] || ''; + document.getElementById('reviewDescription').value = lines.slice(1).join('\n') || issue.description; document.getElementById('reviewModal').classList.remove('hidden'); } @@ -1209,13 +1218,17 @@ const projectId = document.getElementById('reviewProjectId').value; const category = document.getElementById('reviewCategory').value; + const title = document.getElementById('reviewTitle').value.trim(); const description = document.getElementById('reviewDescription').value.trim(); - if (!description) { - alert('설명을 입력해주세요.'); + if (!title) { + alert('부적합명을 입력해주세요.'); return; } + // 부적합명과 상세 내용을 합쳐서 저장 (첫 번째 줄에 제목, 나머지는 상세 내용) + const combinedDescription = title + (description ? '\n' + description : ''); + try { const response = await fetch(`/api/inbox/${currentIssueId}/review`, { method: 'POST', @@ -1226,7 +1239,7 @@ body: JSON.stringify({ project_id: projectId ? parseInt(projectId) : null, category: category, - description: description + description: combinedDescription }) }); diff --git a/frontend/issues-management.html b/frontend/issues-management.html index af8ae33..d35dcbe 100644 --- a/frontend/issues-management.html +++ b/frontend/issues-management.html @@ -692,18 +692,35 @@ } } + // 부적합명 추출 (첫 번째 줄) + function getIssueTitle(issue) { + const description = issue.final_description || issue.description || ''; + const lines = description.split('\n'); + return lines[0] || '부적합명 없음'; + } + + // 상세 내용 추출 (두 번째 줄부터) + function getIssueDetail(issue) { + const description = issue.final_description || issue.description || ''; + const lines = description.split('\n'); + return lines.slice(1).join('\n') || '상세 내용 없음'; + } + // 진행 중 카드 생성 function createInProgressRow(issue, project) { return `
-
-
- No.${issue.project_sequence_no || '-'} -
+
+
+
+ No.${issue.project_sequence_no || '-'} +
+
+ ${project ? project.project_name : '프로젝트 미지정'}
-

${project ? project.project_name : '프로젝트 미지정'}

+

${getIssueTitle(issue)}