From 612b5a21417f3c8dcaed84c1c0691dc883088f61 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 18 2월 2022 18:04:14 +0900
Subject: [PATCH] 이슈 컬럼 정렬 진행

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java            |    8 ++++++++
 src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java               |   12 ++++++++++++
 src/main/resources/mybatis/query-template/issue-template.xml                 |    1 +
 src/main/webapp/scripts/app/issue/issueList.controller.js                    |    6 ++++--
 src/main/webapp/custom_components/js-table/js-table.html                     |    2 +-
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |   27 +++++++++++++++++++++++----
 6 files changed, 49 insertions(+), 7 deletions(-)

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 654acc7..0e8375e 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/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();
diff --git a/src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java b/src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java
index e5be303..0ebdd86 100644
--- a/src/main/java/kr/wisestone/owl/vo/IssueCustomFieldValueVo.java
+++ b/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;
+    }
 }
diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index df5144f..96b5c07 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/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
diff --git a/src/main/webapp/custom_components/js-table/js-table.html b/src/main/webapp/custom_components/js-table/js-table.html
index a6e0d08..b583754 100644
--- a/src/main/webapp/custom_components/js-table/js-table.html
+++ b/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}}"
diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
index f4160fe..4e39a14 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/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, '&lt;');
                                             makeTag += '<div class="tags text-left">';
                                             makeTag += '<i class="fa fa-star move-star" ng-show="$root.currentDetailIssueId == data.id">&nbsp;</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, '&lt;') + '</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;
diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index ffdec54..03f3cc1 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/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;
                             }
                         }
                     }

--
Gitblit v1.8.0