From ea58f79355dd5715c7889623f59f5e8fca81e811 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 23 12월 2021 15:51:39 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/webapp/views/customField/customFieldModify.html | 46 +++++--- src/main/java/kr/wisestone/owl/web/controller/ApiController.java | 4 src/main/webapp/assets/styles/main.css | 4 src/main/webapp/scripts/app/customField/customFieldModify.controller.js | 2 src/main/webapp/views/customField/customFieldAdd.html | 30 +++--- src/main/java/kr/wisestone/owl/vo/UserVo.java | 18 +++ src/main/webapp/scripts/app/api/apiSetting.controller.js | 83 +++++++++++++--- src/main/webapp/views/api/apiSettingSpec.html | 18 ++- src/main/java/kr/wisestone/owl/service/UserDepartmentService.java | 3 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | 13 ++ src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java | 19 +++ src/main/webapp/views/issue/issueDetail.html | 2 src/main/webapp/scripts/app/customField/customFieldAdd.controller.js | 2 src/main/webapp/views/common/sidebar.html | 4 14 files changed, 183 insertions(+), 65 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java b/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java index b09e517..c4f11c3 100644 --- a/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java +++ b/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java @@ -1,5 +1,6 @@ package kr.wisestone.owl.service; +import kr.wisestone.owl.domain.Department; import kr.wisestone.owl.domain.UserDepartment; import kr.wisestone.owl.web.condition.UserCondition; import kr.wisestone.owl.web.condition.UserDepartmentCondition; @@ -16,4 +17,6 @@ void userDepartmentModify(UserDepartmentForm userDepartmentForm); List<UserDepartment> findByDepartmentId(Long id); + + List<Department> findDepartment(Long id); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java index baa6a8a..33a101a 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java @@ -5,14 +5,15 @@ import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.exception.OwlRuntimeException; +import kr.wisestone.owl.mapper.UserMapper; import kr.wisestone.owl.repository.UserDepartmentRepository; import kr.wisestone.owl.service.DepartmentService; import kr.wisestone.owl.service.UserDepartmentService; +import kr.wisestone.owl.service.UserService; import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.util.MapUtil; import kr.wisestone.owl.vo.*; -import kr.wisestone.owl.web.condition.DepartmentCondition; import kr.wisestone.owl.web.condition.UserCondition; -import kr.wisestone.owl.web.condition.UserDepartmentCondition; import kr.wisestone.owl.web.form.UserDepartmentForm; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.JpaRepository; @@ -94,6 +95,20 @@ return this.userDepartmentRepository.findByDepartmentId(id); } + @Override + public List<Department> findDepartment(Long userId) { + List<UserDepartment> userDepartments = this.userDepartmentRepository.findByUserId(userId); + if (userDepartments != null && userDepartments.size() > 0) { + + List<Department> departments = Lists.newArrayList(); + for (UserDepartment userDepartment : userDepartments) { + Department department = this.departmentService.getDepartment(userDepartment.getDepartmentId()); + departments.add(department); + } + return departments; + } + return null; + } // �궗�슜�옄 遺��꽌 ID濡� 議고쉶�븳�떎. // @Override diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java index f209240..4387606 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java @@ -107,6 +107,9 @@ private AttachedFileService attachedFileService; @Autowired + private UserDepartmentService userDepartmentService; + + @Autowired private IssueService issueService; @Autowired @@ -1245,6 +1248,16 @@ // user�뿉�꽌 Permission 媛믪쓣 媛��졇���꽌 userVo �뿉 setPermission �븿 userVo.setPermission(user.getPermission()); userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); + + UserLevel userLevel = user.getUserLevel(); + if (userLevel != null) { + userVo.setLevelName(userLevel.getLevelName()); + } + + List<Department> departments = this.userDepartmentService.findDepartment(user.getId()); + if (departments != null) { + userVo.setDepartmentVos(ConvertUtil.convertObjectsToClasses(departments, DepartmentVo.class)); + } resJsonData.put(Constants.RES_KEY_CONTENTS, userVo); // �궗�슜�옄 �꽭�뀡 �젙蹂대�� 遺꾩꽍�빐�꽌 濡쒓렇�뿉 �궓湲대떎. log.info(ElasticSearchUtil.makeUserSessionHistoryMessage(httpServletRequest, userVo)); diff --git a/src/main/java/kr/wisestone/owl/vo/UserVo.java b/src/main/java/kr/wisestone/owl/vo/UserVo.java index aedac75..e631f76 100644 --- a/src/main/java/kr/wisestone/owl/vo/UserVo.java +++ b/src/main/java/kr/wisestone/owl/vo/UserVo.java @@ -22,6 +22,8 @@ private Long lastProjectId; private Long lastIssueTypeId; private Long departmentId; + private String levelName; + private List<DepartmentVo> departmentVos = Lists.newArrayList(); private Boolean userSocialLogin = Boolean.FALSE; private List<ProjectVo> projectVos = Lists.newArrayList(); private String reservationNotifyTime; @@ -214,4 +216,20 @@ public void setProjectManagerYN(Boolean projectManagerYN) { this.projectManagerYN = projectManagerYN; } + + public String getLevelName() { + return levelName; + } + + public void setLevelName(String levelName) { + this.levelName = levelName; + } + + public List<DepartmentVo> getDepartmentVos() { + return departmentVos; + } + + public void setDepartmentVos(List<DepartmentVo> departmentVos) { + this.departmentVos = departmentVos; + } } diff --git a/src/main/java/kr/wisestone/owl/web/controller/ApiController.java b/src/main/java/kr/wisestone/owl/web/controller/ApiController.java index e221753..fb3a53a 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/ApiController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/ApiController.java @@ -47,7 +47,9 @@ Map<String, Object> addIssue(MultipartHttpServletRequest request) throws OwlRuntimeException, CloneNotSupportedException { Map<String, Object> resJsonData = new HashMap<>(); - IssueApiForm issueForm = IssueApiForm.make(ConvertUtil.convertJsonToMap(request.getParameter(Constants.REQ_KEY_CONTENT)), request.getFiles("file")); + String str = request.getParameter(Constants.REQ_KEY_CONTENT); + + IssueApiForm issueForm = IssueApiForm.make(ConvertUtil.convertJsonToMap(str), request.getFiles("file")); if (issueForm == null) { throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_PARAMETER_ERROR)); } diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css index ca005af..ac4b5ff 100644 --- a/src/main/webapp/assets/styles/main.css +++ b/src/main/webapp/assets/styles/main.css @@ -262,6 +262,8 @@ margin-top: 0; margin-bottom: 1rem; overflow: auto; + white-space: pre-line; + word-break : break-word; -ms-overflow-style: scrollbar; } @@ -29722,7 +29724,7 @@ z-index: 2; overflow: hidden; margin-top: 80px; - } +} .footer-w .logo-element { text-align: center; diff --git a/src/main/webapp/scripts/app/api/apiSetting.controller.js b/src/main/webapp/scripts/app/api/apiSetting.controller.js index 2f7e1f6..5d781a5 100644 --- a/src/main/webapp/scripts/app/api/apiSetting.controller.js +++ b/src/main/webapp/scripts/app/api/apiSetting.controller.js @@ -25,17 +25,19 @@ getSeverities : getSeverities, onChangeColumnSetting : onChangeColumnSetting, onChangeEndIssueStatus : onChangeEndIssueStatus, + onChangeIssueTypeOverlap : onChangeIssueTypeOverlap, + onChangeIssueTypeSpec : onChangeIssueTypeSpec, + onChangeProject : onChangeProject, + onChangeIssueStatus : onChangeIssueStatus, getIssueTypes : getIssueTypes, reset : reset, resetOverlap : resetOverlap, formSubmitOverlap : formSubmitOverlap, removeCustomField : removeCustomField, getOverlapList : getOverlapList, - onChangeIssueTypeOverlap : onChangeIssueTypeOverlap, getIssueTypeCustomFields : getIssueTypeCustomFields, getCurrentIssueTypeVo : getCurrentIssueTypeVo, getIssueStatuses : getIssueStatuses, - onChangeIssueTypeSpec : onChangeIssueTypeSpec, createRequestModifyJson : createRequestModifyJson, createRequestAddJson : createRequestAddJson, createCustomFields : createCustomFields, @@ -44,8 +46,9 @@ loadPage : loadPage, resetCompleteIssueStatus : resetCompleteIssueStatus, findIssueList : findIssueList, - onChangeProject : onChangeProject, - setApiIssueTypeStatus : setApiIssueTypeStatus + setApiIssueTypeStatus : setApiIssueTypeStatus, + findToken : findToken, + createAPISample : createAPISample }; $scope.vm = { @@ -60,6 +63,7 @@ sampleJsonModify : "", // projects : [], form : { + token : "!�넗�겙媛믪엯�젰(�넗�겙諛쒓툒�븘�슂)!", issueCustomFields : [], issueApiDefault : { title : "", @@ -316,7 +320,7 @@ // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 function getIssueTypeCustomFields() { - + var deferred = $q.defer(); $scope.vm.form.issueCustomFields = []; var issueTypeVo = $scope.fn.getCurrentIssueTypeVo(); @@ -335,7 +339,7 @@ $scope.vm.form.issueCustomFields.push(issueTypeCustomField); }); - $scope.$broadcast("getIssueTypeListComplete", $scope.vm.form.issueCustomFields); + deferred.resolve(result.data.data); } else { @@ -343,6 +347,7 @@ } }); + return deferred.promise; } @@ -361,12 +366,12 @@ }); } - $scope.$on("getIssueTypeListComplete", function (event, args) { - if ($scope.vm.tab === "API_SPEC_SETTING") { - $scope.fn.createRequestAddJson(); - $scope.fn.createRequestModifyJson(); - } - }); + // $scope.$on("getIssueTypeListComplete", function (event, args) { + // if ($scope.vm.tab === "API_SPEC_SETTING") { + // $scope.fn.createRequestAddJson(); + // $scope.fn.createRequestModifyJson(); + // } + // }); function changeTab(tab) { $scope.vm.tab = tab; @@ -411,6 +416,7 @@ } function getIssueStatuses() { + var deferred = $q.defer(); var condition = { issueTypeId: $scope.vm.issueTypeId } @@ -419,6 +425,7 @@ if (result.data.message.status === "success") { $scope.vm.issueStatuses = result.data.data; + deferred.resolve(result.data.data); // $scope.vm.issueStatusId = ""; if ($scope.vm.issueStatuses != null && $scope.vm.issueStatuses.length > 0) { @@ -429,11 +436,11 @@ $scope.fn.setApiIssueTypeStatus(); } - $scope.$broadcast("getIssueStatusComplete", $scope.vm.issueStatuses); } else { SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 } }); + return deferred.promise; } function onChangeColumnSetting() { @@ -502,9 +509,28 @@ }); } + function createAPISample() { + $scope.fn.createRequestAddJson(); + $scope.fn.createRequestModifyJson(); + } + + function onChangeIssueStatus() { + // $scope.fn.getIssueStatuses(); + // $scope.fn.getIssueTypeCustomFields(); + $scope.fn.findToken(); + $scope.fn.createAPISample(); + } + + function onChangeIssueTypeSpec() { - $scope.fn.getIssueStatuses(); - $scope.fn.getIssueTypeCustomFields(); + var promises = { + issueStatues : $scope.fn.getIssueStatuses(), + issueTypeCustomFields : $scope.fn.getIssueTypeCustomFields(), + token : $scope.fn.findToken() + } + $q.all(promises).then(function (results) { + $scope.fn.createAPISample(); + }); } // �슂泥� �뜲�씠�꽣 留뚮뱾湲�( 異붽�) @@ -512,7 +538,7 @@ var customFields = $scope.fn.createCustomFields(); var jsonData = { - token: "||諛쒓툒諛쏆� �넗�겙}||", + token: $scope.vm.form.token, title: "||�씠�뒋 �젣紐�||", issueTypeId: $scope.vm.issueTypeId, apiType: "add", @@ -520,6 +546,29 @@ }; $scope.vm.sampleJsonAdd = JSON.stringify(jsonData,undefined, 4); + } + + + function findToken() { + var deferred = $q.defer(); + var conditions = { + } + + Api.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (result.data.data != null) { + $scope.vm.form.token = result.data.data.token; + } + deferred.resolve(result.data.data); + } + else { + + } + }); + + return deferred.promise; } function createCustomFields() { @@ -538,7 +587,7 @@ var customFields = $scope.fn.createCustomFields(); var jsonData = { - token: "||諛쒓툒諛쏆� �넗�겙||", + token: $scope.vm.form.token, issueTypeId: $scope.vm.issueTypeId, apiType: "modify", issueStatusId: $scope.vm.issueStatusId, diff --git a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js index c309bd5..91b67a4 100644 --- a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js @@ -27,7 +27,7 @@ options : [], // �샃�뀡 optionText : "", // �샃�뀡 媛� numberType : "", - ipAdress : "", + ipAddress : "", email : "", site : "", tel : "", diff --git a/src/main/webapp/scripts/app/customField/customFieldModify.controller.js b/src/main/webapp/scripts/app/customField/customFieldModify.controller.js index 61cb612..5d440ee 100644 --- a/src/main/webapp/scripts/app/customField/customFieldModify.controller.js +++ b/src/main/webapp/scripts/app/customField/customFieldModify.controller.js @@ -36,7 +36,7 @@ optionText : "", // �샃�뀡 媛� useCustomFieldValue : false, // �씠�뒋�뿉�꽌 �궗�슜�릺怨� �엳�뒗吏� �뿬遺� �솗�씤 numberType : "", - ipAdress : "", + ipAddress : "", email : "", site : "", tel : "", diff --git a/src/main/webapp/views/api/apiSettingSpec.html b/src/main/webapp/views/api/apiSettingSpec.html index 5b0ed56..f015666 100644 --- a/src/main/webapp/views/api/apiSettingSpec.html +++ b/src/main/webapp/views/api/apiSettingSpec.html @@ -14,7 +14,7 @@ class="form-control input-sm issue-select-label" ng-style="{ 'color' : fn.getOptionColor(vm.issueStatuses, vm.issueStatusId) }" ng-model="vm.issueStatusId" - ng-change="fn.onChangeIssueTypeSpec()" + ng-change="fn.onChangeIssueStatus()" required> <option ng-repeat="issueStatus in vm.issueStatuses" ng-style="{ 'color' : issueStatus.color, 'font-weight': 600 }" @@ -56,16 +56,20 @@ <div class="element-box"> <div class="row"> - <div class="col-md-1"> + <div> <label class="issue-label"> <span translate="api.requestSampleAdd">�씠�뒋 異붽�</span> </label> </div> - <div> + </div> + <div class="row"> + <div class="text-wrap"> <pre>{{vm.sampleJsonAdd}}</pre> </div> - <div class="col-md-1"></div> - <div class="col-md-1"> + </div> + <hr> + <div class="row"> + <div> <label class="issue-label"> <span translate="api.requestSampleModify">�씠�뒋 �닔�젙</span> </label> @@ -73,7 +77,9 @@ <span translate="api.requestSampleModifyDesc">�닔�젙�떆</span> </label> </div> - <div class="col-md-2"> + </div> + <div class="row"> + <div class="text-wrap"> <div> <pre>{{vm.sampleJsonModify}}</pre> </div> diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html index 221ef55..92c87e3 100644 --- a/src/main/webapp/views/common/sidebar.html +++ b/src/main/webapp/views/common/sidebar.html @@ -184,8 +184,8 @@ </div> <div class="logged-user-w avatar-inline"> - <div class="row mb-1" ng-if="$root.myLevel != null" > - <span class="issue-main-label offset-detail-5 badge badge-primary">{{$root.myLevel}}</span> + <div class="row mb-1" ng-if="$root.user.levelName != null" > + <span class="issue-main-label offset-detail-5 badge badge-primary">{{$root.user.levelName}}</span> <span class="issue-main-label offset-detail-1 badge badge-department">{{$root.myDepartments}}</span> </div> <div class="logged-user-i"> diff --git a/src/main/webapp/views/customField/customFieldAdd.html b/src/main/webapp/views/customField/customFieldAdd.html index 68ce107..d18dbb2 100644 --- a/src/main/webapp/views/customField/customFieldAdd.html +++ b/src/main/webapp/views/customField/customFieldAdd.html @@ -25,7 +25,7 @@ ng-maxlength="15" input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" required> - <small ng-show="customFieldAddForm.name.$error.maxlength" translate="common.upTo15Characters"> + <small ng-if="customFieldAddForm.name.$error.maxlength" translate="common.upTo15Characters"> 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. </small> <small translate="customField.limitNameToSpecialCharacters">�궗�슜�옄 �젙�쓽 �븘�뱶 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> @@ -55,15 +55,15 @@ </div> </div> - <div class="form-group" ng-show="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> - <label ng-show="vm.form.customFieldType == 'SINGLE_SELECT'"><span + <div class="form-group" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> + <label ng-if="vm.form.customFieldType == 'SINGLE_SELECT'"><span translate="customField.createSingleFieldList">�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code class="highlighter-rouge">*</code></label> - <label ng-show="vm.form.customFieldType == 'MULTI_SELECT'"><span + <label ng-if="vm.form.customFieldType == 'MULTI_SELECT'"><span translate="customField.createMultiFieldList">�떎以� �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code class="highlighter-rouge">*</code></label> - <div class="input-group" ng-show="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> + <div class="input-group" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> <input id="optionAdd" type="text" name="options" @@ -82,7 +82,7 @@ </small> </div> - <div ng-repeat="option in vm.form.options" ng-show="vm.form.customFieldType != 'INPUT'"> + <div ng-repeat="option in vm.form.options" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> <span class="select3-selection__choice"> <span>{{option}}</span> <span class="select3-selection__choice__remove" ng-click="fn.removeOption($index)">횞</span> @@ -91,7 +91,7 @@ <div class="form-group"> <label for="customFieldAddForm3"><span translate="customField.defaultValue">湲곕낯媛�</span> </label> - <input ng-if="vm.form.customFieldType == 'INPUT' || vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'" + <input ng-show="vm.form.customFieldType == 'INPUT' || vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'" id="customFieldAddForm3" type="text" name="defaultValue" @@ -112,7 +112,7 @@ placeholder="�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldAddForm.numberType.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldAddForm.numberType.$error.pattern" class="help-block form-text text-danger" translate="common.invalidNumberFormat">�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎. </div> @@ -139,7 +139,7 @@ placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldAddForm.ipAddress.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldAddForm.ipAddress.$error.pattern" class="help-block form-text text-danger" translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> @@ -153,7 +153,7 @@ placeholder="�씠硫붿씪 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" translate="common.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> @@ -167,7 +167,7 @@ placeholder="�솃�럹�씠吏� 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldAddForm.site.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldAddForm.site.$error.pattern" class="help-block form-text text-danger" translate="common.invalidSiteFormat">�솃�럹�씠吏� 二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(http://濡� �떆�옉�븯�뀛�빞�빀�땲�떎) </div> @@ -181,19 +181,19 @@ placeholder="�뿰�씫泥� �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger" translate="common.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> - <small ng-show="vm.form.customFieldType == 'INPUT'" translate="common.upTo100Characters"> + <small ng-if="vm.form.customFieldType == 'INPUT'" translate="common.upTo100Characters"> 理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. </small> - <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'SINGLE_SELECT'" + <div class="help-block form-text text-danger" ng-if="vm.form.customFieldType == 'SINGLE_SELECT'" translate="customField.selectSingleFieldListHashTag"> �떒�씪 �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛� </div> - <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'MULTI_SELECT'" + <div class="help-block form-text text-danger" ng-if="vm.form.customFieldType == 'MULTI_SELECT'" translate="customField.selectMultiFieldListHashTag"> �떎以� �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛�#���긽媛� </div> diff --git a/src/main/webapp/views/customField/customFieldModify.html b/src/main/webapp/views/customField/customFieldModify.html index e2b3acd..9c2e4f6 100644 --- a/src/main/webapp/views/customField/customFieldModify.html +++ b/src/main/webapp/views/customField/customFieldModify.html @@ -25,7 +25,7 @@ ng-maxlength="15" input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" required> - <small ng-show="customFieldModifyForm.name.$error.maxlength" class="help-block form-text text-danger" + <small ng-if="customFieldModifyForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo15Characters"> 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. </small> @@ -35,7 +35,7 @@ <div class="form-group"> <label for="customFieldModifyForm2"><span translate="customField.fieldType">�븘�뱶 �쑀�삎</span><code class="highlighter-rouge">*</code></label> - <label> <input type="checkbox" ng-model="vm.form.requiredData"> �븘�닔 �뜲�씠�꽣 </label> + <!-- <label> <input type="checkbox" ng-model="vm.form.requiredData"> �븘�닔 �뜲�씠�꽣 </label>--> <select id="customFieldModifyForm2" class="form-control" ng-model="vm.form.customFieldType" ng-change="fn.changeCustomFieldType()"> <option value="INPUT" translate="common.stringField">臾몄옄�뿴 �븘�뱶</option> @@ -48,17 +48,23 @@ <option value="SITE" translate="common.siteField">�솃�럹�씠吏� 二쇱냼 �븘�뱶</option> <option value="TEL" translate="common.telField">�쟾�솕踰덊샇 �븘�뱶</option> </select> + <div class="mt-3"> + <span class="custom-detail-label">�븘�닔 �뜲�씠�꽣</span> + <label class='switch'><input type='checkbox' ng-model="vm.form.requiredData"> + <span class='slider round'></span> + </label> + </div> </div> - <div class="form-group" ng-show="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> - <label ng-show="vm.form.customFieldType == 'SINGLE_SELECT'"><span + <div class="form-group" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> + <label ng-if="vm.form.customFieldType == 'SINGLE_SELECT'"><span translate="customField.createSingleFieldList">�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code class="highlighter-rouge">*</code></label> - <label ng-show="vm.form.customFieldType == 'MULTI_SELECT'"><span + <label ng-if="vm.form.customFieldType == 'MULTI_SELECT'"><span translate="customField.createMultiFieldList">�떎以� �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code class="highlighter-rouge">*</code></label> - <div class="input-group"> + <div class="input-group" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> <input id="optionAdd" type="text" name="options" @@ -77,8 +83,8 @@ </small> </div> - <div ng-repeat="option in vm.form.options" ng-show="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> -<!-- <div ng-repeat="option in vm.form.options" ng-show="vm.form.customFieldType != 'INPUT'">--> + <div ng-repeat="option in vm.form.options" ng-if="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"> +<!-- <div ng-repeat="option in vm.form.options" ng-if="vm.form.customFieldType != 'INPUT'">--> <span class="select3-selection__choice"> <span>{{option}}</span> <span class="select3-selection__choice__remove" ng-click="fn.removeOption($index)">횞</span> @@ -87,7 +93,7 @@ <div class="form-group"> <label for="customFieldModifyForm3"><span translate="customField.defaultValue">湲곕낯媛�</span> </label> - <input ng-if="vm.form.customFieldType == 'INPUT' || vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'" + <input ng-show="vm.form.customFieldType == 'INPUT' || vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'" id="customFieldModifyForm3" type="text" name="defaultValue" @@ -107,7 +113,7 @@ placeholder="�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldModifyForm.numberType.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldModifyForm.numberType.$error.pattern" class="help-block form-text text-danger" translate="common.invalidNumberFormat">�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎. </div> @@ -134,7 +140,7 @@ placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldModifyForm.ipAddress.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldModifyForm.ipAddress.$error.pattern" class="help-block form-text text-danger" translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> @@ -148,7 +154,7 @@ placeholder="�씠硫붿씪 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" translate="common.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> @@ -162,7 +168,7 @@ placeholder="�솃�럹�씠吏� 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldModifyForm.site.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldModifyForm.site.$error.pattern" class="help-block form-text text-danger" translate="common.invalidSiteFormat">�솃�럹�씠吏� 二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(http://濡� �떆�옉�븯�뀛�빞�빀�땲�떎) </div> @@ -176,19 +182,23 @@ placeholder="�뿰�씫泥� �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." autocomplete="off" ng-model="vm.form.defaultValue"> - <div ng-show="customFieldModifyForm.tel.$error.pattern" class="help-block form-text text-danger" + <div ng-if="customFieldModifyForm.tel.$error.pattern" class="help-block form-text text-danger" translate="common.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> - <small ng-show="customFieldModifyForm.defaultValue.$error.maxlength" - class="help-block form-text text-danger" translate="common.upTo100Characters"> +<!-- <small ng-if="customFieldModifyForm.defaultValue.$error.maxlength"--> +<!-- class="help-block form-text text-danger" translate="common.upTo100Characters">--> +<!-- 理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.--> +<!-- </small>--> + <small ng-if="vm.form.customFieldType == 'INPUT'" translate="common.upTo100Characters"> 理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. </small> - <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'SINGLE_SELECT'" + + <div class="help-block form-text text-danger" ng-if="vm.form.customFieldType == 'SINGLE_SELECT'" translate="customField.selectSingleFieldListHashTag"> �떒�씪 �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛� </div> - <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'MULTI_SELECT'" + <div class="help-block form-text text-danger" ng-if="vm.form.customFieldType == 'MULTI_SELECT'" translate="customField.selectMultiFieldListHashTag"> �떎以� �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛�#���긽媛� </div> diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index cfed49e..d7c46b0 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -254,7 +254,7 @@ <!-- 硫��떚 ���젆�듃 --> <div ng-switch-when="MULTI_SELECT"> <span class="issue-detail-word-break" - ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span> + ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}</span> <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> </div> -- Gitblit v1.8.0