Index: arms/js/reqKanban.js
===================================================================
diff -u -r4424aee8b9edc09dac3336e9e454de1f29f97bbd -r4455b7a24c5e8f5276a1095b0bcfba44055ac839
--- arms/js/reqKanban.js (.../reqKanban.js) (revision 4424aee8b9edc09dac3336e9e454de1f29f97bbd)
+++ arms/js/reqKanban.js (.../reqKanban.js) (revision 4455b7a24c5e8f5276a1095b0bcfba44055ac839)
@@ -1,10 +1,10 @@
let selectedPdServiceId; // 선택한 제품(서비스) 아이디
let selectedVersionId; // 선택한 버전 아이디
const reqStateToIdMapping = { // 요구사항 상태에 id 매핑
- '열림': 'kanban-open',
- '진행중': 'kanban-progress',
- '해결됨': 'kanban-resolve',
- '닫힘': 'kanban-close'
+ '열림': '10',
+ '진행중': '11',
+ '해결됨': '12',
+ '닫힘': '13'
};
////////////////////////////////////////////////////////////////////////////////////////
//Document Ready
@@ -180,15 +180,16 @@
url: "/auth-user/api/arms/reqAdd/T_ARMS_REQADD_" +
selectedPdServiceId +
"/getReqAddListByFilter.do?c_req_pdservice_versionset_link=" +
- selectedVersionId,
+ selectedVersionId +
+ "&c_type=default",
type: "GET",
dataType: "json",
progress: true,
statusCode: {
200: function (data) {
// 요구사항 상태 별 리스트
- const reqListByState = data.reduce((reqList, item, index) => {
+ const reqListByState = data.reduce((reqList, item) => {
// 요구사항 상태 가져오기
const state = (item.reqStateEntity && item.reqStateEntity.c_title) || "상태 정보 없음";
@@ -207,13 +208,12 @@
// 현재 상태에 해당하는 리스트에 아이템 추가
reqList[state].push({
- id: state + "-" + index,
- title: `${item.c_title} `,
+ id: item.c_id,
+ title: `${item.c_title} `,
info: {
reqVersions: versions,
reqPriority: (item.reqPriorityEntity && item.reqPriorityEntity.c_title) || "우선순위 정보 없음",
reqDifficulty: (item.reqDifficultyEntity && item.reqDifficultyEntity.c_title) || "난이도 정보 없음",
- reqState: state,
reqPlan: item.c_req_plan_time || "예상 일정 정보 없음"
}
});
@@ -268,20 +268,56 @@
gutter : '15px',
responsivePercentage: true,
dragBoards: false,
- boards : reqBoardByState
+ boards : reqBoardByState,
+ dropEl: function (el, target, source) {
+ // 보드 변경
+ let reqId = el.dataset.eid;
+ let reqTitle = el.innerText;
+ let state = source.parentNode.dataset.id;
+ let changeState = target.parentNode.dataset.id;
+
+ console.log('[ reqKanban :: loadKanban ] :: 보드 이동', {
+ element: el.dataset,
+ fromBoard: state,
+ toBoard: changeState
+ });
+
+ // 요구사항 상태 변경
+ let reqData = {
+ c_id: reqId,
+ c_req_state_link: changeState,
+ c_req_etc: '칸반'
+ };
+ $.ajax({
+ url: "/auth-user/api/arms/reqAdd/" + "T_ARMS_REQADD_" + selectedPdServiceId + "/updateNode.do",
+ type: "POST",
+ data: reqData,
+ statusCode: {
+ 200: function () {
+ console.log("[ reqKanban :: loadKanban ] :: 요구사항 상태 변경 -> ", changeState);
+ jSuccess('"' + reqTitle + '"' + " 요구사항 상태가 변경되었습니다.");
+ }
+ }
+ });
+ }
});
// 상세 정보 클릭 이벤트
$('.show-info').click(function() {
- const id = $(this).data('id');
- const state = $(this).data('state');
+ const reqId = $(this).data('id');
- const item = reqListByState[state].find(item => item.id === id);
+ let reqInfo;
+ Object.values(reqListByState).forEach(stateList => {
+ const reqItem = stateList.find(item => item.id === reqId);
+ if (reqItem) {
+ reqInfo = reqItem.info;
+ }
+ });
- if (item && item.info) {
- alert(JSON.stringify(item.info));
+ if (reqInfo) {
+ alert(JSON.stringify(reqInfo));
} else {
- console.error('[ reqKanban :: loadKanban ] :: info 정보를 찾을 수 없습니다.', { id, state });
+ console.error('[ reqKanban :: loadKanban ] :: info 정보를 찾을 수 없습니다.', { reqId });
}
});
}