From d993a6d7d435769c77163ddd8b844b6a88430a35 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 금, 17 12월 2021 09:00:23 +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 | 5 +++-- src/main/java/kr/wisestone/owl/vo/ResMessageVo.java | 3 --- src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java | 2 +- src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 + src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java | 33 ++++++++++++++++++--------------- src/main/webapp/index.html | 2 +- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 3366440..559d4cc 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -81,6 +81,7 @@ public static final String WORKFLOW_DEPARTMENT_NOT_EXIST = "WORKFLOW_DEPARTMENT_NOT_EXIST"; // �썙�겕�뵆濡쒖슦 遺��꽌媛� 議댁옱�븯吏� �븡�뒿�땲�떎. public static final String CUSTOM_FIELD_NOT_EXIST = "CUSTOM_FIELD_NOT_EXIST"; // �궗�슜�옄 �젙�쓽 �븘�뱶媛� 議댁옱�븯吏� �븡�뒿�땲�떎. + public static final String ISSUE_TYPE_CUSTOM_FIELD_NOT_EXIST = "ISSUE_TYPE_CUSTOM_FIELD_NOT_EXIST"; // �봽濡쒖젥�듃 �궡 �씠�뒋�쑀�삎�뿉 �꽕�젙�맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� 議댁옱�븯吏� �븡�뒿�땲�떎. public static final String CUSTOM_FIELD_NOT_NAME = "CUSTOM_FIELD_NOT_NAME"; // �궗�슜�옄 �젙�쓽 �븘�뱶紐낆씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎. 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"; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆씠 �씠誘� �궗�슜�릺怨� �엳�뒿�땲�떎. diff --git a/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java b/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java index 5d972f1..384f0b8 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java +++ b/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java @@ -16,7 +16,7 @@ public interface IssueCustomFieldValueService extends AbstractService<IssueCustomFieldValue, Long, JpaRepository<IssueCustomFieldValue, Long>>{ void modifyIssueCustomFieldValue(Issue issue, List<Map<String, Object>> issueCustomFields); - void getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result); + boolean getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result); List<IssueCustomFieldValueVo> findByIssueId(Long issueId); diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java index 6f556c6..76e4b96 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java @@ -63,39 +63,42 @@ for (Map<String, Object> map : issueCustomFields) { Map<String, Object> result = new HashMap<>(); // customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎. - this.getCustomFieldAndIssueTypeCustomField(map, issue, result); - List<String> useValues = MapUtil.getStrings(map, "useValues"); + boolean useCustomField = this.getCustomFieldAndIssueTypeCustomField(map, issue, result); + if (useCustomField) { + List<String> useValues = MapUtil.getStrings(map, "useValues"); - if (useValues != null) { - for (String useValue : useValues) { - if (!StringUtils.isEmpty(useValue)) { - // Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚 - IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField)result.get("customField"), (IssueTypeCustomField)result.get("issueTypeCustomField"), useValue); - issueCustomFieldValues.add(issueCustomFieldValue); + if (useValues != null) { + for (String useValue : useValues) { + if (!StringUtils.isEmpty(useValue)) { + // Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚 + IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField) result.get("customField"), (IssueTypeCustomField) result.get("issueTypeCustomField"), useValue); + issueCustomFieldValues.add(issueCustomFieldValue); + } } } } } if (issueCustomFieldValues.size() > 0) { - try { - this.issueCustomFieldValueRepository.saveAll(issueCustomFieldValues); - } catch (Exception ex) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_NOT_EXIST)); - } + this.issueCustomFieldValueRepository.saveAll(issueCustomFieldValues); } } // customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎. @Override - public void getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) { + public boolean getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) { Map<String, Object> customFieldMap = (Map<String, Object>) MapUtil.getObject(map, "customFieldVo"); CustomField customField = this.customFieldService.getCustomField(MapUtil.getLong(customFieldMap, "id")); IssueTypeCustomField issueTypeCustomField = this.issueTypeCustomFieldService.findByProjectIdAndIssueTypeIdAndCustomFieldId(issue.getProject().getId(), issue.getIssueType().getId(), customField.getId()); + if (issueTypeCustomField == null) { + // �꽕�젙�맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�쓣�븣 + return false; + } result.put("customField", customField); result.put("issueTypeCustomField", issueTypeCustomField); + + return true; } // �씠�뒋�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 議고쉶�븳�떎. 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 549ac90..be9364c 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -375,10 +375,11 @@ IssueForm issueForm = this.convertToIssueForm(issueApiForm, user); List<Issue> issues = Lists.newArrayList(); - if (issueForm.getParentIssueId() != null) { + if (issueForm.getParentIssueId() != null // 湲곗〈 異붽��맂 �긽�쐞 �씪媛먯씠 �뾾嫄곕굹 �꽕�젙�맂 以묐났 �씠�뒋 id媛� �뾾�쓣�븣 + || issueApiForm.getUseIssueCustomFieldIds().size() == 0) { issues.add(addIssue(user, issueForm, issueApiForm.getMultipartFiles())); } else { - // �긽�쐞 �씠�뒋 異붽� + // 媛��긽 �긽�쐞 �씠�뒋 異붽� IssueForm parentIssueForm = issueForm.clone(); parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds()); Issue issue = addIssue(user, parentIssueForm, null); diff --git a/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java b/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java index f5b8c0e..94f8ea6 100644 --- a/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java +++ b/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java @@ -47,7 +47,4 @@ return "ResMessage [message=" + this.message + ", code=" + this.code + ", status=" + this.status + "]"; } - - - } diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index a147d6e..7999ff3 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -40,7 +40,7 @@ <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-single/js-autocomplete-single.css"> <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-multi/js-autocomplete-multi.css"> <link type="text/css" rel="stylesheet" href="custom_components/js-html-diff/js-html-diff.css"> - <link type="text/css" rel="stylesheet" href="assets/styles/main.css?version=0.9.2"> + <link type="text/css" rel="stylesheet" href="assets/styles/main.css?version=0.9.4"> <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:300,400,500"> <!-- google font --> -- Gitblit v1.8.0