From d71d945fd2d4d8faa4b293054accb09283432043 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 화, 07 12월 2021 19:43:02 +0900
Subject: [PATCH] 하위 이슈 초기화면 목록 안뜨는 오류 수정

---
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |  251 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 226 insertions(+), 25 deletions(-)

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 77fd121..f1ae81c 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -101,6 +101,16 @@
                                             makeTag += '<div owl-profile-over class="" table-user-image="data" target="projectUserVos"></div>';
                                             break;
 
+                                        case "PROJECT_DEPARTMENT":
+                                            makeTag += "<ul class='ul-not-comma'>";
+                                            makeTag += "<div style='cursor: pointer; color: #000000'>";
+                                            angular.forEach(scope.data.projectDepartmentVos, function (departments) {
+                                                makeTag += "<li>" + departments.departmentName + "</li>";
+                                            });
+                                            makeTag += "</div>";
+                                            makeTag += "</ul>";
+                                            break;
+
                                         case "ISSUE_STATUS_TYPE" :
                                             switch (scope.data.issueStatusType) {
                                                 case "READY":
@@ -154,17 +164,38 @@
                                             makeTag += "</ul>";
                                             break;
 
+                                        case "WORKFLOW_DEPARTMENT_LIST" :
+                                            makeTag += "<ul class='ul-not-comma'>";
+
+                                            if(scope.data.issueStatusVos != null && scope.data.issueStatusVos.length > 0){
+                                                makeTag += "<div>";
+                                                angular.forEach(scope.data.issueStatusVos, function (issueStatusVo) {
+                                                    let workflowDepartments = new Set(issueStatusVo.workflowDepartmentVos);
+                                                    angular.forEach(workflowDepartments, function (workflowDepartmentVo) {
+                                                        makeTag += "<li>" + workflowDepartmentVo.departmentVo.departmentName + "</li>";
+                                                    });
+                                                });
+                                                makeTag += "</div>";
+                                            }
+                                            makeTag += "</ul>";
+                                            break;
+
                                         case "CONFIG" :
                                             makeTag += '<a ng-click="event.modify(data.id)"><i class="fa fa-pencil fa-lg" uib-tooltip="�닔�젙"></i></a>';
                                             break;
                                         //  �씠�뒋 紐⑸줉�뿉�꽌 湲곌컙 �몴�떆
                                         case "ISSUE_DUE_DATE" :
                                             if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) {
-                                                makeTag += "<span></span>";
+                                                makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>";
                                             }
                                             else {
-                                                makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>";
+                                                makeTag += '<span class="cursor" ng-click="event.changeDetailView(data.id)">'  + scope.data.startDate + ' ~ ' + scope.data.completeDate + '</span>';
                                             }
+                                            break;
+
+                                        //  �븯�쐞�씠�뒋 移댁슫�듃
+                                        case "DOWN_ISSUE_COUNT" :
+                                            makeTag += '<span>'  + scope.data.downIssueCount + ' / ' + scope.data.downIssueAllCount + '</span>';
                                             break;
 
                                         //  �봽濡쒖젥�듃 湲곌컙 �몴�떆
@@ -194,34 +225,149 @@
                                             makeTag += '</div>';
                                             break;
 
-                                        case "ISSUE_DETAIL_MOVE" :
-                                            makeTag += "<a ui-sref='issues.detail({ id : " + scope.data.id + " })'><span>" + scope.data.title + "</span></a>";
-                                            break;
+                       /*                 case "ISSUE_DETAIL_MOVE" :
+                                            makeTag += "<a class='text-center' ui-sref='issues.detail({ id : " + scope.data.id + " })'><span>" + scope.data.title + "</span></a>";
+                                            break;*/
 
-
-                                        // �뿰愿� �씠�뒋 �씠�룞
+                                        // �뿰愿� �씠�뒋 �씠�룞(�젣紐�)
                                         case "ISSUE_RELATION_MOVE" :
-                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>";
+                                            makeTag += "<span class=\"titlename cursor text-center\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>";
                                             break;
 
-                                        // �뿰愿� �씠�뒋 �씠�룞
-                                        case "ISSUE_DOWN_MOVE" :
-                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.id)\">" + scope.data.title + "</span></a>";
-                                            break;
-
-                                            // �뿰愿��씠�뒋 援щ텇
+                                        // �뿰愿��씠�뒋 援щ텇
                                         case "ISSUE_RELATION_TYPE":
                                             makeTag += "<span>" + scope.data.relationIssueTypeName + "</span>";
                                             break;
 
