From b6b1913970a18f0a1f09e795ceec02a4a3605295 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 16 12월 2021 14:03:40 +0900 Subject: [PATCH] - 이슈 트리 목록에서는 하위이슈 숨기기 버튼 숨기기 - 하위이슈의 상태가 종료가 아닐 경우에 상위이슈의 상태를 종료로 변경을 못하도록 막는 기능 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 13 +++++++++++++ src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java | 6 +++++- src/main/webapp/views/issue/issueListNormal.html | 4 ++-- src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js | 4 ++-- src/main/java/kr/wisestone/owl/web/form/IssueForm.java | 14 ++++++++++++++ src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 + src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 1 + src/main/webapp/scripts/app/issue/issueDetail.controller.js | 8 ++++++-- 8 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index a92312f..3366440 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -116,6 +116,7 @@ public static final String ISSUE_NO_TITLE = "ISSUE_NO_TITLE"; // �씠�뒋 �젣紐⑹씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_NOT_SEND_USER = "ISSUE_NOT_SEND_USER"; // �씠�뒋 諛쒖넚 ���긽�옄瑜� �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_NOT_SELECT_TEMPLATE = "ISSUE_NOT_SELECT_TEMPLATE"; // �씠�뒋 諛쒖넚 �뀥�뵆由우쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. + public static final String ISSUE_NOT_MODIFY_STATUS = "ISSUE_NOT_MODIFY_STATUS"; // �븯�쐞�씠�뒋�쓽 �긽�깭瑜� 醫낅즺濡� 蹂�寃쏀빐�빞 �빀�땲�떎. public static final String ISSUE_COMMENT_REMOVE_NOT_SELECT = "ISSUE_COMMENT_REMOVE_NOT_SELECT"; // �궘�젣�븷 �뙎湲��쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_COMMENT_NOT_EXIST = "ISSUE_COMMENT_NOT_EXIST"; // �뙎湲��씠 議댁옱�븯吏� �븡�뒿�땲�떎. 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 10d95d0..1ea58cc 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -2241,6 +2241,19 @@ this.verifyIssueModifyPermission(issue, user); IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueForm.getIssueStatusId()); + + if (issueStatus.getIssueStatusType().toString().equals("CLOSE")) { + List<String> downIssuesStatus = issueForm.getDownIssuesStatus(); + if (downIssuesStatus != null && downIssuesStatus.size() > 0) { + for (String downIssueStatus : downIssuesStatus) { + if (!downIssueStatus.equals("CLOSE")) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_MODIFY_STATUS)); + } + } + } + } + // �씠�뒋 �긽�깭瑜� 蹂�寃쏀븷 �븣 �꽑�깮�븳 �씠�뒋 �긽�깭濡� 蹂�寃쏀븷 �닔 �엳�뒗吏� �솗�씤�븳�떎. this.issueStatusService.checkNextIssueStatus(issue, issueStatus); // 蹂�寃� �씠�젰 �젙蹂� 異붿텧 diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java index 0113fcd..23b0d61 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java @@ -183,7 +183,11 @@ } if (MapUtil.getBoolean(conditions, "hideDownIssue") != null) { - condition.setHideDownIssue(MapUtil.getBoolean(conditions, "hideDownIssue")); + if(MapUtil.getBoolean(conditions, "isTree") != null && !MapUtil.getBoolean(conditions, "isTree")){ + condition.setHideDownIssue(MapUtil.getBoolean(conditions, "hideDownIssue")); + }else if(MapUtil.getBoolean(conditions, "isTree")) { + condition.setHideDownIssue(false); + } } if (MapUtil.getBoolean(conditions, "hideCompleteIssue") != null) { diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java index 0d795cd..30b89de 100644 --- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java @@ -43,6 +43,7 @@ private List<Map<String, Object>> files = Lists.newArrayList(); // api�슜 泥⑤��뙆�씪 private Long parentIssueId; // �긽�쐞 �씠�뒋 private String isApi; + private List<String> downIssuesStatus = Lists.newArrayList(); //�븯�쐞�씠�뒋 �긽�깭 public IssueForm() { } @@ -127,6 +128,11 @@ // api 泥⑤��뙆�씪 if (MapUtil.getObject(params, "files") != null){ form.setFiles((List)MapUtil.getObject(params, "files")); + } + + // �븯�쐞�씠�뒋 �긽�깭 + if (MapUtil.getObject(params, "downIssuesStatus") != null){ + form.setDownIssuesStatus((List)MapUtil.getObject(params, "downIssuesStatus")); } return form; } @@ -396,4 +402,12 @@ public void setTemplate(String template) { this.template = template; } + + public List<String> getDownIssuesStatus() { + return downIssuesStatus; + } + + public void setDownIssuesStatus(List<String> downIssuesStatus) { + this.downIssuesStatus = downIssuesStatus; + } } diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index 99ae537..51e977e 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -118,6 +118,7 @@ ISSUE_NO_TITLE = \uC774\uC288 \uC81C\uBAA9\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_NOT_SEND_USER = \uC774\uC288 \uBC1C\uC1A1 \uB300\uC0C1\uC790\uB97C \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_NOT_SELECT_TEMPLATE = \uC774\uC288 \uBC1C\uC1A1 \uD15C\uD50C\uB9BF\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_NOT_MODIFY_STATUS = \uD558\uC704\uC774\uC288\uC758 \uC0C1\uD0DC\uB97C \uC885\uB8CC\uB85C \uBCC0\uACBD\uD574\uC57C \uD569\uB2C8\uB2E4. ISSUE_COMMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uB313\uAE00\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_COMMENT_NOT_EXIST = \uB313\uAE00\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index 15203d4..ad81f3a 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -81,6 +81,7 @@ $scope.vm.form = { issues : [], //�뿰愿� �씪媛� issuesDown : [], // �븯�쐞 �씪媛� + issuesDownStatus : [], //�븯�쐞 �씠�뒋 �긽�깭 issueCompanyVos : [], issueIspVos : [], issueHostingVos : [] @@ -700,7 +701,8 @@ parameter : function () { return { issueIds : [$scope.vm.viewer.id], - projectId : $scope.vm.viewer.projectVo.id + projectId : $scope.vm.viewer.projectVo.id, + downIssuesStatus : $scope.vm.form.issuesDownStatus }; } } @@ -881,6 +883,7 @@ $scope.vm.form.issues = []; $scope.vm.form.issues.push(result.data.data); $scope.vm.form.issuesDown = []; + $scope.vm.form.issuesDownStatus = [];// �븯�쐞�씠�뒋 �긽�깭 $scope.vm.form.issuesDown.push(result.data.data); var issueTableConfigVos = result.data.data.issueTableConfigVos; @@ -900,7 +903,7 @@ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); - + $scope.vm.form.issuesDownStatus.push(issueDownVo.issueStatusVo.issueStatusType); }); } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; @@ -909,6 +912,7 @@ if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) { $rootScope.changeLastProject(result.data.data.projectVo.id); } + } } else { diff --git a/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js b/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js index 8fa2199..a7b1622 100644 --- a/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js +++ b/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js @@ -28,7 +28,7 @@ issueStatusId: undefined, comment: "" }, - departmentName : "" + departmentName : "", }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); @@ -87,7 +87,6 @@ if (formInvalid) { return true; } - return false; } @@ -98,6 +97,7 @@ var content = { ids: parameter.issueIds, issueStatusId: $scope.vm.form.issueStatusId, + downIssuesStatus : parameter.downIssuesStatus, comment: $scope.vm.form.comment, projectId : parameter.projectId, departmentIds : (function () { diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html index 5c2e06a..fd0fa64 100644 --- a/src/main/webapp/views/issue/issueListNormal.html +++ b/src/main/webapp/views/issue/issueListNormal.html @@ -420,8 +420,8 @@ <!-- �슦痢� --> <div class="col-5" > - <span class="issue-detail-label" style="position: relative; left: 2.8rem; bottom: 5px"><span style="color: #0a7cf8">�뾾</span> �븯�쐞 �씠�뒋 �닲湲곌린</span> - <label class='switch' style="left: 3.3rem"><input type='checkbox' ng-model='vm.hideDownIssue' ng-click='fn.getPageList(0)'> + <span class="issue-detail-label" ng-if="vm.listMode === 0" style="position: relative; left: 2.8rem; bottom: 5px"><span style="color: #0a7cf8">�뾾</span> �븯�쐞 �씠�뒋 �닲湲곌린</span> + <label class='switch' ng-if="vm.listMode === 0" style="left: 3.3rem"><input type='checkbox' ng-model='vm.hideDownIssue' ng-click='fn.getPageList(0)'> <span class='slider round'></span> </label> <span class="issue-detail-label" style="position: relative; left: 5.8rem; bottom: 5px"><span style="color: #0a7cf8">�뾾</span> �셿猷� �씠�뒋 �닲湲곌린</span> -- Gitblit v1.8.0