Index: arms/js/reqStatus.js =================================================================== diff -u -r63d3756dbcb784db4e5479858c7d478be2e9e90d -rdc6d9a6767b410885a52dc43e7143ebea879f595 --- arms/js/reqStatus.js (.../reqStatus.js) (revision 63d3756dbcb784db4e5479858c7d478be2e9e90d) +++ arms/js/reqStatus.js (.../reqStatus.js) (revision dc6d9a6767b410885a52dc43e7143ebea879f595) @@ -105,6 +105,8 @@ reqIssueAndItsSubtasksEvent(); + deleteWithdrawalButton(); + // 스크립트 실행 로직을 이곳에 추가합니다. $("#progress_status").slimScroll({ @@ -954,7 +956,7 @@ { name: "deleted", title: "ALM Deleted", - data: "deleted", + data: "deleted.deleted_date", render: function (data, type, row, meta) { if (isEmpty(data) || data === "false") { return "
N/A
"; @@ -1802,9 +1804,18 @@ ); } function getDeletedIssueData(selectId, endPointUrl) { - console.log(endPointUrl); - console.log(selectId); var columnList = [ + { + name: "select", + title: "", // 전체 선택 체크박스 + data: null, + render: function (data, type, row, meta) { + return ""; + }, + orderable: false, // 정렬 비활성화 + className: "dt-body-center", + visible: true + }, { name: "parentReqKey", title: "부모 요구사항 키", data: "parentReqKey", visible: false }, { name: "isReq", @@ -1928,7 +1939,7 @@ { name: "deleted", title: "ALM Deleted", - data: "deleted", + data: "deleted.deleted_date", render: function (data, type, row, meta) { if (isEmpty(data) || data === "false") { return "
N/A
"; @@ -1947,7 +1958,7 @@ { name: "deleted", title: "삭제 예정일", - data: "deleted", + data: "deleted.deleted_date", render: function (data, type, row, meta) { if (isEmpty(data) || data === "false") { return "
N/A
"; @@ -1997,7 +2008,62 @@ isServerSide ); } +function toggleAll(source) { + const checkboxes = document.querySelectorAll('.rowCheckbox'); + checkboxes.forEach(checkbox => { + checkbox.checked = source.checked; + }); +} +// 체크된 데이터 가져오기 함수 +function getCheckedData() { + const checkedData = []; + const checkboxes = document.querySelectorAll('.rowCheckbox:checked'); // 체크된 체크박스 선택 + checkboxes.forEach(checkbox => { + const rowData = reqStatusDataTable.row(checkbox.closest('tr')).data(); // 데이터 테이블에서 해당 행의 데이터 가져오기 + checkedData.push(rowData); // 배열에 추가 + }); + + if (checkedData.length === 0) { + alert("체크된 데이터가 없습니다."); // 체크된 데이터가 없을 때 알림 + } else { + const confirmation = confirm("삭제를 철회하시겠습니까?"); + + if (confirmation) { + // 사용자가 "예"를 클릭한 경우 + deleteWithdrawal(checkedData); + + } + } + + return checkedData; // 필요에 따라 반환 +} + +function deleteWithdrawal(checkedData) { + var data = removeKeysFromArray(checkedData, ['selectedIndex', 'selectedPage']) + $.ajax({ + url: "/auth-user/api/arms/reqStatus/deleteWithdrawal.do", + type: "PUT", + contentType: "application/json", + data: JSON.stringify(checkedData), + statusCode: { + 200: function () { + jSuccess("삭제가 철회되었습니다."); + } + } + }); +} +function removeKeysFromArray(array, keys) { + array.forEach(item => { + keys.forEach(key => { + delete item[key]; + }); + }); +} +// 버튼 클릭 이벤트 연결 +function deleteWithdrawalButton() { + document.getElementById('deleteWithdrawalButton').addEventListener('click', getCheckedData); +} function getServerTypeMap() { $.ajax({ url: "/auth-user/api/arms/jiraServerPure/serverTypeMap.do", // 클라이언트가 HTTP 요청을 보낼 서버의 URL 주소