이슈목록 - 테이블표시설정에 프로젝트에서 설정한 사용자정의필드만 가져오기
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.vo.IssueTypeCustomFieldVo; |
| | | import kr.wisestone.owl.web.condition.IssueTypeCustomFieldCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-05-29. |
| | | */ |
| | | @Repository |
| | | public interface IssueTypeCustomFieldMapper { |
| | | List<IssueTypeCustomFieldVo> findByIssueType(IssueTypeCustomFieldCondition condition); |
| | | } |
| | |
| | | |
| | | List<IssueTypeCustomFieldVo> findIssueTypeCustomField(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition); |
| | | |
| | | List<IssueTypeCustomFieldVo> findCustomFieldByIssueType(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition); |
| | | |
| | | List<IssueTypeCustomField> findByProjectIdAndIssueTypeId(Long projectId, Long issueTypeId); |
| | | |
| | | IssueTypeCustomField findByProjectIdAndIssueTypeIdAndCustomFieldId(Long projectId, Long issueTypeId, Long customFieldId); |
| | |
| | | import com.google.common.collect.Lists; |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.mapper.IssueTypeCustomFieldMapper; |
| | | import kr.wisestone.owl.repository.IssueTypeCustomFieldRepository; |
| | | import kr.wisestone.owl.service.*; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | |
| | | private IssueTypeCustomFieldRepository issueTypeCustomFieldRepository; |
| | | |
| | | @Autowired |
| | | private IssueTypeCustomFieldMapper issueTypeCustomFieldMapper; |
| | | |
| | | @Autowired |
| | | private ProjectService projectService; |
| | | |
| | | @Autowired |
| | | private IssueTypeService issueTypeService; |
| | | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private CustomFieldService customFieldService; |
| | |
| | | return issueTypeCustomFieldVos; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<IssueTypeCustomFieldVo> findCustomFieldByIssueType(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition) { |
| | | List<IssueTypeCustomFieldVo> issueTypeCustomFieldVos = Lists.newArrayList(); |
| | | |
| | | IssueType issueType = this.issueTypeService.getIssueType(condition.getIssueTypeId()); |
| | | condition.setIssueTypeId(issueType.getId()); |
| | | condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | List<IssueTypeCustomFieldVo> issueTypeCustomFieldVo = this.issueTypeCustomFieldMapper.findByIssueType(condition); |
| | | if (issueTypeCustomFieldVo != null && issueTypeCustomFieldVo.size() > 0) { |
| | | issueTypeCustomFieldVos.addAll(issueTypeCustomFieldVo); |
| | | } |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, issueTypeCustomFieldVos); |
| | | return issueTypeCustomFieldVos; |
| | | } |
| | | |
| | | // 이슈 excel template download 에서 사용 |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | |
| | | private Long projectId; |
| | | private Long issueTypeId; |
| | | |
| | | private Long workspaceId; |
| | | |
| | | public IssueTypeCustomFieldCondition(){} |
| | | |
| | | public static IssueTypeCustomFieldCondition make(Map<String, Object> conditions) { |
| | |
| | | public void setIssueTypeId(Long issueTypeId) { |
| | | this.issueTypeId = issueTypeId; |
| | | } |
| | | |
| | | public Long getWorkspaceId() { |
| | | return workspaceId; |
| | | } |
| | | |
| | | public void setWorkspaceId(Long workspaceId) { |
| | | this.workspaceId = workspaceId; |
| | | } |
| | | } |
| | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 이슈 타입 별 사용자 정의 필드 연결 조회 |
| | | @RequestMapping(value = "/issueTypeCustomField/findByIssueType", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findByIssueType(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.issueTypeCustomFieldService.findCustomFieldByIssueType(resJsonData, IssueTypeCustomFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.IssueTypeCustomFieldMapper"> |
| | | |
| | | <select id="findByIssueType" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueTypeCustomFieldCondition"> |
| | | SELECT |
| | | cf.id AS id, |
| | | cf.name AS name, |
| | | cf.custom_field_type as customFieldType, |
| | | cf.default_value as defaultValue |
| | | FROM issue_type_custom_field it |
| | | INNER JOIN custom_field cf ON cf.id = it.custom_field_id |
| | | INNER JOIN workspace ws on cf.workspace_id = ws.id |
| | | WHERE cf.use_flag = 'Y' |
| | | AND it.issue_type_id = #{issueTypeId} |
| | | AND ws.id = #{workspaceId} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'CustomField', '$q', '$filter', 'parameter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, CustomField, $q, $filter, parameter) { |
| | | app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'IssueTypeCustomField', '$q', '$filter', 'parameter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, IssueTypeCustomField, $q, $filter, parameter) { |
| | | |
| | | // 함수 모음 |
| | | $scope.fn = { |
| | |
| | | function getCustomFields() { |
| | | var deferred = $q.defer(); |
| | | |
| | | CustomField.find($resourceProvider.getContent({}, |
| | | IssueTypeCustomField.findByIssueType($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()}, |
| | | $resourceProvider.getPageContent(0, 1000))).then(function (result) { |
| | | if (result.data.message.status !== "success") { |
| | | SweetAlert.error($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message); // 사용자 정의 필드 목록 조회 실패 |
| | |
| | | return response; |
| | | }); |
| | | }, |
| | | findByIssueType : function (conditions) { |
| | | return $http.post("issueTypeCustomField/findByIssueType", conditions).then(function (response) { |
| | | $log.debug("이슈 유형 별 사용자 정의 필드 목록 데이터 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("issueTypeCustomField/modify", conditions).then(function (response) { |
| | | $log.debug("이슈 유형 사용자 정의 필드 수정 결과 : ", response); |