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

---
 src/main/webapp/scripts/app/issue/issueDetail.controller.js |  204 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 126 insertions(+), 78 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index de8343e..6c65f71 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -15,7 +15,7 @@
 
                 $scope.fn.getIssueDetail = getIssueDetail;  //  �씠�뒋 �긽�꽭 �젙蹂� 媛��졇�삤湲�
                 $scope.fn.setRelTableColumn = setRelTableColumn;
-                $scope.fn.setTableColumnDown = setTableColumnDown;
+                $scope.fn.setDownTableColumn = setDownTableColumn;
                 $scope.fn.addComment = addComment;  //  �뙎湲� �벑濡�
                 $scope.fn.removeComment = removeComment;    //  �뙎湲� �궘�젣
                 $scope.fn.getCommentList = getCommentList;  //  �뙎湲� 紐⑸줉 媛��졇�삤湲�
@@ -39,6 +39,7 @@
                 $scope.fn.addRelationIssueTableConfig = addRelationIssueTableConfig;      // �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
                 $scope.fn.addDownIssueTableConfig = addDownIssueTableConfig;      // �븯�쐞 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
                 $scope.fn.getRelTableConfigs = getRelTableConfigs;
+                $scope.fn.getDownTableConfigs = getDownTableConfigs;
 
                 //  �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以�
                 $scope.vm.viewer = {};
@@ -299,39 +300,23 @@
                     }
                 }
 
-                //  �븯�쐞 �씠�뒋 �뀒�씠釉� �꽕�젙
-                function makeTableConfigsDown() {
-                    $scope.vm.downTableConfigs = [];
-                    $scope.vm.downTableConfigs.push($tableProvider.config()
-                        .setHName("issue.downIssueTitle")
-                        .setDType("renderer")
-                        .setHWidth("width-60 bold")
-                        .setHSort(false)
-                        .setDRenderer("ISSUE_DOWN_MOVE"))
-                    $scope.vm.downTableConfigs.push($tableProvider.config()
-                        .setHName("issue.relationIssueDelete")
-                        .setDType("renderer")
-                        .setHWidth("width-10 bold")
-                        .setDRenderer("ISSUE_DOWN_DELETE")
-                        .setHSort(false)
-                        .setDAlign("text-center"))
-                    angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
-                        //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                        if (issueTableConfig.display) {
-                            //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                            $scope.fn.setTableColumnDown(issueTableConfig);
-                        }
-                    });
-                }
 
-                //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                function setTableColumnDown(issueTableConfig) {
-                    if (issueTableConfig == null) return;
+                //  �뀒�씠釉붿쓽 �븯�쐞 �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                function setDownTableColumn(issueTableConfig) {
+                    // if (issueTableConfig == null) return;
 
-                    //  �씪諛� 而щ읆
+                    //  �븯�쐞 �씠�뒋 而щ읆
                     switch(issueTableConfig.key) {
+                        case "DOWN_ISSUE_TITLE" :   //  �슦�꽑�닚�쐞
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                                .setHName("issue.downIssueTitle")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("ISSUE_DOWN_MOVE"));
+                            break;
                         case "PRIORITY" :   //  �슦�꽑�닚�쐞
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.priority")
                                 .setDName("priorityName")
                                 .setDType("renderer")
@@ -340,7 +325,7 @@
                                 .setDRenderer("COMMON_PRIORITY"));
                             break;
                         case "SEVERITY" :   //  以묒슂�룄
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.importance")
                                 .setDName("severityName")
                                 .setDType("renderer")
@@ -349,14 +334,14 @@
                                 .setDRenderer("COMMON_SEVERITY"));
                             break;
                         case "ISSUE_TYPE" : //  �씠�뒋 ���엯
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("issue.issueType")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDName("issueTypeName"));
                             break;
                         case "ASSIGNEE_TEAM" :   //  �떞�떦遺��꽌
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.assigneeTeam")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
@@ -364,7 +349,7 @@
                                 .setDRenderer("ISSUE_DEPARTMENT"));
                             break;
                         case "REGISTER" :   //  �벑濡앹옄
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.register")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
@@ -372,7 +357,7 @@
                                 .setDRenderer("REGISTER"));
                             break;
                         case "PERIOD" : //  湲곌컙
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.period")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
@@ -380,7 +365,7 @@
                                 .setDRenderer("ISSUE_DUE_DATE"));
                             break;
                         case "MODIFY_DATE" : //  理쒓렐 蹂�寃쎌씪
-                            $scope.vm.tableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                 .setHName("common.lastChangeDate")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -395,7 +380,7 @@
                             var customField = $scope.vm.customFields[count];
 
                             if (customField.id === Number(issueTableConfig.key.substring(13))) {
-                                $scope.vm.tableConfigs.push($tableProvider.config()
+                                $scope.vm.downTableConfigs.push($tableProvider.config()
                                     .setHName(customField.name)
                                     .setDType("renderer")
                                     .setHWidth("bold " + issueTableConfig.width)
@@ -408,8 +393,11 @@
                     }
                 }
 
+
+
+
                 //  �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙
-                function makeTableConfigs() {
+                function makeRelTableConfigs() {
                     $scope.vm.relTableConfigs = [];
                     $scope.vm.relTableConfigs.push($tableProvider.config()
                         .setHName("issue.relationIssueType")
@@ -424,7 +412,7 @@
                         .setHSort(false)
                         .setDRenderer("ISSUE_RELATION_MOVE"))
 
-                    angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
+                    angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
                         //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
                         if (issueTableConfig.display) {
                             //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
@@ -433,9 +421,32 @@
                     });
                 }
 
+                //  �븯�쐞 �씠�뒋 �뀒�씠釉� �꽕�젙
+                function makeDownTableConfigs() {
+                    $scope.vm.downTableConfigs = [];
+                    $scope.vm.downTableConfigs.push($tableProvider.config()
+                        .setHName("issue.downIssueTitle")
+                        .setDType("renderer")
+                        .setHWidth("width-60 bold")
+                        .setHSort(false)
+                        .setDRenderer("ISSUE_DOWN_MOVE"))
+                    $scope.vm.downTableConfigs.push($tableProvider.config()
+                        .setHName("issue.relationIssueDelete")
+                        .setDType("renderer")
+                        .setHWidth("width-10 bold")
+                        .setDRenderer("ISSUE_DOWN_DELETE")
+                        .setHSort(false)
+                        .setDAlign("text-center"))
+                    angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) {
+                        //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
+                        if (issueTableConfig.display) {
+                            //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                            $scope.fn.setDownTableColumn(issueTableConfig);
+                        }
+                    });
+                }
 
