From 6ee7dd9c3d8cc211ee5a01bbe481cabbb9c890eb Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 월, 22 11월 2021 12:42:31 +0900
Subject: [PATCH] 이슈 상세 연관,하위 테이블 표시 설정 - [프론트]

---
 src/main/webapp/scripts/app/issue/issueAdd.controller.js |  250 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 213 insertions(+), 37 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
index 3345714..c08a3e0 100644
--- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -16,10 +16,13 @@
                 $scope.fn = {
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
-                    // formCheck : formCheck,  //  �뤌 泥댄겕
+                    formCheck : formCheck,  //  �뤌 泥댄겕
                     getUserListCallBack : getUserListCallBack,  //  �떞�떦�옄 autocomplete �럹�씠吏�
                     getProjectListCallBack : getProjectListCallBack,    //  �봽濡쒖젥�듃 autocomplete �럹�씠吏�
-                    getCompanyFieldListCallBack : getCompanyFieldListCallBack,    //  �봽濡쒖젥�듃 autocomplete �럹�씠吏�
+                    getIssueCompanyFieldListCallBack : getIssueCompanyFieldListCallBack,    // �뾽泥댁젙蹂� autocomplete �럹�씠吏�
+                    getIssueDepartmentListCallBack : getIssueDepartmentListCallBack,    // �떞�떦�옄 -> �떞�떦遺��꽌 autocomplete �럹�씠吏�
+                    getIssueIspFieldListCallBack : getIssueIspFieldListCallBack,    // ISP�젙蹂� autocomplete �럹�씠吏�
+                    getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack,    // �샇�뒪�똿�젙蹂� autocomplete �럹�씠吏�
                     getOptionColor : getOptionColor,    //  �슦�꽑�닚�쐞, 以묒슂�룄 �깋�긽�쑝濡� Select �깭洹� �쟻�슜
                     onFileSelect : onFileSelect,    //  �뙆�씪 泥⑤�
                     infiniteAddForm : infiniteAddForm,  //  怨꾩냽 �깮�꽦
@@ -30,9 +33,9 @@
                     getIssueTypeCustomFields : getIssueTypeCustomFields,    //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 媛��졇�삤湲�
                     removeUploadFile : removeUploadFile,    //  �뾽濡쒕뱶�븯�젮�뒗 �듅�젙 �뙆�씪�쓣 �궘�젣
                     removeManager : removeManager,  //  �떞�떦�옄 �궘�젣
+                    removeDepartment : removeDepartment,  //  �떞�떦遺��꽌 �궘�젣
                     setIssueTypeTemplate : setIssueTypeTemplate,    //  �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲�
-                    startExecute : startExecute, //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
-                    companyImport : companyImport
+                    startExecute : startExecute //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
                 };
 
                 $scope.vm = {
@@ -40,24 +43,44 @@
                         title : "",    //  �젣紐�
                         description : "",   //  �궡�슜
                         projects : [],  //  �봽濡쒖젥�듃
-                        companyFields : [],
+                        issueCompanyFields : [], // �뾽泥댁젙蹂�
+                        issueIspFields : [], // ISP �젙蹂�
+                        issueHostingFields : [], // �샇�뒪�똿�젙蹂�
                         issueTypeId : "",   //  �씠�뒋 �쑀�삎 �븘�씠�뵒
                         priorityId : "",    //  �슦�꽑�닚�쐞 �븘�씠�뵒
                         severityId : "",    //  以묒슂�룄 �븘�씠�뵒
                         users : [],     //  �떞�떦�옄
+                        departments : [], // �뵥�떦遺��꽌
                         files : [], //  �뾽濡쒕뱶 �뙆�씪
                         attachedFiles : [], //  �꽟癒몃끂�듃濡� �뙆�씪 �뾽濡쒕뱶瑜� �븷 寃쎌슦 �꽌踰꾩뿉�꽌 pk瑜� �뵲怨� issue id�� �뿰�룞 �옉�뾽�씠 �븘�슂�븯�떎.
                         startCompleteDateRange : "", //  �떆�옉�씪 ~ 醫낅즺�씪
+                        detectingDateRange : "", //  �깘吏��씪
                         issueCustomFields : []  //  �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶
                     },
                     infiniteAdd : false,    //  �뿰�냽 �깮�꽦
                     projectName : "",   //  �봽濡쒖젥�듃 紐� 寃��깋
