From 264359a48d95948ea1b67bf1660521a4d8c1d598 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 09 12월 2021 14:22:13 +0900 Subject: [PATCH] 삭제할 이슈의 하위이슈가 존재할 경우 모두 삭제 & 이슈만 삭제 --- src/main/webapp/scripts/app/issue/issueList.controller.js | 266 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 221 insertions(+), 45 deletions(-) diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index fe9dc27..c596f5d 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -22,6 +22,7 @@ setTableColumn : setTableColumn, // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. add : add, // �씠�뒋 �깮�꽦 modify : modify, // �씠�뒋 �닔�젙 + addRelationIssueForm : addRelationIssueForm, // �뿰愿� �씠�뒋 異붽� modifyMultiIssueStatus : modifyMultiIssueStatus, // �씠�뒋 �떎以� �긽�깭 蹂�寃� removes : removes, // �씠�뒋 �궘�젣 addIssueTableConfig : addIssueTableConfig, // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 @@ -37,7 +38,8 @@ getVmSearchObject : getVmSearchObject, // ���옣�븳 寃��깋 議곌굔�쓣 媛��졇���꽌 vm �뿉 �뀑�똿�븳�떎. makeSearchConditions : makeSearchConditions, // 寃��깋 議곌굔�쓣 留뚮뱺�떎. getIssueTableConfigs : getIssueTableConfigs, // �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. - startExecute : startExecute // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 + startExecute : startExecute, // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 + getResponseData : getResponseData // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 }; // 蹂��닔 @@ -100,6 +102,10 @@ // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂� 媛깆떊 $scope.$on("getIssueTableConfigs", function () { $scope.fn.startExecute(); + }); + + $scope.$on("changedIssueListMenu", function (event, args) { + $scope.fn.getPageList($scope.vm.page.selectedPage - 1); }); // 寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. - �쟻�슜 蹂대쪟 @@ -169,10 +175,11 @@ // �쁽�옱 �긽�꽭�솕硫댁쑝濡� 蹂대젮怨좏븯�뒗 �씠�뒋 id瑜� 湲곗뼲�븳�떎. $rootScope.currentDetailIssueId = id; // �씠�뒋 �긽�꽭 �솕硫� �슂泥� - $rootScope.$broadcast("getIssueDetail", { - id : id - }); + // $scope.$broadcast("getIssueDetail", { + // id : id + // }); } + // 紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. function listView() { @@ -183,6 +190,7 @@ $scope.vm.responseData.data = angular.copy(temp); // 留덉�留됱쑝濡� 蹂닿퀬�엳�뜕 �씠�뒋 id瑜� 珥덇린�솕�븳�떎. $rootScope.currentDetailIssueId = null; + $scope.$broadcast("getIssueList", {id: $rootScope.currentDetailIssueId}); } // �씠�뒋 �뀒�씠釉� �꽕�젙 @@ -195,30 +203,37 @@ .setDAlign("text-center")); // �긽�꽭�삎 �씪�븣�븣 - if ($scope.vm.detailView) { - $scope.vm.tableConfigs.push($tableProvider.config() - .setHName("issue.issueTitle") - .setDName("title") - .setDType("renderer") - .setHWidth("width-100 bold") - .setDRenderer("ISSUE_DETAIL_FLOATING")); - } - else { - $scope.vm.tableConfigs.push($tableProvider.config() - .setHName("issue.issueTitle") - .setDName("title") - .setDType("renderer") - .setHWidth("bold") - .setDRenderer("ISSUE_DETAIL_FLOATING")); - - angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { - // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (issueTableConfig.display) { - // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setTableColumn(issueTableConfig); - } - }); - } + // if ($scope.vm.detailView) { + // $scope.vm.tableConfigs.push($tableProvider.config() + // .setHName("issue.issueTitle") + // .setDName("title") + // .setDType("renderer") + // .setHWidth("bold") + // .setDRenderer("ISSUE_DETAIL_FLOATING")); + // } + // else { + // $scope.vm.tableConfigs.push($tableProvider.config() + // .setHName("issue.issueTitle") + // .setDName("title") + // .setDType("renderer") + // .setHWidth("bold") + // .setDRenderer("ISSUE_DETAIL_FLOATING")); + // + // angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { + // // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + // if (issueTableConfig.display) { + // // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + // $scope.fn.setTableColumn(issueTableConfig); + // } + // }); + // } + angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { + // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + if (issueTableConfig.display) { + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + $scope.fn.setTableColumn(issueTableConfig); + } + }); } // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. @@ -226,6 +241,15 @@ // �씪諛� 而щ읆 switch(issueTableConfig.key) { + case "ISSUE_TITLE" : // �씠�뒋 �젣紐� + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("issue.issueTitle") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("ISSUE_TITLE")); + break; + case "PRIORITY" : // �슦�꽑�닚�쐞 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.priority") @@ -281,6 +305,14 @@ .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDName("modifyDate")); + break; + case "COUNT_DOWN_ISSUE" : // �븯�쐞 �씠�뒋 媛쒖닔 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.countDownIssue") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("DOWN_ISSUE_COUNT")); break; } @@ -487,6 +519,7 @@ if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { var find = findProjectSearch($rootScope.workProject.id); if (!find) { + $scope.vm.projects = []; $scope.vm.projects.push($rootScope.workProject); } } @@ -502,12 +535,46 @@ $scope.vm.issueTypeId = result.data.data[0].issueTypeId; $scope.vm.projectKey = result.data.data[0].projectKey; $scope.vm.issueNumber = result.data.data[0].issueNumber; + $scope.vm.projectName = result.data.data[0].projectName; $scope.vm.page.selectedPage = currentPage + 1; $scope.vm.responseData = result.data; if (detail) { changeDetailView(result.data.data[0].id); } + } else { + $scope.vm.responseData = result.data; + } + + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + + }); + } + + function getResponseData() { + return $scope.data; + } + + // �씠硫붿씪 �봽濡쒖젥�듃 寃쎈줈濡� �씠�룞 �썑 �긽�꽭 吏꾩엯�떆 議고쉶 + function getDetailList(projectKey, number) { + var conditions = { + projectKey : projectKey, + combinationIssueNumber : number + }; + + Issue.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (result.data.data != null && result.data.data.length > 0) { + $scope.vm.projectKey = result.data.data[0].projectKey; + $scope.vm.issueNumber = result.data.data[0].issueNumber; + $scope.vm.responseData = result.data; + + changeDetailView(result.data.data[0].id); } } else { @@ -602,10 +669,27 @@ }); } + function addRelationIssueForm(id) { + $uibModal.open({ + templateUrl : 'views/issue/issueAddRelation.html', + size : "lg", + controller : 'issueAddRelationController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id, + }; + } + } + }); + } + // �씠�뒋 �궘�젣 function removes() { var removeIds = []; var removePermission = true; + var downIssueIds = false; angular.forEach($scope.vm.responseData.data, function (data) { if (data.checked && data.modifyPermissionCheck) { @@ -614,6 +698,10 @@ if (data.checked && !data.modifyPermissionCheck) { removePermission = false; + } + + if (data.downIssueAllCount > 0){ + downIssueIds = true; } }); @@ -636,25 +724,23 @@ return; } - // �궘�젣 �븣由� - SweetAlert.swal({ - title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 - text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + if (downIssueIds) { + SweetAlert.swal({ + title : $filter("translate")("common.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectDownIssue"), // �븯�쐞 �씠�뒋媛� 議댁옱 �빀�땲�떎. �꽑�깮�븳 �씠�뒋�� �븯�쐞 �씠�뒋 紐⑤몢 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. type : "warning", showCancelButton : true, confirmButtonColor : "#DD6B55", confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 closeOnConfirm : false, - closeOnCancel : true + closeOnCancel : false }, function (isConfirm) { - SweetAlert.close(); - - if (isConfirm) { + if (isConfirm) { //�씠�뒋 + �븯�쐞 �궘�젣 $rootScope.spinner = true; - Issue.remove($resourceProvider.getContent( + Issue.removeAllIssues($resourceProvider.getContent( { removeIds : removeIds }, $resourceProvider.getPageContent(0, 0))).then(function (result) { @@ -662,9 +748,7 @@ $timeout(function () { SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� }, 100); - $scope.fn.listView(); - $scope.fn.getPageList(0); } else { @@ -672,11 +756,96 @@ SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 }, 100); } - $rootScope.spinner = false; }); + + } else {// �꽑�깮 �븳 �씠�뒋留� �궘�젣 + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteOnlySelectIssue"), // �꽑�깮�븳 �씠�뒋留� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Issue.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); } }); + } else { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Issue.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } } // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 @@ -885,7 +1054,8 @@ // �뙆�씪誘명꽣 �씫湲� var params = $rootScope.previousGetParams; if ($rootScope.isDefined(params)) { - $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); + // $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); + getDetailList(params.projectKey, params.issueNumber); $rootScope.previousGetParams = null; // $rootScope.issueTypeId = $rootScope.issueTypeMenu.id; return; @@ -917,28 +1087,34 @@ else { // 理쒖큹 �뾽臾� 怨듦컙�뿉 �뱾�뼱�솕�쓣 寃쎌슦 $scope.vm.issueTableConfigs = [{ + name : $filter("translate")("issue.issueTitle"), // �씠�뒋 �젣紐� + key : "ISSUE_TITLE", + width : "width-140-p", + position : 1, + display : true + }, { name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞 key : "PRIORITY", width : "width-80-p", - position : 1, + position : 2, display : true }, { name : $filter("translate")("common.importance"), // 以묒슂�룄 key : "SEVERITY", width : "width-80-p", - position : 2, + position : 3, display : true }, { name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯 key : "ISSUE_TYPE", width : "width-140-p", - position : 3, + position : 4, display : true }, { name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌 key : "ASSIGNEE_TEAM", width : "width-140-p", - position : 4, + position : 5, display : true }]; } -- Gitblit v1.8.0