-
-
+                // �뿰愿� �씠�뒋 �긽�꽭 議고쉶
                 function getRelTableConfigs() {
                     var content = {
                         issueId : $scope.vm.viewer.id
@@ -466,7 +477,47 @@
                                 });
 
                             } else {
-                               makeTableConfigs();
+                                makeRelTableConfigs();
+                            }
+
+                        } else {
+                            SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "�씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �삤瑜�"
+                        }
+                    });
+                }
+
+                // �븯�쐞 �씠�뒋 �긽�꽭 議고쉶
+                function getDownTableConfigs() {
+                    var content = {
+                        issueId : $scope.vm.viewer.id
+                    };
+
+                    IssueTableConfig.downDetail($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            var issueTableConfigs = result.data.data;
+
+                            //  �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
+                            if ($rootScope.isDefined(issueTableConfigs)) {
+                                //  �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎.
+                                $scope.vm.issueDownTableConfigs = [];
+                                $scope.vm.issueDownTableConfigs = JSON.parse(issueTableConfigs);
+                                $scope.vm.issueDownTableConfigs.sort(function (a, b) {
+                                    return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
+                                });
+
+                                angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) {
+                                    //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
+                                    if (issueTableConfig.display) {
+                                        //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                                        $scope.fn.setDownTableColumn(issueTableConfig);
+                                    }
+                                });
+
+                            } else {
+                                makeDownTableConfigs();
                             }
 
                         }
@@ -474,10 +525,37 @@
                             SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "�씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �삤瑜�"
                         }
                     });
-
-
                 }
 
+
+
+
+                // �뿰愿� �씠�뒋 異붽�
+                function addRelationIssue() {
+                    if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0
+                        || $scope.vm.issueName != $scope.vm.form.issues[0].title) {
+                        SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), "");
+                        return;
+                    }
+
+                    var contents = {
+                        relationIssueType : $scope.vm.relationIssueType.id,
+                        issueId : $rootScope.currentDetailIssueId,
+                        relationIssueId : $scope.vm.form.issues[0].id
+                    };
+
+                    IssueRelation.add($resourceProvider.getContent(
+                        contents,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.getIssueDetail();
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣"
+                        }
+                    });
+                }
 
                 // �븯�쐞 �씠�뒋 異붽�
                 function addDownIssue() {
@@ -505,35 +583,6 @@
                         }
                     });
                 }
-
-
-                // �뿰愿� �씠�뒋 異붽�
-                function addRelationIssue() {
-                    if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0
-                    || $scope.vm.issueName != $scope.vm.form.issues[0].title) {
-                        SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), "");
-                        return;
-                    }
-
-                    var contents = {
-                        relationIssueType : $scope.vm.relationIssueType.id,
-                        issueId : $rootScope.currentDetailIssueId,
-                        relationIssueId : $scope.vm.form.issues[0].id
-                    };
-
-                    IssueRelation.add($resourceProvider.getContent(
-                        contents,
-                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
-
-                        if (result.data.message.status === "success") {
-                            $scope.fn.getIssueDetail();
-                        }
-                        else {
-                            SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣"
-                        }
-                    });
-                }
-
 
                 //  �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.$on("getIssueDetail", function (event, args) {
@@ -664,6 +713,7 @@
                     $scope.fn.initReload();
 
                     $scope.fn.getRelTableConfigs();
+                    $scope.fn.getDownTableConfigs();
 
                     Issue.detail($resourceProvider.getContent(
                         {id : $scope.vm.viewer.id, deep : "02"},
@@ -693,22 +743,20 @@
                                 $scope.vm.form.issuesDown = [];
                                 $scope.vm.form.issuesDown.push(result.data.data);
 
-                                // makeTableConfigs();
-                                // $scope.vm.relTableConfigs = result.data.relTableConfigs;
-
+                                // �뿰愿� �씠�뒋 諛섎났臾�
                                 angular.forEach(result.data.data.issueRelationVos, function (issueRelationVo){
                                     issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name;
                                     $scope.vm.form.issues.push(issueRelationVo.issueRelation);
                                 });
 
-                                // makeTableConfigsDown();
-                                // $scope.vm.downTableConfigs = result.data.downTableConfigs;
+                                // �븯�쐞 �씠�뒋 諛섎ぉ臾�
                                 angular.forEach(result.data.data.issueDownVos, function (issueDownVo){
                                     $scope.vm.form.issuesDown.push(issueDownVo.issue);
                                 });
 
                                 $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;
                                 $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos;
+
                             }
                         }
                         else {

--
Gitblit v1.8.0