-                                            // �뿰愿��씠�뒋 �궘�젣
+                                        // �뿰愿��씠�뒋 �궘�젣
                                         case "ISSUE_RELATION_DELETE":
                                             makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeRelationIssue(data.id)">';
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞
+                                        case "REL_COMMON_PRIORITY" :
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>";
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 以묒슂�룄
+                                        case "REL_COMMON_SEVERITY" :
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>";
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 �벑濡앹옄
+                                        case "REL_REGISTER":
+                                            scope.data.registerVos = [scope.data.issueRelation.registerVo];
+                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>';
+                                            break;
+
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 �떞�떦遺��꽌
+                                        case "REL_ISSUE_DEPARTMENT" :
+                                            makeTag += "<ul class='ul-not-comma'>";
+                                            makeTag += "<div style='color: #000000'>";
+                                            angular.forEach(scope.data.issueRelation.departmentVos, function (departments) {
+                                                makeTag += "<li>" + departments.departmentName + "</li>";
+                                            });
+                                            makeTag += "</div>";
+                                            makeTag += "</ul>";
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 紐⑸줉�뿉�꽌 湲곌컙 �몴�떆
+                                        case "REL_ISSUE_DUE_DATE" :
+                                            if (!$rootScope.isDefined(scope.data.issueRelation.startDate) && !$rootScope.isDefined(scope.data.issueRelation.completeDate)) {
+                                                makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span>" + scope.data.issueRelation.startDate + " ~ " + scope.data.issueRelation.completeDate + "</span>";
+                                            }
+                                            break;
+
+                                        // �뿰愿� �씠�뒋 �궗�슜�옄 �젙�쓽 �븘�뱶
+                                        case "REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW" :
+                                            var values = [];
+
+                                            for (var count in scope.data.issueRelation.issueCustomFieldValueVos) {
+                                                var issueCustomFieldValueVo = scope.data.issueRelation.issueCustomFieldValueVos[count];
+                                                //  �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎.
+                                                if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) {
+                                                    values.push(issueCustomFieldValueVo.useValue);
+                                                }
+                                            }
+                                            angular.forEach(values, function (value) {
+                                                makeTag += '<span class="table-word-break-all cursor">' + value + '<span><br>';
+                                            });
+
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 �씠�룞(�젣紐�)
+                                        case "ISSUE_DOWN_MOVE" :
+
+                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data)\">" + scope.data.title + "</span></a>";
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 ���엯
+                                        case "ISSUE_DOWN_STATUS_TYPE" :
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusVo.color + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusVo.name + "</span>";
                                             break;
 
                                         // �븯�쐞 �씠�뒋 �궘�젣
                                         case "ISSUE_DOWN_DELETE":
                                             makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">';
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 �슦�꽑 �닚�쐞
+                                        case "DOWN_COMMON_PRIORITY" :
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>";
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 以묒슂�룄
+                                        case "DOWN_COMMON_SEVERITY" :
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>";
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 �떞�떦遺��꽌
+                                        case "DOWN_ISSUE_DEPARTMENT" :
+                                            makeTag += "<ul class='ul-not-comma'>";
+                                            makeTag += "<div style='color: #000000'>";
+                                            angular.forEach(scope.data.departmentVos, function (departments) {
+                                                makeTag += "<li>" + departments.departmentName + "</li>";
+                                            });
+                                            makeTag += "</div>";
+                                            makeTag += "</ul>";
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 �벑濡앹옄
+                                        case "DOWN_REGISTER":
+                                            scope.data.registerVos = [scope.data.registerVo];
+                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>';
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 湲곌컙
+                                        case "DOWN_ISSUE_DUE_DATE" :
+                                            if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) {
+                                                makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>";
+                                            }
+                                            break;
+
+                                        // �븯�쐞 �씠�뒋 �궗�슜�옄 �젙�쓽 �븘�뱶
+                                        case "DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW" :
+                                            var values = [];
+
+                                            for (var count in scope.data.issueCustomFieldValueVos) {
+                                                var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count];
+                                                //  �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎.
+                                                if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) {
+                                                    values.push(issueCustomFieldValueVo.useValue);
+                                                }
+                                            }
+                                            angular.forEach(values, function (value) {
+                                                makeTag += '<span class="table-word-break-all">' + value + '<span><br>';
+                                            });
+
                                             break;
 
                                         //  �씠由꾩쓣 �겢由��븯硫� �닔�젙 �뙘�뾽 �몴�떆
@@ -233,6 +379,7 @@
                                                 makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>";
                                             }
                                             break;
+
                                         //  �꽕�젙 踰꾪듉 �겢由��븯硫� �닔�젙 �뙘�뾽 �몴�떆
                                         case "BUTTON_MODIFY" :
                                                 makeTag += '<button class="btn btn-info" ng-if="data.modifyPermissionCheck" ng-click="event.modify(data.id)"><i class="os-icon os-icon-ui-46" uib-tooltip="�봽濡쒖젥�듃 �꽕�젙"></i></button>';