-                    companyName : "",   //  �봽濡쒖젥�듃 紐� 寃��깋
                     userName : "",  //  �궗�슜�옄 寃��깋
-                    companyManager : "",   //�떞�떦�옄
-                    companyTel : "",  //�쟾�솕踰덊샇
-                    companyEmail : "",  //�씠硫붿씪
-                    companyDesc : "",  //鍮꾧퀬
+                    departmentName : "",  // 遺��꽌紐� 寃��깋
+                    companyId : -1, // 遺��꽌 ID
+                    companyName : "",   // �뾽泥대챸 寃��깋
+                    companyManager : "",   // �뾽泥� �떞�떦�옄
+                    companyTel : "",  // �뾽泥� �쟾�솕踰덊샇
+                    companyEmail : "",  // �뾽泥� �씠硫붿씪
+                    companyMemo : "",  // �뾽泥� 鍮꾧퀬
+                    ispId : -1, // ISP ID
+                    ispName : "", // ISP 紐�
+                    ispCode : "", // ISP 肄붾뱶
+                    ispManager : "", // ISP �떞�떦�옄
+                    ispTel : "", // ISP �쟾�솕踰덊샇
+                    ispEmail : "", // ISP �씠硫붿씪
+                    ispMemo : "", // ISP 鍮꾧퀬
+                    hostingId : -1, // �샇�뒪�똿 ID
+                    hostingName : "", // �샇�뒪�똿紐� 寃��깋
+                    hostingManager : "", // �샇�뒪�똿 �떞�떦�옄
+                    hostingTel : "", // �샇�뒪�똿 �쟾�솕踰덊샇
+                    hostingEmail : "", // �샇�뒪�똿 �씠硫붿씪
+                    hostingMemo :"", // �샇�뒪�똿 鍮꾧퀬
+
                     autoCompletePage : {
                         user : {
                             page : 0,
@@ -68,6 +91,18 @@
                             totalPage : 0
                         },
                         companyField : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        department : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        ispField : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        hostingField : {
                             page : 0,
                             totalPage : 0
                         }
@@ -83,7 +118,6 @@
                 };
 
                 angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
-
 
                 function getStartProjectListCallback(result){
                     //  �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃
@@ -104,15 +138,6 @@
                         $scope.fn.getIssueTypeCustomFields();
                     }
                 });
-
-                function companyImport() {
-                    $uibModal.open({
-                        templateUrl : 'views/issue/issueCompanyFieldDetail.html',
-                        size : "mg",
-                        controller : 'issueCompanyFieldDetailController',
-                        backdrop : 'static',
-                    });
-                }
 
                 //  �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶
                 function imageUpload($files) {
@@ -267,7 +292,12 @@
 
                 //  �떞�떦�옄 �궘�젣
                 function removeManager(index) {
-                    $scope.vm.form.users.splice(index, 1);
+                    $scope.vm.form.departments.splice(index, 1);
+                }
+
+                // �떞�떦遺��꽌 �궘�젣
+                function removeDepartment(index) {
+                    $scope.vm.form.departments.splice(index, 1);
                 }
 
                 //  �뾽濡쒕뱶 �뙆�씪 �궘�젣
@@ -289,22 +319,66 @@
                     $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage;
                 }
 
-                function getCompanyFieldListCallBack(result) {
-                    $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage;
+                //  �뾽泥댁젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueCompanyFieldListCallBack(result) {
+                    $scope.vm.autoCompletePage.companyField.totalPage = result.data.page.totalPage;
                 }
 
