src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/resources/mybatis/query-template/issue-template.xml | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/custom_components/js-table/js-table.html | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueList.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 |
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2848,8 +2848,16 @@ for (IssueVo issueVo : issueVos) { for (Map<String, Object> issueCustomFieldValue : issueCustomFieldValues) { int count = 0; Map<String, Object> useValues = new HashMap<>(); if (issueVo.getId().equals(MapUtil.getLong(issueCustomFieldValue, "issueId"))) { IssueCustomFieldValueVo issueCustomFieldValueVo = new IssueCustomFieldValueVo(); useValues.put("useValue"+count, MapUtil.getString(issueCustomFieldValue, "useValue")); useValues.put("customFieldId", MapUtil.getLong(issueCustomFieldValue, "customFieldId")); issueCustomFieldValueVo.setUseValues(useValues); issueCustomFieldValueVo.setUseValue(MapUtil.getString(issueCustomFieldValue, "useValue")); CustomFieldVo customFieldVo = new CustomFieldVo(); src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java
@@ -1,5 +1,7 @@ package kr.wisestone.owl.vo; import java.util.Map; /** * Created by wisestone on 2018-06-01. */ @@ -7,6 +9,8 @@ private Long id; private String useValue; private CustomFieldVo customFieldVo; private Map<String, Object> useValues; public IssueCustomFieldValueVo(){} @@ -33,4 +37,12 @@ public void setCustomFieldVo(CustomFieldVo customFieldVo) { this.customFieldVo = customFieldVo; } public Map<String, Object> getUseValues() { return useValues; } public void setUseValues(Map<String, Object> useValues) { this.useValues = useValues; } } src/main/resources/mybatis/query-template/issue-template.xml
@@ -36,6 +36,7 @@ ic.name AS companyName, ii.name AS ispName, ih.name AS hostingName, d.department_name AS departmentName, GROUP_CONCAT(issue_custom.use_value) AS useValue, IFNULL(temp_attached_file.attachedFileCount, 0) as attachedFileCount, IFNULL(temp_issue_comment.issueCommentCount, 0) as issueCommentCount src/main/webapp/custom_components/js-table/js-table.html
@@ -4,7 +4,7 @@ <tr ng-if="hideHeader != true"> <th bindonce ng-repeat="tableConfig in tableConfigs" bo-class="[tableConfig.hAlign, tableConfig.hWidth, tableConfig.dVisible]" ng-click="$root.$tableProvider.setOrderByColumn(tableConfig.dName)" ng-click="!tableConfig.dName.contains('useValue') ? $root.$tableProvider.setOrderByColumn(tableConfig.dName) : $root.$tableProvider.setOrderByColumn(tableConfig.dName)" bo-style="{ 'cursor' : tableConfig.dName != '' ? 'pointer' : '' }" rowspan="{{tableConfig.rowSpan}}" colspan="{{tableConfig.colSpan}}" src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -439,6 +439,7 @@ break; // 이슈 제목 case "ISSUE_TITLE" : scope.data.title = scope.data.title.replace(/</gi, '<'); makeTag += '<div class="tags text-left">'; makeTag += '<i class="fa fa-star move-star" ng-show="$root.currentDetailIssueId == data.id"> </i>'; makeTag += '<span class="number-tag">' + scope.data.projectKey + ' - ' + scope.data.issueNumber + '</span>'; @@ -449,7 +450,7 @@ makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"#EF8D9A" + "\"," + "\"border-color\"" + " : \"#EF8D9A" + "\", \"color\": \"#FFFFFF\" }'>" + "<span>API</span>" + "</span>"; } makeTag += '</div>'; makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)">' + scope.data.title.replace(/</gi, '<') + '</div>'; makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)" translate="' + scope.data.title + '">' + '</div>'; makeTag += '<div class="extra-infodiv text-left">'; makeTag += '<span class="extra-info">'; makeTag += '<i class="os-icon os-icon-mail-12"></i>'; @@ -482,7 +483,8 @@ makeTag += "<ul ng-click=\"event.changeDetailView(data.id)\" class='ul-not-comma cursor'>"; makeTag += "<div style='color: #000000'>"; angular.forEach(scope.data.departmentVos, function (departments) { makeTag += "<li>" + departments.departmentName + "</li>"; scope.data.departmentName = departments.departmentName; makeTag += "<li translate='" + scope.data.departmentName + "'>" + "</li>"; }); makeTag += "</div>"; makeTag += "</ul>"; @@ -712,17 +714,34 @@ case "ISSUE_CUSTOM_FIELD_VALUE_VIEW" : var values = []; let valueMap = new Map(); //scope.data.useValue = ""; for (var count in scope.data.issueCustomFieldValueVos) { var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count]; valueMap.set("useValue"+count, issueCustomFieldValueVo.useValue); $window[scope.data.useValue+count] = valueMap.get("useValue"+count); //window["scope.data.useValue"+count] = scope.data.useValue+count; //console.log(scope.data.useValue+count); /*window[scope.data.useValue+count] = valueMap.get("useValue"+count); console.log("window" + window[scope.data.useValue+count]); console.log("map" + valueMap.get("useValue"+count));*/ scope.data.useValue = valueMap.get("useValue"+count); makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + scope.data.useValue+count + '<span>'; // 테이블 설정에서 dName 부분에 사용자 정의 필드 id 를 넣고 해당 값을 추출한다. if (tableConfig.columnHint.id === issueCustomFieldValueVo.customFieldVo.id) { values.push(issueCustomFieldValueVo.useValue); } } angular.forEach(values, function (value) { makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + value + '<span><br>'; angular.forEach(values, function (useValue) { scope.data.useValue = useValue; makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + scope.data.useValue + '<span>'; }); break; src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -446,20 +446,22 @@ // 사용자 정의 필드 컬럼 if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { let cnt = -1; // 만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제 for (var count in $scope.vm.customFields) { var customField = $scope.vm.customFields[count]; if (customField.id === Number(issueTableConfig.key.substring(13))) { cnt ++; $scope.vm.tableConfigs.push($tableProvider.config() .setHName(customField.name) .setDType("renderer") .setDName("useValue" + count.toString()) /* todo 체크*/ .setDName("useValue"+cnt) /* todo 체크*/ .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setColumnHint(customField) .setDRenderer("ISSUE_CUSTOM_FIELD_VALUE_VIEW")); break; } } }