From 7b4b71ee33c7a42383d3e6a69885d521fd7b6688 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 수, 08 12월 2021 17:25:23 +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 |  270 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 215 insertions(+), 55 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 0a51d11..006dc38 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -22,12 +22,14 @@
                     setTableColumn : setTableColumn,    //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
                     add : add,   //  �씠�뒋 �깮�꽦
                     modify : modify,    //  �씠�뒋 �닔�젙
+                    addRelationIssueForm : addRelationIssueForm,    //  �뿰愿� �씠�뒋 異붽�
                     modifyMultiIssueStatus : modifyMultiIssueStatus,    //  �씠�뒋 �떎以� �긽�깭 蹂�寃�
                     removes : removes,  //  �씠�뒋 �궘�젣
                     addIssueTableConfig : addIssueTableConfig,    //  �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙
                     listView : listView,    //  紐⑸줉 �솕硫댁쑝濡� 蹂�寃�
                     importExcel : importExcel,  //  �뿊�� import 湲곕뒫 �뙘�뾽 �샇異�
                     getIssueTypes : getIssueTypes,  //  �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎.
+                    getUsePartner : getUsePartner,  //  �씠�뒋 �쑀�삎 蹂� �궗�슜�븯�뒗 �뙆�듃�꼫 紐⑸줉�쓣 媛��졇�삩�떎.
                     getPriorities : getPriorities,  //  �슦�꽑�닚�쐞 紐⑸줉�쓣 媛��졇�삩�떎.
                     getSeverities : getSeverities,  //  以묒슂�룄 紐⑸줉�쓣 媛��졇�삩�떎.
                     getIssueStatuses : getIssueStatuses,    //  �씠�뒋 �긽�깭 紐⑸줉�쓣 媛��졇�삩�떎.
@@ -36,12 +38,16 @@
                     getVmSearchObject : getVmSearchObject,  //  ���옣�븳 寃��깋 議곌굔�쓣 媛��졇���꽌 vm �뿉 �뀑�똿�븳�떎.
                     makeSearchConditions : makeSearchConditions,    //  寃��깋 議곌굔�쓣 留뚮뱺�떎.
                     getIssueTableConfigs : getIssueTableConfigs,  //  �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
-                    startExecute : startExecute //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
+                    startExecute : startExecute, //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
+                    getResponseData : getResponseData //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
                 };
 
                 //  蹂��닔
                 $scope.vm = {
+                    issueTypeId : "",
+                    partnerVos : "",
                     search : {
+                        keyWord : "", //  �쟾泥� 寃��깋
                         title : "", //  �젣紐�
                         description : "",   //  �궡�슜
                         combinationIssueNumber : "",   //  �씠�뒋 踰덊샇
@@ -70,12 +76,15 @@
                     projects : [],  //  �봽濡쒖젥�듃
                     issueStatuses : [], //  �씠�뒋 �긽�깭
                     issueTypes : [],    //  �씠�뒋 �쑀�삎
+                    partners : [],    //  �씠�뒋 �쑀�삎
                     priorities : [],    //  �슦�꽑 �닚�쐞
                     severities : [],    //  以묒슂�룄
                     users : [], //  �떞�떦�옄
+                    departments : [], //  �떞�떦遺��꽌
                     registers : [], //  �벑濡앹옄
                     customFields : [],  //  �궗�슜�옄 �젙�쓽 �븘�뱶
-                    issueTableConfigs : []  //  �씠�뒋 �뀒�씠釉� �꽕�젙
+                    issueTableConfigs : [],  //  �씠�뒋 �뀒�씠釉� �꽕�젙
+                    parentIssueId : ""
                 };
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
@@ -95,14 +104,21 @@
                     $scope.fn.startExecute();
                 });
 
+                $scope.$on("changedIssueListMenu", function (event, args) {
+                    $scope.fn.getPageList($scope.vm.page.selectedPage - 1);
+                });
+
                 //  寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. - �쟻�슜 蹂대쪟
