From a332ed0d8efd08936d627b0ca55a6001460aa505 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Sep 2026 19:50:04 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=94=BC=EB=93=9C=EB=B0=B1=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=83=81=ED=83=9C,=20=ED=9A=8C=EC=82=AC?= =?UTF-8?q?=20=EC=98=A4=ED=91=9C=EC=8B=9C=20=EA=B0=9C=EC=84=A01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- egbim/app.js | 39 ++++++++++++++++++++------------------- egbim/detail.html | 2 +- egbim/index.html | 2 +- egbim/write.html | 2 +- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/egbim/app.js b/egbim/app.js index 4c5d6a2..31f6714 100644 --- a/egbim/app.js +++ b/egbim/app.js @@ -7,12 +7,16 @@ const COMMENTS_KEY = 'baron.qa.comments.egbim'; const CATEGORY_CODES = { '오류문의': 'ERROR_QNA', '개선문의': 'IMPROVEMENT_QNA', '일반문의': 'GENERAL_QNA' }; const STATUS_LABELS = { - INIT: "접수", + NEW: "신규", + INIT: "신규", + RECEIVED: "접수", ON_REVIEW: "접수", DETAILED_REVIEW: "진행중", IN_PROGRESS: "진행중", RESOLVED: "완료", - PENDING: "보류" + COMPLETED: "완료", + PENDING: "보류", + ON_HOLD: "보류" }; let authReady; @@ -77,7 +81,7 @@ content: value(["contents", "content", "body"]) || "", date: String(createdAt).slice(0, 10), createdAt: createdAt, - status: normalizeStatus(value(["feedback_status", "feedbackStatus", "status_code", "status"]), item), + status: normalizeStatus(value(["feedback_status", "feedbackStatus", "status_code", "status"])), secret: secret === true || String(secret).toLowerCase() === "true" || String(secret) === "1", attachments: value(["attachments", "images"]) || [], raw: item @@ -117,21 +121,18 @@ return Boolean(post.author && [user.name, user.loginId, user.email].filter(Boolean).indexOf(post.author) > -1); } - function normalizeStatus(value, context) { + function normalizeStatus(value) { if (value && typeof value === "object") value = value.code || value.key || value.value || value.name || ""; const raw = String(value || "").trim(); if (!raw) return ""; const upper = raw.toUpperCase(); - const label = STATUS_LABELS[upper] || ({ - NEW: "접수", RECEIVED: "접수", 접수: "접수", 문의접수: "접수", 문의검토: "접수", REVIEW: "접수", - DEEP: "진행중", 정밀검토: "진행중", PATCH: "진행중", 처리중: "진행중", 진행중: "진행중", - DONE: "완료", COMPLETED: "완료", 답변완료: "완료", 완료: "완료", - HOLD: "보류", ON_HOLD: "보류", 보류: "보류" + return STATUS_LABELS[upper] || ({ + NEW: "신규", INIT: "신규", 신규: "신규", + RECEIVED: "접수", 접수: "접수", 문의접수: "접수", ON_REVIEW: "접수", REVIEW: "접수", 문의검토: "접수", + DETAILED_REVIEW: "진행중", DEEP: "진행중", IN_PROGRESS: "진행중", PATCH: "진행중", 처리중: "진행중", 진행중: "진행중", 정밀검토: "진행중", + DONE: "완료", COMPLETED: "완료", RESOLVED: "완료", 답변완료: "완료", 완료: "완료", + HOLD: "보류", ON_HOLD: "보류", PENDING: "보류", 보류: "보류" }[upper] || raw); - const issues = context && Array.isArray(context.issues) ? context.issues : []; - const issueLinkStatus = context && (context.issue_link_status || context.issueLinkStatus || context.issue_status || context.issueStatus); - const hasLinkedIssue = issues.length > 0 || ["LINKED", "ISSUE_LINKED", "CONNECTED", "이슈접수"].indexOf(String(issueLinkStatus || "").toUpperCase()) > -1; - return label === "진행중" && hasLinkedIssue ? "진행중(이슈접수)" : label; } function extractFeedbackStatus(payload) { @@ -141,11 +142,11 @@ const candidate = candidates[index]; if (!candidate || typeof candidate !== 'object') continue; const value = candidate.feedback_status || candidate.feedbackStatus || candidate.status_code || candidate.status; - if (value != null && value !== '') return normalizeStatus(value, root); + if (value != null && value !== '') return normalizeStatus(value); } const fields = root && (Array.isArray(root.fields) ? root.fields : (root.data && Array.isArray(root.data.fields) ? root.data.fields : [])); const statusField = fields.find(function (field) { return field && (field.key === 'feedback_status' || field.fieldKey === 'feedback_status' || field.name === 'feedback_status'); }); - return statusField ? normalizeStatus(statusField.value || statusField.val || statusField.data, root) : ''; + return statusField ? normalizeStatus(statusField.value || statusField.val || statusField.data) : ''; } async function refreshRemoteStatus(post) { @@ -446,7 +447,7 @@ tableBody.innerHTML = rows.map(function (post, index) { const isNotice = post.category === "공지사항"; const number = isNotice ? "공지" : filtered.length - ((page - 1) * pageSize + index); - const status = normalizeStatus(post.status, post.raw); + const status = normalizeStatus(post.status); const statusClass = status === "답변완료" ? "done" : (status === "문의검토" || status === "정밀검토" ? "review" : ""); const company = getPostCompany(post, user); return "" + @@ -497,7 +498,7 @@ if (!qs('#category').value || !title || !content) { errorBox.textContent = '구분, 제목, 내용을 모두 입력해주세요.'; errorBox.style.display = 'block'; return; } const feedbackId = makeUuid(); const createdAt = new Date().toISOString(); - const post = { id: feedbackId, feedbackId: feedbackId, requesterId: currentUser.requesterId, requesterTenantId: currentUser.requesterTenantId, category: qs('#category').value, company: currentUser.company || currentUser.tenantName || currentUser.familyCompany || '외부 사용자', department: currentUser.department || '-', author: currentUser.name || currentUser.loginId, title: title, date: createdAt.slice(0, 10), createdAt: createdAt, status: '접수', secret: qs('#secret').checked, content: content }; + const post = { id: feedbackId, feedbackId: feedbackId, requesterId: currentUser.requesterId, requesterTenantId: currentUser.requesterTenantId, category: qs('#category').value, company: currentUser.company || currentUser.tenantName || currentUser.familyCompany || '외부 사용자', department: currentUser.department || '-', author: currentUser.name || currentUser.loginId, title: title, date: createdAt.slice(0, 10), createdAt: createdAt, status: '신규', secret: qs('#secret').checked, content: content }; const submitButton = qs('#submitButton'); submitButton.disabled = true; submitButton.textContent = '등록 중...'; @@ -545,7 +546,7 @@ } qs('[data-detail-category]').textContent = post.category; qs('[data-detail-title]').textContent = post.title; - qs('[data-detail-status]').textContent = normalizeStatus(post.status, post.raw) || '공지'; + qs('[data-detail-status]').textContent = normalizeStatus(post.status) || '공지'; qs('[data-detail-date]').textContent = post.date; qs('[data-detail-author]').textContent = post.author; const detailUser = getAuthUser(); @@ -740,7 +741,7 @@ }).join(''); }); refreshRemoteStatus(post).then(function (changed) { - if (changed) qs('[data-detail-status]').textContent = normalizeStatus(post.status, post.raw) || '공지'; + if (changed) qs('[data-detail-status]').textContent = normalizeStatus(post.status) || '공지'; }); } diff --git a/egbim/detail.html b/egbim/detail.html index 50c729a..a3264ab 100644 --- a/egbim/detail.html +++ b/egbim/detail.html @@ -4,5 +4,5 @@
EG-BIM SUPPORT

Q&A

EG-BIM 관련 문의하기

문의 상세

문의 내용과 답변을 확인할 수 있습니다.

문의 문의 제목

문의접수
2026-09-17작성자회사부서

첨부파일

첨부된 파일이 없습니다.
목록

답변 0

-
+ diff --git a/egbim/index.html b/egbim/index.html index 45d148e..4280272 100644 --- a/egbim/index.html +++ b/egbim/index.html @@ -23,6 +23,6 @@
- + diff --git a/egbim/write.html b/egbim/write.html index a8f2b4e..b9fe109 100644 --- a/egbim/write.html +++ b/egbim/write.html @@ -4,5 +4,5 @@
EG-BIM SUPPORT

Q&A

EG-BIM 관련 문의하기

문의 등록

로그인한 사용자 정보로 문의가 등록됩니다.

로그인 상태를 확인하고 있습니다.
공개 설정
개인정보, 비밀번호, 인증번호 등 민감한 정보는 입력하지 마세요.
파일은 문의와 함께 안전하게 업로드됩니다. 파일당 최대 30MB
-
+