From 13df3419f367b1448a844120840459a17df02f3a Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 21 12월 2021 11:17:02 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/webapp/scripts/app/issue/issueList.controller.js |  288 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 227 insertions(+), 61 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 7cbdfe6..5ce58c6 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -8,9 +8,9 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('issueListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q',
+        app.controller('issueListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$treeProvider', '$state', '$uibModal', '$q',
             '$controller', '$injector', 'SweetAlert', 'Issue', 'IssueType', 'Priority', 'Severity', 'IssueStatus', 'CustomField', 'IssueSearch', 'IssueTableConfig', '$timeout', '$filter',
-            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, Issue, IssueType, Priority, Severity, IssueStatus, CustomField,
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $treeProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, Issue, IssueType, Priority, Severity, IssueStatus, CustomField,
                       IssueSearch, IssueTableConfig, $timeout, $filter) {
 
                 //  �븿�닔
@@ -20,9 +20,11 @@
                     changePageRowCount : changePageRowCount,    //  �럹�씠吏� 蹂�寃�
                     makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
                     setTableColumn : setTableColumn,    //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                    setTreeColumn : setTreeColumn,
                     add : add,   //  �씠�뒋 �깮�꽦
                     modify : modify,    //  �씠�뒋 �닔�젙
                     addRelationIssueForm : addRelationIssueForm,    //  �뿰愿� �씠�뒋 異붽�
+                    addDownIssueForm : addDownIssueForm,    //  �븯�쐞 �씠�뒋 異붽�
                     modifyMultiIssueStatus : modifyMultiIssueStatus,    //  �씠�뒋 �떎以� �긽�깭 蹂�寃�
                     removes : removes,  //  �씠�뒋 �궘�젣
                     addIssueTableConfig : addIssueTableConfig,    //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
@@ -39,11 +41,14 @@
                     makeSearchConditions : makeSearchConditions,    //  寃��깋 議곌굔�쓣 留뚮뱺�떎.
                     getIssueTableConfigs : getIssueTableConfigs,  //  �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
                     startExecute : startExecute, //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
-                    getResponseData : getResponseData //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
+                    getResponseData : getResponseData, //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
+                    onClickListMode : onClickListMode,   // 由ъ뒪�듃 紐⑤뱶 蹂�寃쎌떆 �떎�뻾�릺�뒗 �븿�닔
+                    setDefaultTableConfig : setDefaultTableConfig // 湲곕낯 �뀒�씠釉� �꽕�젙 �꽭�똿
                 };
 
                 //  蹂��닔
                 $scope.vm = {
+                    projectId : "",
                     issueTypeId : "",
                     partnerVos : "",
                     search : {
@@ -67,6 +72,7 @@
                         selectedPageRowCount : String(10)
                     },
                     tableConfigs : [],  //  �뀒�씠釉� �뀑�똿 �젙蹂�
+                    treeConfigs : [], // �듃由� �뀑�똿 �젙蹂�
                     responseData : {
                         data : []
                     },
@@ -84,8 +90,11 @@
                     registers : [], //  �벑濡앹옄
                     customFields : [],  //  �궗�슜�옄 �젙�쓽 �븘�뱶
                     issueTableConfigs : [],  //  �씠�뒋 �뀒�씠釉� �꽕�젙
+                    issueTreeConfigs : [],  //  �씠�뒋 �뀒�씠釉� �꽕�젙
                     parentIssueId : "",
-                    hideIssue : false
+                    hideCompleteIssue : false,
+                    hideDownIssue : true,
+                    listMode : 0, // 紐⑸줉 紐⑤뱶 0:湲곕낯 由ъ뒪�듃 1:�듃由ш뎄議� 由ъ뒪�듃
                 };
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
@@ -95,10 +104,20 @@
 
                 angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
 
+                // �씠�뒋紐⑸줉 �깉濡쒓퀬移� 紐⑸줉 媛깆떊
+                $scope.$on("findIssueListOK", function (event, args) {
+                    if (args != null) {
+                        $scope.fn.startExecute();
+                    }
+                });
+
                 //  �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊
                 $scope.$on("getIssueList", function () {
                     $scope.fn.getPageList($scope.vm.page.selectedPage - 1);
                 });
+
+                // �씠�뒋 紐⑸줉 �깉濡쒓퀬移�
+                $rootScope.$on("getIssueList", function (event, args) {})
 
                 //  �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂� 媛깆떊
                 $scope.$on("getIssueTableConfigs", function () {
@@ -107,6 +126,12 @@
 
                 $scope.$on("changedIssueListMenu", function (event, args) {
                     $scope.fn.getPageList($scope.vm.page.selectedPage - 1);
+                });
+
+                // �긽�떒 寃��깋�떆
+                $scope.$on("searchIssueList", function (event, args) {
+                    $scope.vm.search.keyWord = args.keyWord;
+                    $scope.fn.getPageList(0);
                 });
 
                 //  寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. - �쟻�슜 蹂대쪟
@@ -197,6 +222,7 @@
                 //  �씠�뒋 �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
                     $scope.vm.tableConfigs = [];
+                    $scope.vm.treeConfigs = [];
 
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setDType("checkbox")
@@ -233,8 +259,69 @@
                         if (issueTableConfig.display) {
                             //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
                             $scope.fn.setTableColumn(issueTableConfig);
+                            $scope.fn.setTreeColumn(issueTableConfig);
                         }
                     });
+                }
+
+                //  �듃由� 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                function setTreeColumn(issueTableConfig) {
+                    //  �씪諛� 而щ읆
+                    switch(issueTableConfig.key) {
+                        case "ISSUE_TITLE" :   //  �씠�뒋 �젣紐�
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("title"));
+                            break;
+
+                        case "PRIORITY" :   //  �슦�꽑�닚�쐞
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("priorityName"));
+                            break;
+                        case "SEVERITY" :   //  以묒슂�룄
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("severityName"));
+                            break;
+                        case "ISSUE_TYPE" : //  �씠�뒋 ���엯
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("issueTypeName"));
+                            break;
+                        case "ASSIGNEE_TEAM" :   //  �떞�떦遺��꽌
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("assigneeTeam"));
+                            break;
+                        case "REGISTER" :   //  �벑濡앹옄
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("register"));
+                            break;
+                        case "PERIOD" : //  湲곌컙
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("period"));
+                            break;
+                        case "MODIFY_DATE" : //  理쒓렐 蹂�寃쎌씪
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("modifyDate"));
+                            break;
+                        case "COUNT_DOWN_ISSUE" : //  �븯�쐞 �씠�뒋 媛쒖닔
+                            $scope.vm.treeConfigs.push($treeProvider.config()
+                                .setDName("countDownIssue"));
+                            break;
+                    }
+
+                    //  �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆
+                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
+                        //  留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣
+                        for (var count in $scope.vm.customFields) {
+                            var customField = $scope.vm.customFields[count];
+
+                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
+                                $scope.vm.treeConfigs.push($treeProvider.config()
+                                    .setDType("CUSTOM_FIELD")
+                                    .setDName(customField.id)
+                                    .setColumnHint(customField));
+                                break;
+                            }
+                        }
+                    }
                 }
 
                 //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
