From 2ffa64e0b88f73c531b61afd590b7be3d8bfa6bc Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 화, 23 11월 2021 20:52:37 +0900
Subject: [PATCH] 이슈 상세 연관,하위 테이블 표시 설정 - [프론트]

---
 src/main/java/kr/wisestone/owl/domain/enumType/IssueModifyType.java          |    1 
 src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js  |   62 ++++++---------
 src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js          |    8 +-
 src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js      |   34 +++-----
 src/main/webapp/views/issue/issueDetail.html                                 |    4 
 src/main/webapp/scripts/app/issue/issueDetail.controller.js                  |  103 ++++++++++++++++++++-----
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |   10 +-
 7 files changed, 133 insertions(+), 89 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/enumType/IssueModifyType.java b/src/main/java/kr/wisestone/owl/domain/enumType/IssueModifyType.java
index 5fb0739..add6833 100644
--- a/src/main/java/kr/wisestone/owl/domain/enumType/IssueModifyType.java
+++ b/src/main/java/kr/wisestone/owl/domain/enumType/IssueModifyType.java
@@ -7,6 +7,7 @@
     RELATION_ISSUE_TYPE,
     RELATION_ISSUE_TITLE,
     DOWN_ISSUE_TITLE,
+    DOWN_ISSUE_DELETE,
     SEVERITY,
     PRIORITY,
     ISSUE_STATUS,
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..90d340b 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -254,6 +254,7 @@
 
                                             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>";
                                             break;
@@ -262,13 +263,12 @@
                                             makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.severityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityName + "'></span>";
                                             break;
 
-                                        case "ISSUE_USER" :
-                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="userVos"></div>';
+                                        case "ISSUE_DEPARTMENT" :
+                                            makeTag += "<span>" + scope.data.departmentVos.departmentName + "</span>";
                                             break;
 
-                                        case "ISSUE_DEPARTMENT" :
-                                            scope.data.registsrVos = [scope.data.registerVo];
-                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="departmentVos"></div>';
+                                        case "ISSUE_USER" :
+                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="userVos"></div>';
                                             break;
 
                                         case "REGISTER" :