+                //  寃��깋 議곌굔�쓣 湲곗뼲�빐�꽌 �씠�뒋 �긽�꽭 �럹�씠吏�濡� �씠�룞
                 function makeVmSearchObject() {
                     var content = {
                         conditions : JSON.stringify({
                             search : $scope.vm.search,
                             projects : $scope.vm.projects,
                             users : $scope.vm.users,
-                            registers : $scope.vm.registers
+                            departments : $scope.vm.departments,
+                            registers : $scope.vm.registers,
+                            parentIssueId : $scope.vm.parentIssueId
                         })
                     };
 
@@ -128,9 +144,10 @@
                                 var issueListSearchObject = JSON.parse(result.data.data);
                                 //  �씠�뒋 踰덊샇留� �쟻�슜�븳�떎. - �궘�젣�떆 泥섎━諛⑸쾿�븣臾몄뿉 �떎瑜� �냽�꽦�� �쟻�슜 蹂대쪟
                                 $scope.vm.search = issueListSearchObject.search;
-                                /*$scope.vm.users = issueListSearchObject.users;
-                                $scope.vm.projects = issueListSearchObject.projects;
-                                $scope.vm.registers = issueListSearchObject.registers;*/
+                                // $scope.vm.users = issueListSearchObject.users;
+                                // $scope.vm.departments = issueListSearchObject.departments;
+                                // $scope.vm.projects = issueListSearchObject.projects;
+                                // $scope.vm.registers = issueListSearchObject.registers;
 
                                 $scope.fn.getPageList(0, true);
                             } else {
@@ -158,10 +175,11 @@
                     //  �쁽�옱 �긽�꽭�솕硫댁쑝濡� 蹂대젮怨좏븯�뒗 �씠�뒋 id瑜� 湲곗뼲�븳�떎.
                     $rootScope.currentDetailIssueId = id;
                     //  �씠�뒋 �긽�꽭 �솕硫� �슂泥�
-                    $rootScope.$broadcast("getIssueDetail", {
-                        id : id
-                    });
+                    // $scope.$broadcast("getIssueDetail", {
+                    //     id : id
+                    // });
                 }
+
 
                 //  紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎.
                 function listView() {
@@ -172,6 +190,7 @@
                     $scope.vm.responseData.data = angular.copy(temp);
                     //  留덉�留됱쑝濡� 蹂닿퀬�엳�뜕 �씠�뒋 id瑜� 珥덇린�솕�븳�떎.
                     $rootScope.currentDetailIssueId = null;
+                    $scope.$broadcast("getIssueList", {id: $rootScope.currentDetailIssueId});
                 }
 
                 //  �씠�뒋 �뀒�씠釉� �꽕�젙
@@ -184,30 +203,37 @@
                         .setDAlign("text-center"));
 
                     //  �긽�꽭�삎 �씪�븣�븣
-                   if ($scope.vm.detailView) {
-                        $scope.vm.tableConfigs.push($tableProvider.config()
-                            .setHName("issue.issueTitle")
-                            .setDName("title")
-                            .setDType("renderer")
-                            .setHWidth("width-100 bold")
-                            .setDRenderer("ISSUE_DETAIL_FLOATING"));
-                    }
-                    else {
-                       $scope.vm.tableConfigs.push($tableProvider.config()
-                           .setHName("issue.issueTitle")
-                           .setDName("title")
-                           .setDType("renderer")
-                           .setHWidth("bold")
-                           .setDRenderer("ISSUE_DETAIL_FLOATING"));
-
-                        angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
-                            //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                            if (issueTableConfig.display) {
-                                //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                                $scope.fn.setTableColumn(issueTableConfig);
-                            }
-                        });
-                    }
+                   // if ($scope.vm.detailView) {
+                   //      $scope.vm.tableConfigs.push($tableProvider.config()
+                   //          .setHName("issue.issueTitle")
+                   //          .setDName("title")
+                   //          .setDType("renderer")
+                   //          .setHWidth("bold")
+                   //          .setDRenderer("ISSUE_DETAIL_FLOATING"));
+                   //  }
+                   //  else {
+                   //     $scope.vm.tableConfigs.push($tableProvider.config()
+                   //         .setHName("issue.issueTitle")
+                   //         .setDName("title")
+                   //         .setDType("renderer")
+                   //         .setHWidth("bold")
+                   //         .setDRenderer("ISSUE_DETAIL_FLOATING"));
+                   //
+                   //      angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
+                   //          //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
+                   //          if (issueTableConfig.display) {
+                   //              //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                   //              $scope.fn.setTableColumn(issueTableConfig);
+                   //          }
+                   //      });
+                   //  }
+                    angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
+                        //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
+                        if (issueTableConfig.display) {
+                            //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
+                            $scope.fn.setTableColumn(issueTableConfig);
+                        }
+                    });
                 }
 
                 //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
