From 1dad4d94cc415d2f8092aff0368744289337f504 Mon Sep 17 00:00:00 2001
From: 박지현 <jhpark@maprex.co.kr>
Date: 화, 22 2월 2022 14:29:43 +0900
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/webapp/scripts/app/issue/issueModify.controller.js |  286 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 189 insertions(+), 97 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js
index fbbc251..39d20af 100644
--- a/src/main/webapp/scripts/app/issue/issueModify.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -169,6 +169,9 @@
                     priorities : [],    //  �슦�꽑�닚�쐞 �젙蹂�
                     severities : [],    //  以묒슂�룄 �젙蹂�
                     fileTableConfigs : [],   //  �뙆�씪 �뾽濡쒕뱶 �젙蹂� �뀒�씠釉�
+                    inheritPartners : parameter.inheritPartners,
+                    downTotalCount : parameter.downTotalCount,
+                    usePartner : parameter.usePartner,
                 };
 
                 // �뿰愿� �씪媛� 愿��젴
@@ -404,7 +407,16 @@
                 }
 
                 // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃
-                function getParentSectorListCallBack(result) {
+                function getParentSectorListCallBack(result, value) {
+                    if (value === "") {
+                        $scope.vm.form.parentSectorId = "";
+                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
+                            $scope.vm.form.parentSectors[0].id = "";
+                        }
+                        $scope.vm.form.childSectorId = "";
+                        $scope.vm.form.childSector = "";
+                        $scope.vm.form.childSectors = [];
+                    }
                     $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                 }
 
