From 5fec5801b937a2270920787891e39a8504cdf53f Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 금, 03 12월 2021 15:00:44 +0900 Subject: [PATCH] 사용자 정의 필드 사용중일때 삭제 불가하게 수정 --- src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java | 2 ++ src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java | 2 +- src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 + src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java | 18 ++++++++++++++++-- src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 1 + src/main/webapp/scripts/app/customField/customFieldAdd.controller.js | 2 +- 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index a2ff548..0f28bf6 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -85,6 +85,7 @@ public static final String CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = "CUSTOM_FIELD_NAME_MAX_LENGTH_OUT"; // �궗�슜�옄 �젙�쓽 �븘�뱶紐낆� 理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. public static final String CUSTOM_FIELD_USED_NAME = "CUSTOM_FIELD_USED_NAME"; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆씠 �씠誘� �궗�슜�릺怨� �엳�뒿�땲�떎. public static final String CUSTOM_FIELD_REMOVE_NOT_SELECT = "CUSTOM_FIELD_REMOVE_NOT_SELECT"; // �궘�젣�븷 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎. + public static final String CUSTOM_FIELD_USED_DATA_REMOVE = "CUSTOM_FIELD_USED_DATA_REMOVE"; // �궗�슜�븯怨� �엳�뒗 �뜲�씠�꽣�엯�땲�떎. public static final String CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = "CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD"; // 臾몄옄�뿴 �븘�뱶�뒗 �샃�뀡 媛믪쓣 �궗�슜�븷 �닔 �뾾�뒿�땲�떎. public static final String CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE"; // �궗�슜�옄 �젙�쓽 �븘�뱶 湲곕낯 媛믪씠 �샃�뀡�뿉 議댁옱�븯吏� �븡�뒿�땲�떎. public static final String CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE"; // �궗�슜�옄 �젙�쓽 �븘�뱶 湲곕낯 媛믪뿉 以묐났�맂 媛믪씠 議댁옱�빀�땲�떎. diff --git a/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java index 4ca81d6..3321201 100644 --- a/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java +++ b/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java @@ -12,4 +12,6 @@ List<IssueTypeCustomField> findByProjectIdAndIssueTypeIdOrderByPosition(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId); IssueTypeCustomField findByProjectIdAndIssueTypeIdAndCustomFieldId(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId, @Param("customFieldId") Long customFieldId); + + Long countByCustomFieldId(@Param("customFieldId") Long customFieldId); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java index 8bafa4e..31af4eb 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java @@ -11,6 +11,7 @@ import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.CustomFieldMapper; import kr.wisestone.owl.repository.CustomFieldRepository; +import kr.wisestone.owl.repository.IssueTypeCustomFieldRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; @@ -45,6 +46,9 @@ @Autowired private CustomFieldRepository customFieldRepository; + + @Autowired + private IssueTypeCustomFieldRepository issueTypeCustomFieldRepository; @Autowired private CustomFieldMapper customFieldMapper; @@ -318,10 +322,18 @@ public void removeCustomFields(CustomFieldForm customFieldForm) { // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. this.workspaceService.checkUseWorkspace(); - - if (customFieldForm.getRemoveIds().size() < 1) { + List<Long> removeIds = customFieldForm.getRemoveIds(); + if (removeIds.size() < 1) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_REMOVE_NOT_SELECT)); + }else { + for (Long id : removeIds) { + Long count = this.issueTypeCustomFieldRepository.countByCustomFieldId(id); + if (count > 0){ + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_USED_DATA_REMOVE)); + } + } } for (Long projectId : customFieldForm.getRemoveIds()) { @@ -329,6 +341,7 @@ } // this.customFieldRepository.flush(); + this.customFieldRepository.flush(); } private void removeCustomFields(Long customFieldId) { @@ -336,6 +349,7 @@ customField.setUse(UseType.N.toString()); this.customFieldRepository.saveAndFlush(customField); // this.customFieldRepository.delete(customField); + this.customFieldRepository.delete(customField); } // �씠�뒋 �뿊�� import �뿉�꽌 �궗�슜�븳�떎. diff --git a/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java b/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java index 20fc132..560217e 100644 --- a/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java +++ b/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java @@ -39,7 +39,7 @@ Map<String, Object> resJsonData = new HashMap<String, Object>(); resJsonData.put(Constants.RES_KEY_MESSAGE, this.messageAccessor.getResMessage(ex, Constants.RES_KEY_MSG_FAIL)); - return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.BAD_REQUEST, request); + return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.OK, request); } @ExceptionHandler({ StackOverflowError.class, 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 0e421b3..5ce7155 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -87,6 +87,7 @@ CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. CUSTOM_FIELD_USED_NAME = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. CUSTOM_FIELD_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_USED_DATA_REMOVE = \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uB370\uC774\uD130\uC785\uB2C8\uB2E4. CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = \uC120\uD0DD\uD55C \uD544\uB4DC\uB294 \uC635\uC158 \uAC12\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC774 \uC635\uC158\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC5D0 \uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. diff --git a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js index 39f6dee..41ffb40 100644 --- a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js @@ -42,7 +42,7 @@ // �븘�뱶 �쑀�삎�쓣 蹂�寃� �뻽�쓣 �븣 臾몄옄�뿴 �븘�뱶�씪 寃쎌슦�뿉�뒗 �샃�뀡 媛믪쓣 珥덇린�솕�빐以��떎. function changeFieldType() { // if ($scope.vm.form.customFieldType === "INPUT") { - $scope.vm.form.name = ""; + // $scope.vm.form.name = ""; $scope.vm.form.options = []; $scope.vm.form.optionText = ""; -- Gitblit v1.8.0