@@ -250,30 +397,80 @@
                                                 case "SINGLE_SELECT" :
                                                     makeTag += "<span translate='common.singleSelectionField'>�떒�씪 �꽑�깮 �븘�뱶</span>";
                                                     break;
+                                                case "NUMBER" :
+                                                    makeTag += "<span translate='common.numberField'>�닽�옄 �븘�뱶</span>";
+                                                    break;
+                                                case "DATETIME" :
+                                                    makeTag += "<span translate='common.datetimeField'>�궇吏� �븘�뱶</span>";
+                                                    break;
+                                                case "IP_ADDRESS" :
+                                                    makeTag += "<span translate='common.ipAddressField'>IP ADDRESS �븘�뱶</span>";
+                                                    break;
+                                                case "EMAIL" :
+                                                    makeTag += "<span translate='common.emailField'>�씠硫붿씪 �븘�뱶</span>";
+                                                    break;
+                                                case "SITE" :
+                                                    makeTag += "<span translate='common.siteField'>URL �븘�뱶</span>";
+                                                    break;
+                                                case "TEL" :
+                                                    makeTag += "<span translate='common.telField'>�쟾�솕踰덊샇 �븘�뱶</span>";
+                                                    break;
                                             }
 
                                             break;
+                                        // �씠�뒋 �젣紐�
+                                        case "ISSUE_TITLE" :
+                                            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>';
+                                            makeTag += ' <span class="tag"> / </span> ';
+                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusColor + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusColor + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusName + "</span>";
+                                            makeTag += ' <span class="tag"> / </span> ';
+                                            makeTag += '<span class="tag">' + scope.data.projectName + '</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="extra-infodiv text-left">';
+                                            makeTag += '<span class="extra-info">';
+                                            makeTag += '<i class="os-icon os-icon-mail-12"></i>';
+                                            makeTag += '<span>' + scope.data.issueCommentCount + '</span>';
+                                            makeTag += '</span>';
+                                            makeTag += '<span class="extra-info">';
+                                            makeTag += '<i class="os-icon os-icon-ui-51"></i>';
+                                            makeTag += '<span>' + scope.data.attachedFileCount + '</span>';
+                                            makeTag += '</span>';
+                                            makeTag += '</div>';
+                                            break;
 
+                                        // �슦�꽑 �닚�쐞
                                         case "COMMON_PRIORITY" :
-                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityName + "'></span>";
+                                            makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='badge cursor' ng-style='{ \"background-color\" : \"" + scope.data.priorityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityName + "'></span>";
                                             break;
 
+                                        // 以묒슂�룄
                                         case "COMMON_SEVERITY" :
-                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.severityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityName + "'></span>";
+                                            makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='badge cursor' ng-style='{ \"background-color\" : \"" + scope.data.severityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.severityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityName + "'></span>";
                                             break;
 
+                                        // �떞�떦 遺��꽌
+                                        case "ISSUE_DEPARTMENT" :
+                                            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>";
+                                                });
+                                                makeTag += "</div>";
+                                            makeTag += "</ul>";
+                                            break;
+
+                                        // �떞�떦�옄
                                         case "ISSUE_USER" :
                                             makeTag += '<div owl-profile-over class="" table-user-image="data" target="userVos"></div>';
                                             break;
 
-                                        case "ISSUE_DEPARTMENT" :
-                                            scope.data.registsrVos = [scope.data.registerVo];
-                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="departmentVos"></div>';
-                                            break;
-
+                                        // �벑濡앹옄
                                         case "REGISTER" :
-                                            scope.data.registsrVos = [scope.data.registerVo];
-                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registsrVos"></div>';
+                                            scope.data.registerVos = [scope.data.registerVo];
+                                            makeTag += '<div ng-click=\"event.changeDetailView(data.id)\" owl-profile-over class="cursor" table-user-image="data" target="registerVos"></div>';
                                             break;
 
                                         case "WORKFLOW_NAME":
@@ -339,6 +536,10 @@
 
                                         case "ISSUE_SETTING_PERM_YN" :
                                             makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permIssueSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
+                                            break;
+
+                                        case "PARTNER_SETTING_PERM_YN" :
+                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permPartnerSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
                                             break;
 
                                         case "API_PERM_YN" :
@@ -446,7 +647,7 @@
                                             }
 
                                             angular.forEach(values, function (value) {
-                                                makeTag += '<span class="table-word-break-all">' + value + '<span><br>';
+                                                makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + value + '<span><br>';
                                             });
 
                                             break;

--
Gitblit v1.8.0