@@ -215,6 +241,15 @@
 
                     //  �씪諛� 而щ읆
                     switch(issueTableConfig.key) {
+                        case "ISSUE_TITLE" :   //  �씠�뒋 �젣紐�
+                            $scope.vm.tableConfigs.push($tableProvider.config()
+                                .setHName("issue.issueTitle")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("ISSUE_TITLE"));
+                            break;
+
                         case "PRIORITY" :   //  �슦�꽑�닚�쐞
                             $scope.vm.tableConfigs.push($tableProvider.config()
                                 .setHName("common.priority")
@@ -240,13 +275,13 @@
                                 .setDAlign("text-center")
                                 .setDName("issueTypeName"));
                             break;
-                        case "ASSIGNEE" :   //  �떞�떦�옄
+                        case "ASSIGNEE_TEAM" :   //  �떞�떦遺��꽌
                             $scope.vm.tableConfigs.push($tableProvider.config()
-                                .setHName("common.assignee")
+                                .setHName("common.assigneeTeam")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
-                                .setDRenderer("ISSUE_USER"));
+                                .setDRenderer("ISSUE_DEPARTMENT"));
                             break;
                         case "REGISTER" :   //  �벑濡앹옄
                             $scope.vm.tableConfigs.push($tableProvider.config()
@@ -270,6 +305,14 @@
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDName("modifyDate"));
+                            break;
+                        case "COUNT_DOWN_ISSUE" : //  �븯�쐞 �씠�뒋 媛쒖닔
+                            $scope.vm.tableConfigs.push($tableProvider.config()
+                                .setHName("common.countDownIssue")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("DOWN_ISSUE_COUNT"));
                             break;
                     }
 
@@ -311,6 +354,7 @@
                 //  �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎.
                 function makeSearchConditions() {
                     var conditions = {
+                        keyWord : $scope.vm.search.keyWord,
                         title : $scope.vm.search.title,
                         description : $scope.vm.search.description,
                         projectType : $scope.vm.search.projectType,
@@ -374,6 +418,15 @@
                             });
 
                             return userIds;
+                        })(),
+                        departmentIds : (function () {
+                            var departmentIds = [];
+
+                            angular.forEach($scope.vm.departments, function (department) {
+                                departmentIds.push(department.id);
+                            });
+
+                            return departmentIds;
                         })(),
                         registerIds : (function () {
                             var registerIds = [];
@@ -451,6 +504,7 @@
                     // 硫붾돱�뿉�꽌 �꽑�깮�맂 �씠�뒋 �쑀�삎�쓣 湲곕낯�쑝濡� 異붽�
                     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
@@ -465,6 +519,7 @@
                     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);
                         }
                     }
@@ -476,9 +531,49 @@
                         $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
 
                         if (result.data.message.status === "success") {
-                            $scope.vm.page.selectedPage = currentPage + 1;
-                            $scope.vm.responseData = result.data;
-                            if (detail) {
+                            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;
+                                $scope.vm.issueNumber = result.data.data[0].issueNumber;
+                                $scope.vm.projectName = result.data.data[0].projectName;
+                                $scope.vm.page.selectedPage = currentPage + 1;
+                                $scope.vm.responseData = result.data;
+
+                                if (detail) {
+                                    changeDetailView(result.data.data[0].id);
+                                }
+                            } else {
+                                $scope.vm.responseData = result.data;
+                            }
+
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣
+                        }
+
+                    });
+                }
+
+                function getResponseData() {
+                    return $scope.data;
+                }
+
+                // �씠硫붿씪 �봽濡쒖젥�듃 寃쎈줈濡� �씠�룞 �썑 �긽�꽭 吏꾩엯�떆 議고쉶
+                function getDetailList(projectKey, number) {
+                    var conditions = {
+                        projectKey : projectKey,
+                        combinationIssueNumber : number
+                    };
+
+                    Issue.find($resourceProvider.getContent(conditions,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            if (result.data.data !=  null && result.data.data.length > 0) {
+                                $scope.vm.projectKey = result.data.data[0].projectKey;
+                                $scope.vm.issueNumber = result.data.data[0].issueNumber;
+                                $scope.vm.responseData = result.data;
+
                                 changeDetailView(result.data.data[0].id);
                             }
                         }
@@ -567,7 +662,23 @@
                         resolve : {
                             parameter : function () {
                                 return {
-                                    id : id
+                                    id : id,
+                                };
+                            }
+                        }
+                    });
+                }
+
+                function addRelationIssueForm(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/issue/issueAddRelation.html',
+                        size : "lg",
+                        controller : 'issueAddRelationController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id,
                                 };
                             }
                         }
