From 4d692a614bba9d8954cbbdad2d79424afaab0298 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 월, 03 1월 2022 17:50:00 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 37 ++++--- src/main/java/kr/wisestone/owl/web/condition/IssueRelationCondition.java | 19 +++ src/main/java/kr/wisestone/owl/service/impl/IssueRelationServiceImpl.java | 23 ++-- src/main/webapp/custom_components/js-input-autocomplete/js-input-autocomplete.js | 9 + src/main/webapp/i18n/ko/global.json | 6 src/main/webapp/scripts/app/issue/issueAddDown.controller.js | 6 + src/main/webapp/views/issue/issueDetail.html | 31 +++++ src/main/webapp/scripts/app/issue/issueDetail.controller.js | 132 +++++++++++++++++++++++--- src/main/webapp/scripts/app/issue/downIssueModifyStatus.controller.js | 4 9 files changed, 213 insertions(+), 54 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueRelationServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueRelationServiceImpl.java index f16b414..3dc754c 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueRelationServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueRelationServiceImpl.java @@ -94,20 +94,21 @@ @Override @Transactional public boolean removeRelationIssue(Map<String, Object> resJsonData, IssueRelationCondition condition) { - Long id = condition.getId(); - if (id != null) { - IssueRelation issueRelation = findOne(id); - if (issueRelation != null) { - StringBuilder sb = new StringBuilder(); - issueHistoryService.detectRelationIssue(IssueHistoryType.DELETE, issueRelation, sb); - issueHistoryService.addIssueHistory(issueRelation.getIssue(), IssueHistoryType.MODIFY, sb.toString()); + //Long id = condition.getId(); + List<Long> relRemoveIds = condition.getRemoveIds(); + if (relRemoveIds != null && relRemoveIds.size() > 0) { + for (Long relId : relRemoveIds) { + IssueRelation issueRelation = findOne(relId); + if (issueRelation != null) { + StringBuilder sb = new StringBuilder(); + issueHistoryService.detectRelationIssue(IssueHistoryType.DELETE, issueRelation, sb); + issueHistoryService.addIssueHistory(issueRelation.getIssue(), IssueHistoryType.MODIFY, sb.toString()); - this.issueRelationRepository.deleteById(id); - - return true; + this.issueRelationRepository.deleteById(relId); + } } + return true; } - return false; } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index 3049801..641bcd9 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -3718,28 +3718,31 @@ @Transactional @Override public void modifyParentIssue(IssueForm issueDownForm) { - Issue issue = this.getIssue(issueDownForm.getId()); //�븯�쐞 �씠�뒋 + //Issue issue = this.getIssue(issueDownForm.getId()); //�븯�쐞 �씠�뒋 Long newParentIssueId = issueDownForm.getParentIssueId(); //蹂�寃쏀븷 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋 - StringBuilder sb = new StringBuilder(); - Issue parentIssue = issue.getParentIssue(); //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋 - if(parentIssue != null && parentIssue.getId().equals(newParentIssueId)){ //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋媛� 議댁옱 �븷 寃쎌슦 - this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); - this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); - } + for (Long downId : issueDownForm.getIds()) { + Issue issue = this.getIssue(downId); - if (newParentIssueId != null) { // 異붽� �븷 寃쎌슦 - parentIssue = this.getIssue(newParentIssueId); //�긽�쐞�씠�뒋(myIssue) - issue.setParentIssue(parentIssue); //myIssue瑜� �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋濡� set - this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = �븯�쐞�씠�뒋 - } else{ - // �궘�젣 �븷 寃쎌슦 - this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); - issue.setParentIssue(null); + Issue parentIssue = issue.getParentIssue(); //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋 + if(parentIssue != null && parentIssue.getId().equals(newParentIssueId)){ //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋媛� 議댁옱 �븷 寃쎌슦 + this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); + this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); + } + + if (newParentIssueId != null) { // 異붽� �븷 寃쎌슦 + parentIssue = this.getIssue(newParentIssueId); //�긽�쐞�씠�뒋(myIssue) + issue.setParentIssue(parentIssue); //myIssue瑜� �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋濡� set + this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = �븯�쐞�씠�뒋 + } else{ + // �궘�젣 �븷 寃쎌슦 + this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); + issue.setParentIssue(null); + } + this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); //parentIssue = myIssue(湲곕줉�� �쁽�옱 �긽�꽭�럹�씠吏��뿉 �빐�빞�븯�땲源�) + this.issueRepository.saveAndFlush(issue); } - this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); //parentIssue = myIssue(湲곕줉�� �쁽�옱 �긽�꽭�럹�씠吏��뿉 �빐�빞�븯�땲源�) - this.issueRepository.saveAndFlush(issue); } @Override diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueRelationCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueRelationCondition.java index 2749904..6ddf0c8 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueRelationCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueRelationCondition.java @@ -1,7 +1,10 @@ package kr.wisestone.owl.web.condition; +import com.google.common.collect.Lists; import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.util.MapUtil; +import java.util.List; import java.util.Map; /** @@ -13,10 +16,18 @@ private Long relationIssueId; private Long relationIssueType; + private List<Long> removeIds = Lists.newArrayList(); + public IssueRelationCondition() {} public static IssueRelationCondition make(Map<String, Object> params) { IssueRelationCondition condition = ConvertUtil.convertMapToClass(params, IssueRelationCondition.class); + + // �궘�젣 �씠�뒋 �젙蹂� + if (MapUtil.getLongs(params, "removeIds") != null) { + condition.setRemoveIds(MapUtil.getLongs(params, "removeIds")); + } + return condition; } @@ -51,4 +62,12 @@ public void setRelationIssueType(Long type) { this.relationIssueType = type; } + + public List<Long> getRemoveIds() { + return removeIds; + } + + public void setRemoveIds(List<Long> removeIds) { + this.removeIds = removeIds; + } } diff --git a/src/main/webapp/custom_components/js-input-autocomplete/js-input-autocomplete.js b/src/main/webapp/custom_components/js-input-autocomplete/js-input-autocomplete.js index 45f2792..3baf09d 100644 --- a/src/main/webapp/custom_components/js-input-autocomplete/js-input-autocomplete.js +++ b/src/main/webapp/custom_components/js-input-autocomplete/js-input-autocomplete.js @@ -23,6 +23,7 @@ page : "=", totalPage : "=", inputDisabled : "=", + customInput : "=", }, templateUrl : "custom_components/js-input-autocomplete/js-input-autocomplete.html", link: function ($scope, $element, $attrs) { @@ -180,7 +181,9 @@ $scope.$apply(function () { $scope.open = false; $scope.page = 0; - $scope.search = ""; + if (!angular.isDefined($scope.customInput) && !$scope.customInput) { + $scope.search = ""; + } $scope.totalPage = 0; $scope.options = []; $scope.networkSuccess = false; @@ -301,7 +304,9 @@ switch (event.keyCode) { case 9 : // �꺆�궎 �떕湲� $scope.open = false; - $scope.search = ""; + if (!angular.isDefined($scope.customInput) && !$scope.customInput) { + $scope.search = ""; + } $scope.page = 0; $scope.totalPage = 0; $scope.options = []; diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index 2f610a7..fa6a8c1 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -222,8 +222,8 @@ "selectProjectAndIssueTypeDownloadExcel": "�봽濡쒖젥�듃, �씠�뒋 �쑀�삎�쓣 �꽑�깮�븯硫� �빐�떦 �븯�뒗 �뼇�떇�쓽 �뿊���쓣 �떎�슫濡쒕뱶 �븷 �닔 �엳�뒿�땲�떎.", "settingTableDisplay": "�뀒�씠釉� �몴�떆 �꽕�젙", "deleteIssue": "�씠�뒋 �궘�젣", - "wantToDeleteSelectIssue": "�꽑�깮�븳 �씠�뒋瑜� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", - "wantToDeleteSelectDownIssueInList": "�꽑�깮�븳 �븯�쐞 �씠�뒋瑜� �븯�쐞 �씠�뒋 由ъ뒪�듃�뿉�꽌 �젣�쇅�떆�궎寃좎뒿�땲源�?", + "wantToDeleteSelectIssue": "�꽑�깮�븳 �씠�뒋瑜� �뿰愿� �씠�뒋 由ъ뒪�듃�뿉�꽌 �젣�쇅�떆�궎寃좎뒿�땲源�? \n �뿰愿� �씠�뒋 由ъ뒪�듃�뿉�꽌留� �젣�쇅�릺硫�, �떎�젣濡� �궘�젣�릺吏� �븡�뒿�땲�떎.", + "wantToDeleteSelectDownIssueInList": "�꽑�깮�븳 �씠�뒋瑜� �븯�쐞 �씠�뒋 由ъ뒪�듃�뿉�꽌 �젣�쇅�떆�궎寃좎뒿�땲源�? \n �븯�쐞 �씠�뒋 由ъ뒪�듃�뿉�꽌留� �젣�쇅�릺硫�, �떎�젣濡� �궘�젣�릺吏� �븡�뒿�땲�떎.", "wantToDeleteOnlySelectIssue": "�꽑�깮�븳 �씠�뒋留� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", "wantToDeleteSelectDownIssue": "�꽑�깮�븳 �씠�뒋�쓽 �븯�쐞 �씠�뒋媛� 議댁옱 �빀�땲�떎. \n �꽑�깮�븳 �씠�뒋�� �븯�쐞 �씠�뒋 紐⑤몢 �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", "wantToDeleteSelectRelationIssue": "�꽑�깮�븳 �뿰愿� �씠�뒋瑜� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �뿰愿� �씠�뒋�뒗 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", @@ -763,7 +763,7 @@ "updatableStatus": "蹂�寃� 媛��뒫�븳 �긽�깭", "testCase": "�뀒�뒪�듃 耳��씠�뒪", "updateStatus": "�긽�깭 蹂�寃�", - "updateDownIssueAllStatus": "�븯�쐞 �씠�뒋�긽�깭 �쟾泥� 蹂�寃�", + "updateDownIssueStatus": "�븯�쐞 �씠�뒋�긽�깭 蹂�寃�", "tcmProject": "�뀒�뒪�듃 耳��씠�뒪 愿�由� �봽濡쒖젥�듃", "btsProject": "�씠�뒋 愿�由� �봽濡쒖젥�듃", "projectName": "�봽濡쒖젥�듃紐�", diff --git a/src/main/webapp/scripts/app/issue/downIssueModifyStatus.controller.js b/src/main/webapp/scripts/app/issue/downIssueModifyStatus.controller.js index fa12bc5..2060aa0 100644 --- a/src/main/webapp/scripts/app/issue/downIssueModifyStatus.controller.js +++ b/src/main/webapp/scripts/app/issue/downIssueModifyStatus.controller.js @@ -72,7 +72,7 @@ var issueIds = []; angular.forEach(parameter.downIssues, function (downIssue) { - issueIds.push(downIssue.id); + issueIds.push(downIssue); }); return issueIds; @@ -112,7 +112,7 @@ var issueIds = []; angular.forEach(parameter.downIssues, function (downIssue) { - issueIds.push(downIssue.id); + issueIds.push(downIssue); }); return issueIds; diff --git a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js index e455886..b066d43 100644 --- a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js @@ -702,12 +702,16 @@ SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), ""); return; }*/ + var ids = []; + if (downId != null) { + ids.push(downId); + } var contents = { //relationIssueType : $scope.vm.form.relationIssueTypeId, // issueId : $rootScope.currentDetailIssueId, issueId : parameter.id, - id : downId, + ids : ids, parentIssueId : parameter.id }; diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index 84bfa4e..57f8369 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -51,6 +51,8 @@ $scope.fn.containsPartner = containsPartner; $scope.fn.onActivate = onActivate; $scope.fn.issueBack = issueBack; + $scope.fn.removeRelationIssue = removeRelationIssue; + $scope.fn.removeDownIssue = removeDownIssue; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� $scope.vm.viewer = {}; // �쁽�옱 �씠�뒋 @@ -110,7 +112,7 @@ $scope.vm.relTableConfigs = []; // �뀒�씠釉� �씠踰ㅽ듃 $scope.relTableEvent = { - removeRelationIssue : removeRelationIssue, // �뿰愿� �씪媛� �궘�젣 + //removeRelationIssue : removeRelationIssue, // �뿰愿� �씪媛� �궘�젣 changeDetailView : changeDetailView }; @@ -118,7 +120,7 @@ $scope.vm.downTableConfigs = []; // �뀒�씠釉� �씠踰ㅽ듃 $scope.downTableEvent = { - removeDownIssue : removeDownIssue, // �뿰愿� �씪媛� �궘�젣 + //removeDownIssue : removeDownIssue, // �뿰愿� �씪媛� �궘�젣 changeDetailView : changeDetailView }; @@ -152,7 +154,38 @@ }); // �븯�쐞 �씠�뒋 �궘�젣 - function removeDownIssue(id) { + function removeDownIssue() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.viewer.issueDownVos, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("project.notHaveDeletePermissionExistsProject"), // "�궘�젣 沅뚰븳�씠 �뾾�뒗 �봽濡쒖젥�듃媛� 議댁옱�빀�땲�떎." + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } // �궘�젣 �븣由� SweetAlert.swal({ title : $filter("translate")("issue.downIssueRemove"), // �븯�쐞 �씠�뒋 �궘�젣 @@ -172,7 +205,7 @@ $rootScope.spinner = true; var contents = { - id : id + ids : removeIds }; Issue.modifyParentIssue($resourceProvider.getContent( @@ -194,7 +227,38 @@ } // �뿰愿� �씠�뒋 �궘�젣 - function removeRelationIssue(id) { + function removeRelationIssue() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.viewer.issueRelationVos, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // �궘�젣 沅뚰븳�씠 �뾾�뒗 �씠�뒋媛� 議댁옱�빀�땲�떎. + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } // �궘�젣 �븣由� SweetAlert.swal({ title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씠�뒋 �궘�젣 @@ -214,7 +278,7 @@ $rootScope.spinner = true; var contents = { - id : id + removeIds : removeIds }; IssueRelation.delete($resourceProvider.getContent( @@ -436,6 +500,10 @@ function makeRelTableConfigs() { $scope.vm.relTableConfigs = []; $scope.vm.relTableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + $scope.vm.relTableConfigs.push($tableProvider.config() .setHName("issue.relationIssueType") .setDType("renderer") .setDAlign("text-center") @@ -449,7 +517,7 @@ .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_RELATION_MOVE")) - if($scope.vm.viewer.modifyPermissionCheck) { + /*if($scope.vm.viewer.modifyPermissionCheck) { $scope.vm.relTableConfigs.push($tableProvider.config() .setHName("issue.relationIssueDelete") .setDType("renderer") @@ -458,7 +526,7 @@ .setDRenderer("ISSUE_RELATION_DELETE") .setHSort(false) .setDAlign("text-center")) - } + }*/ angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. if (Rel_issueTableConfig.display) { @@ -472,13 +540,17 @@ function makeDownTableConfigs() { $scope.vm.downTableConfigs = []; $scope.vm.downTableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + $scope.vm.downTableConfigs.push($tableProvider.config() .setHName("issue.downIssueTitle") .setDType("renderer") .setDAlign("text-center") .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_DOWN_MOVE")) - if($scope.vm.viewer.modifyPermissionCheck){ + /*if($scope.vm.viewer.modifyPermissionCheck){ $scope.vm.downTableConfigs.push($tableProvider.config() .setHName("issue.relationIssueDelete") .setDType("renderer") @@ -487,7 +559,7 @@ .setDRenderer("ISSUE_DOWN_DELETE") .setHSort(false) .setDAlign("text-center")) - } + }*/ angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. @@ -531,6 +603,10 @@ .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_RELATION_MOVE"))*/ + $scope.vm.relTableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. if (Rel_issueTableConfig.display) { @@ -539,7 +615,7 @@ } }); - if($scope.vm.viewer.modifyPermissionCheck) { + /*if($scope.vm.viewer.modifyPermissionCheck) { $scope.vm.relTableConfigs.push($tableProvider.config() .setHName("issue.relationIssueDelete") .setDType("renderer") @@ -547,7 +623,7 @@ .setDRenderer("ISSUE_RELATION_DELETE") .setHSort(false) .setDAlign("text-center")) - } + }*/ } else { makeRelTableConfigs(); } @@ -575,6 +651,10 @@ .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_DOWN_MOVE"))*/ + $scope.vm.downTableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. if (Down_issueTableConfig.display) { @@ -582,7 +662,7 @@ $scope.fn.setDownTableColumn(Down_issueTableConfig); } }); - if($scope.vm.viewer.modifyPermissionCheck) { + /*if($scope.vm.viewer.modifyPermissionCheck) { $scope.vm.downTableConfigs.push($tableProvider.config() .setHName("issue.relationIssueDelete") .setDType("renderer") @@ -590,7 +670,7 @@ .setDRenderer("ISSUE_DOWN_DELETE") .setHSort(false) .setDAlign("text-center")) - } + }*/ } else { makeDownTableConfigs(); } @@ -632,9 +712,14 @@ return; } + var ids = []; + if ($scope.vm.form.issuesDown[0].id != null) { + ids.push($scope.vm.form.issuesDown[0].id); + } + var contents = { issueId : $rootScope.currentDetailIssueId, - id : $scope.vm.form.issuesDown[0].id, + ids : ids, parentIssueId : $rootScope.currentDetailIssueId }; @@ -712,6 +797,20 @@ } function modifyDownIssueStatus() { + var issueIds = []; + + angular.forEach($scope.vm.viewer.issueDownVos, function (data) { + if (data.checked) { + issueIds.push(data.id); + //$scope.vm.projectId = data.projectId; + } + }); + + if (issueIds.length < 1) { + SweetAlert.warning($filter("translate")("issue.selectionCheck"), $filter("translate")("issue.selectIssueToChangeStatus")); // �꽑�깮 ���긽 �솗�씤, �긽�깭 蹂�寃쏀븷 �씠�뒋瑜� �꽑�깮�븯�꽭�슂. + return; + } + $uibModal.open({ templateUrl : 'views/issue/downIssueModifyStatus.html', size : "md", @@ -722,7 +821,8 @@ return { issueTypeId : $scope.vm.viewer.issueTypeVo.id, issueIds : [$scope.vm.viewer.id], - downIssues : $scope.vm.viewer.issueDownVos, + //downIssues : $scope.vm.viewer.issueDownVos, + downIssues : issueIds, projectId : $scope.vm.viewer.projectVo.id }; } diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 75c7faf..390f5ef 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -488,8 +488,21 @@ <div class="col-md-10"> <span class="info_detail_font h3" translate="issue.relationIssue">�뿰愿� �씠�뒋</span> </div> - <div class="col-md-1"> + <!--<div class="col-md-1"> <button class="btn btn-darkgrey offset-10" ng-click="fn.addRelationIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></button> + </div>--> + <div class="btn-group offset-11"> + <button aria-expanded="false" aria-haspopup="true" + tabindex="-1" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" type="button"><span translate="common.addFunction">異붽�湲곕뒫</span> + </button> + <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" + x-placement="bottom-start" > + <!--<a class="dropdown-item cursor" form-submit="issueListForm" make-search-conditions="fn.makeSearchConditions()"> <span translate="common.allDownloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>--> + <a class="dropdown-item cursor" ng-click="fn.addRelationIssueTableConfig()"> <span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></a> + <a class="dropdown-item cursor" ng-click="fn.removeRelationIssue()"> <span translate="common.selectDelete">�궘�젣</span></a> + </div> </div> </div> @@ -538,7 +551,7 @@ <div class="col-md-8"> <span class="info_detail_font h3" translate="issue.downIssue">�븯�쐞 �씠�뒋</span> </div> - <div class="col-sm-2"> + <!--<div class="col-sm-2"> <a><button type="button" class="btn btn-darkgrey offset-7" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.modifyDownIssueStatus()"> <span ng-if="vm.viewer.modifyPermissionCheck" translate="common.updateDownIssueAllStatus">�븯�쐞�씠�뒋 �긽�깭 �쟾泥� 蹂�寃�</span> @@ -546,6 +559,20 @@ </div> <div class="col-sm-1"> <button class="btn btn-darkgrey offset-10" ng-click="fn.addDownIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></button> + </div>--> + <div class="btn-group offset-11"> + <button aria-expanded="false" aria-haspopup="true" + tabindex="-1" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" type="button"><span translate="common.addFunction">異붽�湲곕뒫</span> + </button> + <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" + x-placement="bottom-start" > + <!--<a class="dropdown-item cursor" form-submit="issueListForm" make-search-conditions="fn.makeSearchConditions()"> <span translate="common.allDownloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>--> + <a class="dropdown-item cursor" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.modifyDownIssueStatus()"> <span translate="common.updateDownIssueStatus">�븯�쐞�씠�뒋 �긽�깭 蹂�寃�</span></a> + <a class="dropdown-item cursor" ng-click="fn.addDownIssueTableConfig()"> <span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></a> + <a class="dropdown-item cursor" ng-click="fn.removeDownIssue()"> <span translate="common.selectDelete">�궘�젣</span></a> + </div> </div> </div> -- Gitblit v1.8.0