diff --git a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
index 314fc34..e391679 100644
--- a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
@@ -23,53 +23,47 @@
                 //  蹂��닔 紐⑥쓬
                 $scope.vm = {
                     issueId : "",
-                    issueTableConfigs : [{
-                        name : $filter("translate")("issue.downIssueTitle"), //
-                        key : "DOWN_ISSUE_TITLE",
-                        width : "width-100-p",
-                        position : 1,
-                        display : true
-                    }, {
+                    issueDownTableConfigs : [{
                         name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
                         key : "PRIORITY",
                         width : "width-80-p",
-                        position : 2,
+                        position : 1,
                         display : true
                     }, {
                         name : $filter("translate")("common.importance"), // 以묒슂�룄
                         key : "SEVERITY",
                         width : "width-80-p",
-                        position : 3,
+                        position : 2,
                         display : true
                     }, {
                         name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯
                         key : "ISSUE_TYPE",
                         width : "width-140-p",
-                        position : 4,
+                        position : 3,
                         display : true
                     }, {
                         name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
                         key : "ASSIGNEE_TEAM",
                         width : "width-100-p",
-                        position : 5,
+                        position : 4,
                         display : true
                     }, {
                         name : $filter("translate")("common.register"), // �벑濡앹옄
                         key : "REGISTER",
                         width : "width-100-p",
-                        position : 6,
+                        position : 5,
                         display : false
                     }, {
                         name : $filter("translate")("common.period"), // 湲곌컙
                         key : "PERIOD",
                         width : "width-140-p",
-                        position : 7,
+                        position : 6,
                         display : false
                     }, {
                         name : $filter("translate")("common.lastChangeDate"), // 理쒓렐 蹂�寃쎌씪
                         key : "MODIFY_DATE",
                         width : "width-100-p",
-                        position : 8,
+                        position : 7,
                         display : false
                     }, {
                     }]
@@ -91,7 +85,7 @@
 
                     var content = {
                         issueId : $rootScope.currentDetailIssueId,
-                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
+                        issueTableConfigs : JSON.stringify($scope.vm.issueDownTableConfigs)
                     };
 
                     IssueTableConfig.downAdd($resourceProvider.getContent(content,
@@ -102,7 +96,7 @@
                             swal.close();
                             $scope.fn.cancel();
                             //  蹂�寃쎈맂 �씠�뒋 �뀒�씠釉� �젙蹂대�� �씠�뒋 紐⑸줉 �뀒�씠釉붿뿉 媛깆떊�븳�떎.
-                            $rootScope.$broadcast("getDownIssueTableConfigs", {});
+                            $rootScope.$broadcast("getIssueDetail", { id : $rootScope.currentDetailIssueId});
 
                         }
                         else {
@@ -142,7 +136,7 @@
                     var deferred = $q.defer();
                     var content = {
                         issueId : $rootScope.currentDetailIssueId,
-                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
+                        issueTableConfigs : JSON.stringify($scope.vm.issueDownTableConfigs)
                     };
 
                     IssueTableConfig.downDetail($resourceProvider.getContent(content,
@@ -161,7 +155,7 @@
                 $scope.fn.getCustomFields().then(function (result) {
                     var count = 8;
                     angular.forEach(result, function (customField) {
-                        $scope.vm.issueTableConfigs.push({
+                        $scope.vm.issueDownTableConfigs.push({
                             name : customField.name,
                             key : "CUSTOM_FIELD_" + customField.id,
                             width : "width-100-p",
@@ -181,8 +175,8 @@
 
                             angular.forEach(saveTableConfigs, function (saveTableConfig) {
 
-                                for (var count in $scope.vm.issueTableConfigs) {
-                                    var issueTableConfig = $scope.vm.issueTableConfigs[count];
+                                for (var count in $scope.vm.issueDownTableConfigs) {
+                                    var issueTableConfig = $scope.vm.issueDownTableConfigs[count];
 
                                     if (issueTableConfig.key === saveTableConfig.key) {
                                         issueTableConfig.display = saveTableConfig.display;
diff --git a/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
index c708827..bbe519e 100644
--- a/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
@@ -24,60 +24,48 @@
                 //  蹂��닔 紐⑥쓬
                 $scope.vm = {
                     issueId: "",
-                    issueTableConfigs : [{
-                        name : $filter("translate")("issue.relationIssueType"), //
-                        key : "RELATION_ISSUE_TYPE",
+                    issueRelTableConfigs : [{
+                        name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
+                        key : "PRIORITY",
                         width : "width-100-p",
                         position : 1,
                         display : true
                     }, {
-                        name : $filter("translate")("issue.relationIssueTitle"), //
-                        key : "RELATION_ISSUE_TITLE",
-                        width : "width-80-p",
-                        position : 2,
-                        display : true
-                    },{
-                        name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
-                        key : "PRIORITY",
-                        width : "width-80-p",
-                        position : 3,
-                        display : true
-                    }, {
                         name : $filter("translate")("common.importance"), // 以묒슂�룄
                         key : "SEVERITY",
-                        width : "width-80-p",
-                        position : 4,
+                        width : "width-100-p",
+                        position : 2,
                         display : true
                     }, {
                         name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯
                         key : "ISSUE_TYPE",
-                        width : "width-140-p",
-                        position : 5,
+                        width : "width-100-p",
+                        position : 3,
                         display : true
                     }, {
                         name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
                         key : "ASSIGNEE_TEAM",
-                        width : "width-100-p",
-                        position : 6,
+                        width : "width-50-p",
+                        position : 4,
                         display : true
                     }, {
                         name : $filter("translate")("common.register"), // �벑濡앹옄
                         key : "REGISTER",
-                        width : "width-100-p",
-                        position : 7,
-                        display : false
+                        width : "width-50-p",
+                        position : 5,
+                        display : true
                     }, {
                         name : $filter("translate")("common.period"), // 湲곌컙
                         key : "PERIOD",
-                        width : "width-140-p",
-                        position : 8,
-                        display : false
+                        width : "width-100-p",
+                        position : 6,
+                        display : true
                     }, {
                         name : $filter("translate")("common.lastChangeDate"), // 理쒓렐 蹂�寃쎌씪
                         key : "MODIFY_DATE",
                         width : "width-100-p",
-                        position : 9,
-                        display : false
+                        position : 7,
+                        display : true
                     }, {
                     }]
                 };
@@ -98,7 +86,7 @@
 
                     var content = {
                         issueId : $rootScope.currentDetailIssueId,
-                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
+                        issueTableConfigs : JSON.stringify($scope.vm.issueRelTableConfigs)
                     };
 
                     IssueTableConfig.relationAdd($resourceProvider.getContent(content,
@@ -108,10 +96,8 @@
                             SweetAlert.success($filter("translate")("issue.completedSavingIssueTable"), $filter("translate")("issue.saveIssueTableSettingsInformation")); // "�씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �셿猷�", "�씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎."
                             swal.close();
                             $scope.fn.cancel();
-
                             //  蹂�寃쎈맂 �씠�뒋 �뀒�씠釉� �젙蹂대�� �씠�뒋 紐⑸줉 �뀒�씠釉붿뿉 媛깆떊�븳�떎.
-                            $rootScope.$broadcast("getRelIssueTableConfigs", {});
-
+                            $rootScope.$broadcast("getIssueDetail", { id : $rootScope.currentDetailIssueId});
                         }
                         else {
                             SweetAlert.error($filter("translate")("issue.failedToSaveIssueTableSetting"), result.data.message.message); // �씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �떎�뙣
@@ -151,7 +137,7 @@
 
                     var content = {
                         issueId : $rootScope.currentDetailIssueId,
-                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
+                        issueTableConfigs : JSON.stringify($scope.vm.issueRelTableConfigs)
                     };
 
                     IssueTableConfig.relationDetail($resourceProvider.getContent(content,
@@ -168,9 +154,9 @@
 
                 //  �궗�슜�옄 �젙�쓽 �븘�뱶瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎.
                 $scope.fn.getCustomFields().then(function (result) {
-                    var count = 8;
+                    var count = 9;
                     angular.forEach(result, function (customField) {
-                        $scope.vm.issueTableConfigs.push({
+                        $scope.vm.issueRelTableConfigs.push({
                             name : customField.name,
                             key : "CUSTOM_FIELD_" + customField.id,
                             width : "width-100-p",
@@ -190,8 +176,8 @@
 
                             angular.forEach(saveTableConfigs, function (saveTableConfig) {
 
-                                for (var count in $scope.vm.issueTableConfigs) {
-                                    var issueTableConfig = $scope.vm.issueTableConfigs[count];
+                                for (var count in $scope.vm.issueRelTableConfigs) {
+                                    var issueTableConfig = $scope.vm.issueRelTableConfigs[count];
 
                                     if (issueTableConfig.key === saveTableConfig.key) {
                                         issueTableConfig.display = saveTableConfig.display;
diff --git a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
index 8b844bd..b5c23db 100644
--- a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
@@ -17,13 +17,13 @@
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck,  //  �뤌 泥댄겕
                     getCustomFields : getCustomFields,   //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎.
-                    getIssueTableConfigs : getIssueTableConfigs //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎.
+                    getIssueAddTableConfigs : getIssueAddTableConfigs //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎.
                 };
 
                 //  蹂��닔 紐⑥쓬
                 $scope.vm = {
                     issueTableConfigs : [{
-                        name : $filter("translate")("common.importance"), // �슦�꽑�닚�쐞
+                        name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
                         key : "PRIORITY",
                         width : "width-80-p",
                         position : 1,
@@ -130,7 +130,7 @@
                 }
 
                 //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎.
-                function getIssueTableConfigs() {
+                function getIssueAddTableConfigs() {
                     var deferred = $q.defer();
 
                     IssueTableConfig.detail($resourceProvider.getContent({},
@@ -161,7 +161,7 @@
                     });
 
                     //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎.
-                    $scope.fn.getIssueTableConfigs().then(function (issueTableConfigs) {
+                    $scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
                         if ($rootScope.isDefined(issueTableConfigs)) {
                             $rootScope.spinner = true;
 
diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index 6c65f71..073e2ca 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -8,8 +8,8 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'IssueStatus', 'IssueTableConfig', '$filter',
-            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, IssueStatus, IssueTableConfig, $filter) {
+        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q','SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'IssueStatus', 'IssueTableConfig', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, IssueStatus, IssueTableConfig, $filter) {
 
                 //  IssueListController vm, fn 蹂��닔 �긽�냽.
 
@@ -112,11 +112,11 @@
                     $scope.$parent.tableEvent.changeDetailView(issue.id);
                 }
 
-                // �븯�쐞 �씪媛� �궘�젣
+                // �븯�쐞 �씠�뒋 �궘�젣
                 function removeDownIssue(id) {
                     //  �궘�젣 �븣由�
                     SweetAlert.swal({
-                            title : $filter("translate")("issue.downIssueRemove"), // �뿰愿� �씪媛� �궘�젣
+                            title : $filter("translate")("issue.downIssueRemove"), // �븯�쐞 �씠�뒋 �궘�젣
                             text : $filter("translate")("issue.wantToDeleteSelectIssue"),
                             type : "warning",
                             showCancelButton : true,
@@ -154,11 +154,11 @@
 
                 }
 
-                // �뿰愿� �씪媛� �궘�젣
+                // �뿰愿� �씠�뒋 �궘�젣
                 function removeRelationIssue(id) {
                     //  �궘�젣 �븣由�
                     SweetAlert.swal({
-                            title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씪媛� �궘�젣
+                            title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씠�뒋 �궘�젣
                             text : $filter("translate")("issue.wantToDeleteSelectIssue"),
                             type : "warning",
                             showCancelButton : true,
@@ -204,7 +204,7 @@
                 //  �뀒�씠釉붿쓽 �뿰愿� �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎.
                 function setRelTableColumn(issueTableConfig) {
 
-                    //  �뿰愿� �씠�뒋  而щ읆
+                    //  �뿰愿� �씠�뒋 而щ읆
                     switch(issueTableConfig.key) {
                         case "RELATION_ISSUE_TYPE" :
                             $scope.vm.relTableConfigs.push($tableProvider.config()
@@ -278,6 +278,14 @@
                                 .setDAlign("text-center")
                                 .setDName("modifyDate"));
                             break;
+                        // default :"ISSUE_RELATION_DELETE" //  �뿰愿� �궘�젣
+                        //     $scope.vm.relTableConfigs.push($tableProvider.config()
+                        //         .setHName("issue.downIssueTitle")
+                        //         .setDType("renderer")
+                        //         .setHWidth("bold" + issueTableConfig.width)
+                        //         .setHSort(false)
+                        //         .setDRenderer("ISSUE_RELATION_DELETE"));
+                        //     break;
                     }
 
                     //  �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆
@@ -287,7 +295,7 @@
                             var customField = $scope.vm.customFields[count];
 
                             if (customField.id === Number(issueTableConfig.key.substring(13))) {
-                                $scope.vm.relTableConfigs.push($tableProvider.config()
+                                $scope.vm.tableConfigs.push($tableProvider.config()
                                     .setHName(customField.name)
                                     .setDType("renderer")
                                     .setHWidth("bold " + issueTableConfig.width)
@@ -307,7 +315,7 @@
 
                     //  �븯�쐞 �씠�뒋 而щ읆
                     switch(issueTableConfig.key) {
-                        case "DOWN_ISSUE_TITLE" :   //  �슦�꽑�닚�쐞
+                        case "DOWN_ISSUE_TITLE" :   //  �븯�쐞 �씠�뒋 �젣紐�
                             $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("issue.downIssueTitle")
                                 .setDType("renderer")
@@ -394,23 +402,28 @@
                 }
 
 
-
-
                 //  �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙
                 function makeRelTableConfigs() {
                     $scope.vm.relTableConfigs = [];
                     $scope.vm.relTableConfigs.push($tableProvider.config()
                         .setHName("issue.relationIssueType")
                         .setDType("renderer")
-                        .setHWidth("width-30 bold")
+                        .setHWidth("width-30-p bold")
                         .setHSort(false)
                         .setDRenderer("ISSUE_RELATION_TYPE"))
                     $scope.vm.relTableConfigs.push($tableProvider.config()
                         .setHName("issue.relationIssueTitle")
                         .setDType("renderer")
-                        .setHWidth("width-60 bold")
+                        .setHWidth("width-60-p bold")
                         .setHSort(false)
                         .setDRenderer("ISSUE_RELATION_MOVE"))
+                    $scope.vm.relTableConfigs.push($tableProvider.config()
+                        .setHName("issue.relationIssueDelete")
+                        .setDType("renderer")
+                        .setHWidth("width-20-p bold")
+                        .setDRenderer("ISSUE_RELATION_DELETE")
+                        .setHSort(false)
+                        .setDAlign("text-center"))
 
                     angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
                         //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
@@ -427,16 +440,17 @@
                     $scope.vm.downTableConfigs.push($tableProvider.config()
                         .setHName("issue.downIssueTitle")
                         .setDType("renderer")
-                        .setHWidth("width-60 bold")
+                        .setHWidth("width-60-p bold")
                         .setHSort(false)
                         .setDRenderer("ISSUE_DOWN_MOVE"))
                     $scope.vm.downTableConfigs.push($tableProvider.config()
                         .setHName("issue.relationIssueDelete")
                         .setDType("renderer")
-                        .setHWidth("width-10 bold")
+                        .setHWidth("width-20-p bold")
                         .setDRenderer("ISSUE_DOWN_DELETE")
                         .setHSort(false)
                         .setDAlign("text-center"))
+
                     angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) {
                         //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
                         if (issueTableConfig.display) {
@@ -462,19 +476,41 @@
                             //  �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
                             if ($rootScope.isDefined(issueTableConfigs)) {
                                 //  �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎.
+
                                 $scope.vm.issueRelTableConfigs = [];
                                 $scope.vm.issueRelTableConfigs = JSON.parse(issueTableConfigs);
                                 $scope.vm.issueRelTableConfigs.sort(function (a, b) {
                                     return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
                                 });
 
+                                $scope.vm.relTableConfigs = [];
+                                $scope.vm.relTableConfigs.push($tableProvider.config()
+                                    .setHName("issue.relationIssueType")
+                                    .setDType("renderer")
+                                    .setHWidth("width-30-p bold")
+                                    .setHSort(false)
+                                    .setDRenderer("ISSUE_RELATION_TYPE"))
+                                $scope.vm.relTableConfigs.push($tableProvider.config()
+                                    .setHName("issue.relationIssueTitle")
+                                    .setDType("renderer")
+                                    .setHWidth("width-60-p bold")
+                                    .setHSort(false)
+                                    .setDRenderer("ISSUE_RELATION_MOVE"))
                                 angular.forEach($scope.vm.issueRelTableConfigs, function (issueTableConfig) {
                                     //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
                                     if (issueTableConfig.display) {
                                         //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
                                         $scope.fn.setRelTableColumn(issueTableConfig);
+
                                     }
                                 });
+                                $scope.vm.relTableConfigs.push($tableProvider.config()
+                                    .setHName("issue.relationIssueDelete")
+                                    .setDType("renderer")
+                                    .setHWidth("width-20-p bold")
+                                    .setDRenderer("ISSUE_RELATION_DELETE")
+                                    .setHSort(false)
+                                    .setDAlign("text-center"))
 
                             } else {
                                 makeRelTableConfigs();
@@ -507,7 +543,13 @@
                                 $scope.vm.issueDownTableConfigs.sort(function (a, b) {
                                     return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
                                 });
-
+                                $scope.vm.downTableConfigs = [];
+                                $scope.vm.downTableConfigs.push($tableProvider.config()
+                                    .setHName("issue.downIssueTitle")
+                                    .setDType("renderer")
+                                    .setHWidth("width-60-p bold")
+                                    .setHSort(false)
+                                    .setDRenderer("ISSUE_DOWN_MOVE"))
                                 angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) {
                                     //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
                                     if (issueTableConfig.display) {
@@ -515,6 +557,13 @@
                                         $scope.fn.setDownTableColumn(issueTableConfig);
                                     }
                                 });
+                                $scope.vm.downTableConfigs.push($tableProvider.config()
+                                    .setHName("issue.relationIssueDelete")
+                                    .setDType("renderer")
+                                    .setHWidth("width-20-p bold")
+                                    .setDRenderer("ISSUE_DOWN_DELETE")
+                                    .setHSort(false)
+                                    .setDAlign("text-center"))
 
                             } else {
                                 makeDownTableConfigs();
@@ -541,7 +590,8 @@
                     var contents = {
                         relationIssueType : $scope.vm.relationIssueType.id,
                         issueId : $rootScope.currentDetailIssueId,
-                        relationIssueId : $scope.vm.form.issues[0].id
+                        relationIssueId : $scope.vm.form.issues[0].id,
+                        priorityName : $scope.vm.priorityName
                     };
 
                     IssueRelation.add($resourceProvider.getContent(
@@ -583,6 +633,12 @@
                         }
                     });
                 }
+
+                //  �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎.
+                $rootScope.$on("getIssueDetail", function (event, args) {
+                    $scope.vm.viewer.id = args["id"];
+                    $scope.fn.getIssueDetail();
+                });
 
                 //  �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.$on("getIssueDetail", function (event, args) {
@@ -660,7 +716,7 @@
                 //  �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
                 function addRelationIssueTableConfig() {
                     $uibModal.open({
-                        templateUrl : 'views/issue/issueRelationTableConfig.html',
+                        templateUrl : 'views/issue/issueAddRelationTableConfig.html',
                         size : "lg",
                         controller : 'issueAddRelationTableConfigController',
                         backdrop : 'static',
@@ -671,7 +727,7 @@
                 //  �븯�쐞 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
                 function addDownIssueTableConfig() {
                     $uibModal.open({
-                        templateUrl : 'views/issue/issueDownTableConfig.html',
+                        templateUrl : 'views/issue/issueAddDownTableConfig.html',
                         size : "lg",
                         controller : 'issueAddDownTableConfigController',
                         backdrop : 'static',
@@ -754,9 +810,14 @@
                                     $scope.vm.form.issuesDown.push(issueDownVo.issue);
                                 });
 
+                                // wyu
+                                angular.forEach(result.data.data.issueRelationVos, function (issueRelationColum){
+                                    issueRelationColum.issueRelation = $scope.vm.issueRelation;
+                                    $scope.vm.form.issues.push(issueRelationColum.issueRelation);
+                                });
+
                                 $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;
                                 $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos;
-
                             }
                         }
                         else {
@@ -765,6 +826,8 @@
                     });
                 }
 
+                // ===================================================================================
+
                 //  �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲�
                 function makePreviewImages(attachedFileVos) {
                     //  誘몃━蹂닿린 �씠誘몄� 珥덇린�솕
diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html
index 1b7b9f4..a4d4937 100644
--- a/src/main/webapp/views/issue/issueDetail.html
+++ b/src/main/webapp/views/issue/issueDetail.html
@@ -414,7 +414,7 @@
                     </div>
                 </div>
 
-                <!--    �뀒�씠釉� -->
+                <!--  �뿰愿� �씠�뒋 �뀒�씠釉� -->
                 <div class="mt-10 issue-detail-word-break width-100">
                     <js-table data="vm.viewer.issueRelationVos" table-configs="vm.relTableConfigs"
                               event="relTableEvent" detail-view="true" hide-header="false" use-sort="false"></js-table>
@@ -461,7 +461,7 @@
                     </div>
                 </div>
 
-                <!--    �뀒�씠釉� -->
+                <!-- �븯�쐞 �씠�뒋 �뀒�씠釉� -->
                 <div class="mt-10 issue-detail-word-break width-100">
                     <js-table data="vm.viewer.issueDownVos" table-configs="vm.downTableConfigs"
                               event="downTableEvent" detail-view="true" hide-header="false" use-sort="false"></js-table>

--
Gitblit v1.8.0