@@ -436,94 +448,109 @@
                 }
 
                 $scope.$on("companyTypeEvent", function (event, result) {
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                         $scope.vm.form.companyTypeId = result[0].id;
+                    }
                 });
                 $scope.$on("parentSectorEvent", function (event, result) {
-                    if ($rootScope.isDefined(result[0])) {
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                         $scope.vm.form.parentSectorId = result[0].id;
+                    }  else {
+                        $scope.vm.form.parentSectorId = "";
+                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
+                            $scope.vm.form.parentSectors[0].id = "";
+                        }
                     }
                     $scope.vm.form.childSectorId = "";
                     $scope.vm.form.childSector = "";
                     $scope.vm.form.childSectors = [];
                 });
                 $scope.$on("childSectorEvent", function (event, result) {
-                    $scope.vm.form.childSectorId = result[0].id;
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
+                        $scope.vm.form.childSectorId = result[0].id;
+                    }
                 });
                 $scope.$on("regionEvent", function (event, result) {
-                    $scope.vm.form.regionId = result[0].id;
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
+                        $scope.vm.form.regionId = result[0].id;
+                    }
                 });
                 $scope.$on("statusEvent", function (event, result) {
-                    $scope.vm.form.statusId = result[0].id;
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
+                        $scope.vm.form.statusId = result[0].id;
+                    }
                 });
 
                 // �뾽泥댁젙蹂� 寃곌낵 媛� Event 泥섎━(set)
                 $scope.$on("companyFieldEvent", function (event, result) {
-                    var ispFieldVo = result[0].ispFieldVo;
-                    var hostingFieldVo = result[0].hostingFieldVo;
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
+                        var ispFieldVo = result[0].ispFieldVo;
+                        var hostingFieldVo = result[0].hostingFieldVo;
 
-                    $scope.vm.companyId = result[0].id;
-                    $scope.vm.companyName = result[0].name;
-                    $scope.vm.companyManager = result[0].manager;
-                    $scope.vm.companyTel = result[0].tel;
-                    $scope.vm.companyEmail = result[0].email;
-                    $scope.vm.companyUrl = result[0].url;
-                    $scope.vm.companyMemo = result[0].memo;
-                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
-                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
-                    $scope.vm.form.childSectorId = result[0].childSectorId;
-                    $scope.vm.form.regionId = result[0].regionId;
-                    $scope.vm.form.statusId = result[0].statusId;
-                    $scope.vm.form.companyType = result[0].companyTypeName;
-                    $scope.vm.form.parentSector = result[0].parentSectorName;
-                    $scope.vm.form.childSector = result[0].childSectorName;
-                    $scope.vm.form.region = result[0].regionName;
-                    $scope.vm.form.status = result[0].statusName;
+                        $scope.vm.companyId = result[0].id;
+                        $scope.vm.companyName = result[0].name;
+                        $scope.vm.companyManager = result[0].manager;
+                        $scope.vm.companyTel = result[0].tel;
+                        $scope.vm.companyEmail = result[0].email;
+                        $scope.vm.companyUrl = result[0].url;
+                        $scope.vm.companyMemo = result[0].memo;
+                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
+                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
+                        $scope.vm.form.childSectorId = result[0].childSectorId;
+                        $scope.vm.form.regionId = result[0].regionId;
+                        $scope.vm.form.statusId = result[0].statusId;
+                        $scope.vm.form.companyType = result[0].companyTypeName;
+                        $scope.vm.form.parentSector = result[0].parentSectorName;
+                        $scope.vm.form.childSector = result[0].childSectorName;
+                        $scope.vm.form.region = result[0].regionName;
+                        $scope.vm.form.status = result[0].statusName;
 
-                    $scope.vm.ispId = "";
-                    $scope.vm.ispName = "";
-                    $scope.vm.ispCode = "";
-                    $scope.vm.ispManager = "";
-                    $scope.vm.ispTel = "";
-                    $scope.vm.ispEmail = "";
-                    $scope.vm.ispUrl = "";
-                    $scope.vm.ispMemo = "";
+                        $scope.vm.ispId = "";
+                        $scope.vm.ispName = "";
+                        $scope.vm.ispCode = "";
+                        $scope.vm.ispManager = "";
+                        $scope.vm.ispTel = "";
+                        $scope.vm.ispEmail = "";
+                        $scope.vm.ispUrl = "";
+                        $scope.vm.ispMemo = "";
 
-                    $scope.vm.hostingId = "";
-                    $scope.vm.hostingName = "";
-                    $scope.vm.hostingCode = "";
-                    $scope.vm.hostingManager = "";
-                    $scope.vm.hostingTel = "";
-                    $scope.vm.hostingEmail = "";
-                    $scope.vm.hostingUrl = "";
-                    $scope.vm.hostingMemo = "";
+                        $scope.vm.hostingId = "";
+                        $scope.vm.hostingName = "";
+                        $scope.vm.hostingCode = "";
+                        $scope.vm.hostingManager = "";
+                        $scope.vm.hostingTel = "";
+                        $scope.vm.hostingEmail = "";
+                        $scope.vm.hostingUrl = "";
+                        $scope.vm.hostingMemo = "";
 
-                    if (ispFieldVo != null){
-                        $scope.vm.form.issueIspFields[0] = angular.copy(ispFieldVo);
-                        $scope.vm.ispId = ispFieldVo.id;
-                        $scope.vm.ispName = ispFieldVo.name;
-                        $scope.vm.ispCode = ispFieldVo.code;
-                        $scope.vm.ispManager = ispFieldVo.manager;
-                        $scope.vm.ispTel = ispFieldVo.tel;
-                        $scope.vm.ispEmail = ispFieldVo.email;
-                        $scope.vm.ispUrl = ispFieldVo.url;
-                        $scope.vm.ispMemo = ispFieldVo.memo;
-                    }
-                    if (hostingFieldVo != null){
-                        $scope.vm.form.issueHostingFields[0] = angular.copy(hostingFieldVo);
-                        $scope.vm.hostingId = hostingFieldVo.id;
-                        $scope.vm.hostingName = hostingFieldVo.name;
-                        $scope.vm.hostingCode = hostingFieldVo.code;
-                        $scope.vm.hostingManager = hostingFieldVo.manager;
-                        $scope.vm.hostingTel = hostingFieldVo.tel;
-                        $scope.vm.hostingEmail = hostingFieldVo.email;
-                        $scope.vm.hostingUrl = hostingFieldVo.url;
-                        $scope.vm.hostingMemo = hostingFieldVo.memo;
+                        if (ispFieldVo != null) {
+                            $scope.vm.form.issueIspFields[0] = angular.copy(ispFieldVo);
+                            $scope.vm.ispId = ispFieldVo.id;
+                            $scope.vm.ispName = ispFieldVo.name;
+                            $scope.vm.ispCode = ispFieldVo.code;
+                            $scope.vm.ispManager = ispFieldVo.manager;
+                            $scope.vm.ispTel = ispFieldVo.tel;
+                            $scope.vm.ispEmail = ispFieldVo.email;
+                            $scope.vm.ispUrl = ispFieldVo.url;
+                            $scope.vm.ispMemo = ispFieldVo.memo;
+                        }
+                        if (hostingFieldVo != null) {
+                            $scope.vm.form.issueHostingFields[0] = angular.copy(hostingFieldVo);
+                            $scope.vm.hostingId = hostingFieldVo.id;
+                            $scope.vm.hostingName = hostingFieldVo.name;
+                            $scope.vm.hostingCode = hostingFieldVo.code;
+                            $scope.vm.hostingManager = hostingFieldVo.manager;
+                            $scope.vm.hostingTel = hostingFieldVo.tel;
+                            $scope.vm.hostingEmail = hostingFieldVo.email;
+                            $scope.vm.hostingUrl = hostingFieldVo.url;
+                            $scope.vm.hostingMemo = hostingFieldVo.memo;
+                        }
                     }
                 });
 
                 // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set)
                 $scope.$on("ispFieldEvent", function (event, result) {
-                    if ($rootScope.isDefined(result[0])) {
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                         $scope.vm.ispId = result[0].id;
                         $scope.vm.ispName = result[0].name;
                         $scope.vm.ispCode = result[0].code;
@@ -537,7 +564,7 @@
 
                 // �샇�뒪�똿�젙蹂� 寃곌낵 媛� Event 泥섎━(set)
                 $scope.$on("hostingFieldEvent", function (event, result) {
-                    if ($rootScope.isDefined(result[0])) {
+                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                         $scope.vm.hostingId = result[0].id;
                         $scope.vm.hostingName = result[0].name;
                         $scope.vm.hostingCode = result[0].code;
@@ -551,11 +578,13 @@
 
                 function formSubmit() {
                     $rootScope.spinner = true;
+                    let inheritYn = false;
 
                     var content = {
                         id : parameter.id,
                         title : $rootScope.preventXss($scope.vm.form.title),    //  �젣紐�
                         description : $rootScope.preventXss($scope.vm.form.description),   //  �궡�슜
+                        inheritYn : inheritYn,
                         companyName : $scope.vm.companyName,
                         companyManager : $scope.vm.companyManager,
                         companyTel : $scope.vm.companyTel,
@@ -706,7 +735,8 @@
                             if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){
 
                                 var companyField = $scope.vm.form.issueCompanyFields[0];
-                                if (companyField.name !== $scope.vm.companyName) { //�궗�슜�옄媛� 吏곸젒 �뾽泥� 異붽� �븷 寃쎌슦
+                                //�궗�슜�옄媛� 吏곸젒 �뾽泥� 異붽� �븷 寃쎌슦
+                                if ($rootScope.isDefined(companyField) && companyField.name !== $scope.vm.companyName) {
                                     return issueCompanyFields;
                                 }
 
@@ -723,7 +753,8 @@
                                     parentSectorId : $scope.vm.form.parentSectorId,
                                     childSectorId : $scope.vm.form.childSectorId,
                                     regionId : $scope.vm.form.regionId,
-                                    statusId : $scope.vm.form.statusId
+                                    statusId : $scope.vm.form.statusId,
+                                    statusName : $scope.vm.form.status
                                 });
                             }
 
@@ -737,7 +768,8 @@
                                 || $scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){
 
                                 var ispField = $scope.vm.form.issueIspFields[0];
-                                if (ispField.name !== $scope.vm.ispName) { //�궗�슜�옄媛� 吏곸젒 ISP 異붽� �븷 寃쎌슦
+                                //�궗�슜�옄媛� 吏곸젒 ISP 異붽� �븷 寃쎌슦
+                                if ($rootScope.isDefined(ispField) && ispField.name !== $scope.vm.ispName) {
                                     return issueIspFields;
                                 }
 
@@ -764,7 +796,8 @@
                                 || $scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){
 
                                 var hostingField = $scope.vm.form.issueHostingFields[0];
-                                if (hostingField.name !== $scope.vm.hostingName) { //�궗�슜�옄媛� 吏곸젒 �샇�뒪�똿 異붽� �븷 寃쎌슦
+                                //�궗�슜�옄媛� 吏곸젒 �샇�뒪�똿 異붽� �븷 寃쎌슦
+                                if ($rootScope.isDefined(hostingField) && hostingField.name !== $scope.vm.hostingName) {
                                     return issueHostingFields;
                                 }
 
@@ -811,42 +844,101 @@
                         })()
                     };
 
-                    Issue.modify({
-                        method : "POST",
-                        file : (function () {
-                            var files = [];
-
-                            angular.forEach($scope.vm.form.files, function (file) {
-                                if (angular.isUndefined(file.id)) {
-                                    files.push(file);
-                                }
-                            });
-
-                            return files;
-                        })(),
-                        //      data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚
-                        fields : {
-                            content : content
+                    if ($rootScope.isDefined($scope.vm.usePartner) && $scope.vm.usePartner.length > 0
+                            && $rootScope.isDefined($scope.vm.inheritPartners) && $scope.vm.inheritPartners
+                            && $rootScope.isDefined($scope.vm.downTotalCount) && $scope.vm.downTotalCount > 0) {
+                        SweetAlert.swal({
+                            title : $filter("translate")("issue.modifyIssues"), // �씠�뒋 蹂�寃�
+                            text : $filter("translate")("issue.wantToInheritPartnersOfIssue"), // �쁽�옱 �씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� 紐⑤뱺 �븯�쐞�씠�뒋�뿉 �씪愿� �쟻�슜�떆�궎寃좎뒿�땲源�?
+                            type : "warning",
+                            showCancelButton : true,
+                            confirmButtonColor : "#DD6B55",
+                            confirmButtonText : $filter("translate")("common.ok"), // �꽕
+                            cancelButtonText : $filter("translate")("common.no"), // �븘�땲�삤
+                            closeOnConfirm : false,
+                            closeOnCancel : false
                         },
-                        fileFormDataName : "file"
-                    }).then(function (result) {
+                        function (isConfirm) {
+                            if (isConfirm) {
+                                inheritYn = true;
+                                content.inheritYn = true;
+                            }
 
-                        if (result.data.message.status === "success") {
-                            $scope.fn.cancel();
+                            Issue.modify({
+                                method : "POST",
+                                file : (function () {
+                                    var files = [];
 
-                            //  �씠�뒋 �긽�꽭 �솕硫� �슂泥�
-                            $rootScope.$broadcast("getIssueDetail", {
-                                id : parameter.id
+                                    angular.forEach($scope.vm.form.files, function (file) {
+                                        if (angular.isUndefined(file.id)) {
+                                            files.push(file);
+                                        }
+                                    });
+
+                                    return files;
+                                })(),
+                                //      data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚
+                                fields : {
+                                    content : content
+                                },
+                                fileFormDataName : "file"
+                            }).then(function (result) {
+
+                                if (result.data.message.status === "success") {
+                                    $scope.fn.cancel();
+
+                                    //  �씠�뒋 �긽�꽭 �솕硫� �슂泥�
+                                    $rootScope.$broadcast("getIssueDetail", {
+                                        id : parameter.id
+                                    });
+
+                                    $rootScope.$broadcast("getIssueList");
+                                }
+                                else {
+                                    SweetAlert.error($filter("translate")("issue.failedIssueModify"), result.data.message.message); // �씠�뒋 �닔�젙 �떎�뙣
+                                }
+
+                                $rootScope.spinner = false;
                             });
+                        });
+                    } else {
+                        Issue.modify({
+                            method : "POST",
+                            file : (function () {
+                                var files = [];
 
-                            $rootScope.$broadcast("getIssueList");
-                        }
-                        else {
-                            SweetAlert.error($filter("translate")("issue.failedIssueModify"), result.data.message.message); // �씠�뒋 �닔�젙 �떎�뙣
-                        }
+                                angular.forEach($scope.vm.form.files, function (file) {
+                                    if (angular.isUndefined(file.id)) {
+                                        files.push(file);
+                                    }
+                                });
 
-                        $rootScope.spinner = false;
-                    });
+                                return files;
+                            })(),
+                            //      data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚
+                            fields : {
+                                content : content
+                            },
+                            fileFormDataName : "file"
+                        }).then(function (result) {
+
+                            if (result.data.message.status === "success") {
+                                $scope.fn.cancel();
+
+                                //  �씠�뒋 �긽�꽭 �솕硫� �슂泥�
+                                $rootScope.$broadcast("getIssueDetail", {
+                                    id : parameter.id
+                                });
+
+                                $rootScope.$broadcast("getIssueList");
+                            }
+                            else {
+                                SweetAlert.error($filter("translate")("issue.failedIssueModify"), result.data.message.message); // �씠�뒋 �닔�젙 �떎�뙣
+                            }
+
+                            $rootScope.spinner = false;
+                        });
+                    }
                 }
 
                 function cancel() {

--
Gitblit v1.8.0