-                //  �뤌 泥댄겕
-                // function formCheck(formInvalid) {
-                //     if (formInvalid) {
-                //         return true;
-                //     }
-                //
-                //     if ($scope.vm.form.projects.length < 1) {
-                //         return true;
-                //     }
-                //
-                //     return false;
-                // }
+                // 遺��꽌�젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueDepartmentListCallBack(result) {
+                    $scope.vm.autoCompletePage.department.totalPage = result.data.page.totalPage;
+                }
+
+                // ISP�젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueIspFieldListCallBack(result) {
+                    $scope.vm.autoCompletePage.ispField.totalPage = result.data.page.totalPage;
+                }
+
+                // �샇�뒪�똿�젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueHostingFieldListCallBack(result) {
+                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
+                }
+
+                // �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+                    return false;
+                }
+
+                // �뾽泥댁젙蹂� 寃곌낵 媛� Event 泥섎━(set)
+                $scope.$on("companyFieldEvent", function (event, result) {
+                    $scope.vm.companyId = result[0].id;
+                    $scope.vm.companyName = result[0].id;
+                    $scope.vm.companyManager = result[0].manager;
+                    $scope.vm.companyTel = result[0].tel;
+                    $scope.vm.companyEmail = result[0].email;
+                    $scope.vm.companyMemo = result[0].memo;
+
+                });
+
+                // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set)
+                $scope.$on("ispFieldEvent", function (event, result) {
+                    $scope.vm.ispId = result[0].id;
+                    $scope.vm.ispName = result[0].name;
+                    $scope.vm.ispCode = result[0].code;
+                    $scope.vm.ispManager = result[0].manager;
+                    $scope.vm.ispTel = result[0].tel;
+                    $scope.vm.ispEmail = result[0].email;
+                    $scope.vm.ispMemo = result[0].memo;
+                });
+
+                // �샇�뒪�똿�젙蹂� 寃곌낵 媛� Event 泥섎━(set)
+                $scope.$on("hostingFieldEvent", function (event, result) {
+                    $scope.vm.hostingId = result[0].id;
+                    $scope.vm.hostingName = result[0].name;
+                    $scope.vm.hostingCode = result[0].code;
+                    $scope.vm.hostingManager = result[0].manager;
+                    $scope.vm.hostingTel = result[0].tel;
+                    $scope.vm.hostingEmail = result[0].email;
+                    $scope.vm.hostingMemo = result[0].memo;
+                });
 
                 //  �뤌 �쟾�넚
                 function formSubmit() {
@@ -313,6 +387,7 @@
                     var content = {
                         title : $rootScope.preventXss($scope.vm.form.title),    //  �젣紐�
                         description : $rootScope.preventXss($scope.vm.form.description),   //  �궡�슜
+
                         projectId : (function () {   //  �봽濡쒖젥�듃 �븘�씠�뵒
                             var projectId = "";
 
@@ -322,9 +397,35 @@
 
                             return projectId;
                         })(),
+
                         issueTypeId : $scope.vm.form.issueTypeId,   //  �씠�뒋 �쑀�삎 �븘�씠�뵒
                         priorityId : $scope.vm.form.priorityId,    //  �슦�꽑�닚�쐞 �븘�씠�뵒
                         severityId : $scope.vm.form.severityId,    //  以묒슂�룄 �븘�씠�뵒
+
+                        companyId : (function () {   //  �뾽泥� �븘�씠�뵒
+                            var companyId = -1;
+                            if ($scope.vm.form.issueCompanyFields.length > 0) {
+                                companyId = $scope.vm.form.issueCompanyFields[0].id;
+                            }
+                            return companyId;
+                        })(),
+
+                        ispId : (function () {  // ISP �븘�씠�뵒
+                            var ispId = -1;
+                            if ($scope.vm.form.issueIspFields.length > 0) {
+                                ispId = $scope.vm.form.issueIspFields[0].id;
+                            }
+                            return ispId;
+                        })(),
+
+                        hostingId : (function () {  // Hosting �븘�씠�뵒
+                            var hostingId = -1;
+                            if ($scope.vm.form.issueHostingFields.length > 0) {
+                                hostingId = $scope.vm.form.issueHostingFields[0].id;
+                            }
+                            return hostingId;
+                        })(),
+
                         userIds : (function () {
                             var userIds = [];
 
@@ -334,6 +435,17 @@
 
                             return userIds;
                         })(),
+
+                        departmentIds : (function () {
+                            var departmentIds = [];
+
+                            angular.forEach($scope.vm.form.departments, function (department) {
+                                departmentIds.push(department.id);
+                            });
+
+                            return departmentIds;
+                        })(),
+
                         attachedFileIds : (function () {
                             var attachedFileIds = [];
 
@@ -345,7 +457,71 @@
 
                             return attachedFileIds;
                         })(),
+
+                        issueCompanyFields : (function () {
+                            var issueCompanyFields = [];
+                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){
+                                var companyField = $scope.vm.form.issueCompanyFields[0];
+
+                                issueCompanyFields.push({
+                                    id : companyField.id,
+                                    companyId : $scope.vm.companyId,
+                                    name : $scope.vm.companyName,
+                                    manager : $scope.vm.companyManager,
+                                    tel : $scope.vm.companyTel,
+                                    email :$scope.vm.companyEmail,
+                                    memo : $scope.vm.companyMemo
+                                });
+                            }
+
+                            return issueCompanyFields;
+                        })(),
+
+                        issueIspFields : (function () {
+                            var issueIspFields = [];
+                            if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){
+                                var ispField = $scope.vm.form.issueIspFields[0];
+
+                                issueIspFields[0] = {
+                                    id : ispField.id,
+                                    ispId : $scope.vm.ispId,
+                                    name : $scope.vm.ispName,
+                                    code : $scope.vm.ispCode,
+                                    manager : $scope.vm.ispManager,
+                                    tel : $scope.vm.ispTel,
+                                    email :$scope.vm.ispEmail,
+                                    memo : $scope.vm.ispMemo
+                                };
+
+                            }
+
+                            return issueIspFields;
+                        })(),
+
+                        issueHostingFields : (function () {
+                            var issueHostingFields = [];
+                            if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){
+
+                                var hostingField = $scope.vm.form.issueHostingFields[0];
+
+                                issueHostingFields[0] = {
+                                    id : hostingField.id,
+                                    hostingId : $scope.vm.hostingId,
+                                    name : $scope.vm.hostingName,
+                                    code : $scope.vm.hostingCode,
+                                    manager : $scope.vm.hostingManager,
+                                    tel : $scope.vm.hostingTel,
+                                    email :$scope.vm.hostingEmail,
+                                    memo : $scope.vm.hostingMemo
+                                };
+                            }
+
+                            return issueHostingFields;
+                        })(),
+
                         startCompleteDateRange : $scope.vm.form.startCompleteDateRange,
+                        detectingDateRange : $scope.vm.form.detectingDateRange,
+
                         issueCustomFields : (function () {    //  �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶
                             var issueCustomFields = [];
 
@@ -371,7 +547,6 @@
                         })()
                     };
 
-
                     Issue.add({
                         method : "POST",
                         file : $scope.vm.form.files,
@@ -389,7 +564,7 @@
                                 else {
                                     $scope.fn.cancel();
 
-                                    if ($state.current.name !== "issues.list") {
+                                    if ($state.current.name !== "issues.list" || $state.current.name === "issues.list") {
                                         $state.go("issues.list");
                                     }
                                 }
@@ -566,6 +741,7 @@
 
                 //  理쒖큹 �떎�뻾
                 function startExecute() {
+
                     var promises = {
                         getIssueTypes : $scope.fn.getIssueTypes(),
                         getPriorities : $scope.fn.getPriorities(),

--
Gitblit v1.8.0