@@ -658,7 +769,13 @@
                         size : "lg",
                         controller : 'issueAddTableConfigController',
                         backdrop : 'static',
-                        resolve : {}
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    issueTypeId : $scope.vm.issueTypeId
+                                };
+                            }
+                        }
                     });
                 }
 
@@ -704,6 +821,26 @@
                         }
                         else {
                             SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣
+                        }
+
+                        deferred.resolve(result.data.data);
+                    });
+
+                    return deferred.promise;
+                }
+
+                //  �씠�뒋�쑀�삎 蹂� �뙆�듃�꼫 紐⑸줉
+                function getUsePartner() {
+                    var deferred = $q.defer();
+                    $scope.vm.partners = [];
+
+                    Issue.findPartners($resourceProvider.getContent({},
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            $scope.vm.partnerVos = result.data.content;
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣
                         }
 
                         deferred.resolve(result.data.data);
@@ -774,6 +911,12 @@
                             angular.forEach(result.data.data, function (customField) {
                                 switch (customField.customFieldType) {
                                     case "INPUT" :
+                                    case "NUMBER" :
+                                    case "DATETIME" :
+                                    case "IP_ADDRESS" :
+                                    case "EMAIL" :
+                                    case "SITE" :
+                                    case "TEL" :
                                         customField.useValues = "";
                                         break;
 
@@ -781,6 +924,7 @@
                                     case "SINGLE_SELECT" :
                                         customField.useValues = [];
                                         break;
+
                                 }
 
                                 $scope.vm.customFields.push(customField);
@@ -797,17 +941,24 @@
                 }
 
                 //  �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
+
                 function getIssueTableConfigs() {
                     var deferred = $q.defer();
 
-                    IssueTableConfig.detail($resourceProvider.getContent({},
-                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
-                        if (result.data.message.status !== "success") {
-                            SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣
-                        }
+                    if ($rootScope.issueTypeMenu != null){
+                        var content = {
+                            issueTypeId : $rootScope.issueTypeMenu.id
+                            }
 
-                        deferred.resolve(result.data.data);
-                    });
+                        IssueTableConfig.detail($resourceProvider.getContent(content,
+                            $resourceProvider.getPageContent(0, 1000))).then(function (result) {
+                            if (result.data.message.status !== "success") {
+                                SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣
+                            }
+
+                            deferred.resolve(result.data.data);
+                        });
+                    }
 
                     return deferred.promise;
                 }
@@ -817,8 +968,10 @@
                     // �뙆�씪誘명꽣 �씫湲�
                     var params = $rootScope.previousGetParams;
                     if ($rootScope.isDefined(params)) {
-                        $rootScope.$broadcast("makeIssueSearch", {  projectKey : params.projectKey, issueNumber : params.issueNumber });
+                        // $rootScope.$broadcast("makeIssueSearch", {  projectKey : params.projectKey, issueNumber : params.issueNumber });
+                        getDetailList(params.projectKey, params.issueNumber);
                         $rootScope.previousGetParams = null;
+                        // $rootScope.issueTypeId = $rootScope.issueTypeMenu.id;
                         return;
                     }
 
@@ -848,28 +1001,34 @@
                             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 : 1,
+                                    position : 2,
                                     display : true
                                 }, {
                                     name : $filter("translate")("common.importance"), // 以묒슂�룄
                                     key : "SEVERITY",
                                     width : "width-80-p",
-                                    position : 2,
+                                    position : 3,
                                     display : true
                                 }, {
                                     name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯
                                     key : "ISSUE_TYPE",
                                     width : "width-140-p",
-                                    position : 3,
+                                    position : 4,
                                     display : true
                                 }, {
-                                    name : $filter("translate")("common.assignee"), // �떞�떦�옄
-                                    key : "ASSIGNEE",
+                                    name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
+                                    key : "ASSIGNEE_TEAM",
                                     width : "width-140-p",
-                                    position : 4,
+                                    position : 5,
                                     display : true
                                 }];
                             }
@@ -884,6 +1043,7 @@
 
                 $scope.fn.startExecute();
             }
+
         ]);
     }
 );

--
Gitblit v1.8.0