@@ -245,6 +332,7 @@
                         case "ISSUE_TITLE" :   //  �씠�뒋 �젣紐�
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("issue.issueTitle")
+                                .setDName("issueTitle")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -254,7 +342,7 @@
                         case "PRIORITY" :   //  �슦�꽑�닚�쐞
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.priority")
-                                .setDName("priorityName")
+                                .setDName("priority")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -263,22 +351,25 @@
                         case "SEVERITY" :   //  以묒슂�룄
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.importance")
-                                .setDName("severityName")
+                                .setDName("severity")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("COMMON_SEVERITY"));
                             break;
-                        case "ISSUE_TYPE" : //  �씠�뒋 ���엯
+                        case "ISSUE_TYPE" : //  �씠�뒋 �쑀�삎
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("issue.issueType")
+                                .setDName("issueType")
+                                .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
-                                .setDName("issueTypeName"));
+                                .setDRenderer("COMMON_ISSUE_TYPE"));
                             break;
                         case "ASSIGNEE_TEAM" :   //  �떞�떦遺��꽌
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.assigneeTeam")
+                                .setDName("assigneeTeam")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -287,6 +378,7 @@
                         case "REGISTER" :   //  �벑濡앹옄
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.register")
+                                .setDName("register")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -295,6 +387,7 @@
                         case "PERIOD" : //  湲곌컙
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.period")
+                                .setDName("period")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -310,6 +403,7 @@
                         case "COUNT_DOWN_ISSUE" : //  �븯�쐞 �씠�뒋 媛쒖닔
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.countDownIssue")
+                                .setDName("countDownIssue")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -327,6 +421,7 @@
                                 $scope.vm.tableConfigs.push($tableProvider.config()
                                     .setHName(customField.name)
                                     .setDType("renderer")
+                                    .setDName("customFieldName" + [count])
                                     .setHWidth("bold " + issueTableConfig.width)
                                     .setDAlign("text-center")
                                     .setColumnHint(customField)
@@ -366,7 +461,9 @@
                         endStartDate : "",
                         beginCompleteDate : "",
                         endCompleteDate : "",
-                        hideIssue : $scope.vm.hideIssue,
+                        hideCompleteIssue: $scope.vm.hideCompleteIssue,
+                        hideDownIssue : $scope.vm.hideDownIssue,
+                        isTree : $scope.vm.listMode === 1,
                         projectIds : (function () {
                             var projectIds = [];
 
@@ -487,14 +584,23 @@
                     return conditions;
                 }
 
+                function getTreeList() {
+
+                }
+
                 //  �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎.
                 function getPageList(selectedPage, detail = false) {
+                    $rootScope.spinner = true;  //  �봽濡쒓렇�옒�뒪 諛�
                     if (selectedPage < 0) {
                         selectedPage = 0;
                     }
 
-                    if ($scope.vm.hideIssue) {
-                        $scope.vm.hideIssue = true;
+                    if ($scope.vm.hideCompleteIssue) {
+                        $scope.vm.hideCompleteIssue = true;
+                    }
+
+                    if ($scope.vm.hideDownIssue) {
+                        $scope.vm.hideDownIssue = true;
                     }
                     //  �쁽�옱 �럹�씠吏� �젙蹂�
                     var currentPage = 0;
@@ -507,26 +613,29 @@
                         currentPage = selectedPage;
                     }
 
-                    // 硫붾돱�뿉�꽌 �꽑�깮�맂 �씠�뒋 �쑀�삎�쓣 湲곕낯�쑝濡� 異붽�
-                    if ($rootScope.issueTypeMenu != null) {
-                        // $scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
-                        $scope.vm.search.issueTypeIds = [];
-                        $scope.vm.search.issueTypeIds.push({
-                            fieldKey : $rootScope.issueTypeMenu.id,
-                            fieldValue : $rootScope.issueTypeMenu.name
-                        });
-                    }
+                    // 寃��깋 湲곕낯媛� �꽭�똿
+                    $scope.vm.search.issueTypeIds = [];
+                    $scope.vm.projects = [];
+                    if (!$rootScope.isMainSearch) {
+                        // 硫붾돱�뿉�꽌 �꽑�깮�맂 �씠�뒋 �쑀�삎�쓣 湲곕낯�쑝濡� 異붽�
+                        if ($rootScope.issueTypeMenu != null) {
+                            //$scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
 
-                    //  寃��깋 議곌굔�쓣 ���옣�븳�떎.
-                    //$scope.fn.makeVmSearchObject();
+                            $scope.vm.search.issueTypeIds.push({
+                                fieldKey: $rootScope.issueTypeMenu.id,
+                                fieldValue: $rootScope.issueTypeMenu.name
+                            });
+                        }
 
+                        //  寃��깋 議곌굔�쓣 ���옣�븳�떎.
+                        //$scope.fn.makeVmSearchObject();
 
-                    // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽�
-                    if ($rootScope.workProject != null && $rootScope.workProject.id > -1) {
-                        var find = findProjectSearch($rootScope.workProject.id);
-                        if (!find) {
-                            $scope.vm.projects = [];
-                            $scope.vm.projects.push($rootScope.workProject);
+                        // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽�
+                        if ($rootScope.workProject != null && $rootScope.workProject.id > -1) {
+                            var find = findProjectSearch($rootScope.workProject.id);
+                            if (!find) {
+                                $scope.vm.projects.push($rootScope.workProject);
+                            }
                         }
                     }
 
@@ -537,6 +646,21 @@
                         $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
 
                         if (result.data.message.status === "success") {
+                            if (result.data.data !=  null && result.data.data.length > 0) {
+                                //var resultSize = result.data.data.length;
+                                for (var i = 0; i < result.data.data.length; i++) {
+                                    /*if (result.data.data[i].parentIssueId != null) {//�븯�쐞�씠�뒋�뒗 由ъ뒪�듃�뿉�꽌 �궘�젣
+                                        result.data.data.splice(i, 1);
+                                        i--;
+                                    }else*/
+                                    if ($scope.vm.search.issueTypeIds !== null && $scope.vm.search.issueTypeIds.length > 0
+                                                && result.data.data[i].issueTypeId !== $scope.vm.search.issueTypeIds[0].fieldKey) { //�씠�뒋���엯 泥댄겕
+                                        result.data.data.splice(i, 1);
+                                        i--;
+                                    }
+                                }
+                            }
+
                             if (result.data.data !=  null && result.data.data.length > 0) {
                                 $scope.vm.issueTypeId = result.data.data[0].issueTypeId;
                                 $scope.vm.projectKey = result.data.data[0].projectKey;
@@ -556,6 +680,7 @@
                         else {
                             SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣
                         }
+                        $rootScope.spinner = false;  //  �봽濡쒓렇�옒�뒪 諛�
 
                     });
                 }
@@ -635,6 +760,7 @@
                     angular.forEach($scope.vm.responseData.data, function (data) {
                         if (data.checked) {
                             issueIds.push(data.id);
+                            $scope.vm.projectId = data.projectId;
                         }
                     });
 
@@ -651,7 +777,8 @@
                         resolve : {
                             parameter : function () {
                                 return {
-                                    issueIds : issueIds
+                                    issueIds : issueIds,
+                                    projectId : $scope.vm.projectId
                                 };
                             }
                         }
@@ -680,6 +807,22 @@
                         templateUrl : 'views/issue/issueAddRelation.html',
                         size : "lg",
                         controller : 'issueAddRelationController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id,
+                                };
+                            }
+                        }
+                    });
+                }
+
+                function addDownIssueForm(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/issue/issueAddDown.html',
+                        size : "lg",
+                        controller : 'issueAddDownController',
                         backdrop : 'static',
                         resolve : {
                             parameter : function () {
@@ -1055,6 +1198,54 @@
                     return deferred.promise;
                 }
 
+                // 由ъ뒪�듃 紐⑤뱶 蹂�寃쎌떆 �떎�뻾
+                function onClickListMode(listMode) {
+                    if ($scope.vm.listMode !== listMode) {
+                        $scope.vm.listMode = listMode;
+
+                        if ($scope.vm.listMode === 0) {
+                            $scope.fn.getPageList(0);
+                        } else {
+                            $scope.fn.getPageList(0);
+                        }
+                    }
+                }
+
+                function setDefaultTableConfig() {
+                    //  理쒖큹 �뾽臾� 怨듦컙�뿉 �뱾�뼱�솕�쓣 寃쎌슦
+                    $scope.vm.issueTableConfigs = [{
+                        name : $filter("translate")("issue.issueTitle"), // �씠�뒋 �젣紐�
+                        key : "ISSUE_TITLE",
+                        width : "width-140-p",
+                        position : 1,
+                        display : true
+                    }, {
+                        name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
+                        key : "PRIORITY",
+                        width : "width-80-p",
+                        position : 2,
+                        display : true
+                    }, {
+                        name : $filter("translate")("common.importance"), // 以묒슂�룄
+                        key : "SEVERITY",
+                        width : "width-80-p",
+                        position : 3,
+                        display : true
+                    }, {
+                        name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯
+                        key : "ISSUE_TYPE",
+                        width : "width-140-p",
+                        position : 4,
+                        display : true
+                    }, {
+                        name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
+                        key : "ASSIGNEE_TEAM",
+                        width : "width-140-p",
+                        position : 5,
+                        display : true
+                    }];
+                }
+
                 //  理쒖큹 �떎�뻾
                 function startExecute() {
                     // �뙆�씪誘명꽣 �씫湲�
@@ -1091,38 +1282,7 @@
                                 });
                             }
                             else {
-                                //  理쒖큹 �뾽臾� 怨듦컙�뿉 �뱾�뼱�솕�쓣 寃쎌슦
-                                $scope.vm.issueTableConfigs = [{
-                                    name : $filter("translate")("issue.issueTitle"), // �씠�뒋 �젣紐�
-                                    key : "ISSUE_TITLE",
-                                    width : "width-140-p",
-                                    position : 1,
-                                    display : true
-                                }, {
-                                    name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞
-                                    key : "PRIORITY",
-                                    width : "width-80-p",
-                                    position : 2,
-                                    display : true
-                                }, {
-                                    name : $filter("translate")("common.importance"), // 以묒슂�룄
-                                    key : "SEVERITY",
-                                    width : "width-80-p",
-                                    position : 3,
-                                    display : true
-                                }, {
-                                    name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯
-                                    key : "ISSUE_TYPE",
-                                    width : "width-140-p",
-                                    position : 4,
-                                    display : true
-                                }, {
-                                    name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
-                                    key : "ASSIGNEE_TEAM",
-                                    width : "width-140-p",
-                                    position : 5,
-                                    display : true
-                                }];
+                                $scope.fn.setDefaultTableConfig();
                             }
 
                             //  �씠�뒋 �뀒�씠釉� �꽕�젙
@@ -1133,6 +1293,12 @@
                     });
                 }
 
+                // this.router.navigate(['path/to'])
+                //     .then(() => {
+                //         window.location.reload();
+                //     });
+
+
                 $scope.fn.startExecute();
             }
 

--
Gitblit v1.8.0