OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-30 a93ef198d8ac95975560d71e53aa1aa59d8c5125
src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -9,9 +9,9 @@
    ],
    function (app, angular) {
        app.controller('issueModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector',
            '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', 'Issue', 'User', 'AttachedFile', 'IssueType', 'Priority', 'Severity', 'IssueTypeCustomField', '$filter',
            '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', 'Issue', 'User', 'AttachedFile', 'IssueType', 'Priority', 'Severity', 'HostingField', 'IssueTypeCustomField', '$filter',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, SweetAlert, $timeout,
                      $stateParams, $q, parameter, Issue, User, AttachedFile, IssueType, Priority, Severity, IssueTypeCustomField, $filter) {
                      $stateParams, $q, parameter, Issue, User, AttachedFile, IssueType, Priority, Severity, HostingField, IssueTypeCustomField, $filter) {
                $scope.fn = {
                    cancel : cancel,    //  팝업 창 닫기
@@ -33,14 +33,17 @@
                    setFormByIssueTypeCustomFields : setFormByIssueTypeCustomFields,    //  이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다.
                    setUseValueByIssueTypeCustomFields : setUseValueByIssueTypeCustomFields,    //  이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
                    detail : detail,    //  이슈 정보 조회
                    // removeManager : removeManager,  //  담당자 삭제
                    removeManager : removeManager,  //  담당자 삭제
                    removeDepartment : removeDepartment,  //  담당부서 삭제
                    removeUploadFile : removeUploadFile,    //  특정 파일을 삭제
                    setIssueTypeTemplate : setIssueTypeTemplate,    //  이슈 유형 템플릿 적용하기
                    startExecute : startExecute //  최초 실행
                    startExecute : startExecute, //  최초 실행
                    containsPartner : containsPartner,
                    getPartners : getPartners
                };
                $scope.vm = {
                    partnerVos : "",
                    search : {
                        id : parameter.id,
                        deep : "02"    //  프로젝트 연관된 모든 정보를 어느정도까지 가져올지 결정, 01 - 사용자, 관리자 정보
@@ -140,6 +143,11 @@
                    }
                });
                $scope.$watch("vm.form.issueTypeId", function (newValue, oldValue) {
                    $scope.vm.partnerVos = $scope.fn.getPartners();
                });
                //  업로드 파일 삭제
                function removeUploadFile(index) {
                    var temp = [];
@@ -161,9 +169,9 @@
                }
                //  담당자 삭제
                // function removeManager(index) {
                //     $scope.vm.form.users.splice(index, 1);
                // }
                function removeManager(index) {
                    $scope.vm.form.users.splice(index, 1);
                }
                // 담당부서 삭제
                function removeDepartment(index) {
@@ -386,6 +394,24 @@
                        id : parameter.id,
                        title : $rootScope.preventXss($scope.vm.form.title),    //  제목
                        description : $rootScope.preventXss($scope.vm.form.description),   //  내용
                        companyName : $scope.vm.companyName,
                        companyManager : $scope.vm.companyManager,
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyMemo : $scope.vm.companyMemo,
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
                        ispTel : $scope.vm.ispTel,
                        ispEmail : $scope.vm.ispEmail,
                        ispMemo : $scope.vm.ispMemo,
                        hostingName : $scope.vm.hostingName,
                        hostingCode : $scope.vm.hostingCode,
                        hostingManager : $scope.vm.hostingManager,
                        hostingTel : $scope.vm.hostingTel,
                        hostingEmail : $scope.vm.hostingEmail,
                        hostingMemo : $scope.vm.hostingMemo,
                        projectId : (function () {   //  프로젝트 아이디
                            var projectId = "";
@@ -430,6 +456,37 @@
                            return hostingId;
                        }),
                        userIds : (function () {
                            var userIds = [];
                            angular.forEach($scope.vm.form.users, function (user) {
                                userIds.push(user.id);
                            });
                            return userIds;
                        })(),
                        departmentIds : (function () {
                            var departmentIds = [];
                            angular.forEach($scope.vm.form.departments, function (department) {
                                departmentIds.push(department.id);
                            });
                            return departmentIds;
                        })(),
                        attachedFileIds : (function () {
                            var attachedFileIds = [];
                            angular.forEach($scope.vm.form.attachedFiles, function (attachedFile) {
                                if ($scope.vm.form.description.indexOf(attachedFile.path) !== -1) {
                                    attachedFileIds.push(attachedFile.id);
                                }
                            });
                            return attachedFileIds;
                        })(),
                        issueCompanyFields : (function () {
                            var issueCompanyFields = [];
@@ -492,50 +549,7 @@
                            return issueHostingFields;
                        })(),
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
                        ispTel : $scope.vm.ispTel,
                        ispEmail : $scope.vm.ispEmail,
                        ispMemo : $scope.vm.ispMemo,
                        hostingName : $scope.vm.hostingName,
                        hostingCode : $scope.vm.hostingCode,
                        hostingManager : $scope.vm.hostingManager,
                        hostingTel : $scope.vm.hostingTel,
                        hostingEmail : $scope.vm.hostingEmail,
                        hostingMemo : $scope.vm.hostingMemo,
                        userIds : (function () {
                            var userIds = [];
                            angular.forEach($scope.vm.form.users, function (user) {
                                userIds.push(user.id);
                            });
                            return userIds;
                        })(),
                        departmentIds : (function () {
                            var departmentIds = [];
                            angular.forEach($scope.vm.form.departments, function (department) {
                                departmentIds.push(department.id);
                            });
                            return departmentIds;
                        })(),
                        removeFiles : $scope.vm.form.removeFiles,
                        attachedFileIds : (function () {
                            var attachedFileIds = [];
                            angular.forEach($scope.vm.form.attachedFiles, function (attachedFile) {
                                if ($scope.vm.form.description.indexOf(attachedFile.path) !== -1) {
                                    attachedFileIds.push(attachedFile.id);
                                }
                            });
                            return attachedFileIds;
                        })(),
                        startCompleteDateRange : $scope.vm.form.startCompleteDateRange,
                        issueCustomFields : (function () {    //  이슈에서 사용되는 사용자 정의 필드
@@ -648,6 +662,21 @@
                    return deferred.promise;
                }
                // 업체/ISP/호스팅 이름이 포함 여부 확인
                function containsPartner(name) {
                    var result = false;
                    if ($scope.vm.partnerVos != null) {
                        $scope.vm.partnerVos.forEach(function (partnerVo) {
                            if (name === partnerVo.name) {
                                result = true;
                            }
                        });
                    }
                    return result;
                }
                //  중요도 목록
                function getSeverities() {
                    var deferred = $q.defer();
@@ -708,6 +737,12 @@
                        switch (issueTypeCustomField.customFieldVo.customFieldType) {
                            case "INPUT" :
                            case "SINGLE_SELECT" :
                            case "NUMBER" :
                            case "DATETIME" :
                            case "IP_ADDRESS" :
                            case "EMAIL" :
                            case "SITE" :
                            case "TEL" :
                                issueTypeCustomField.useValues = "";
                                break;
@@ -772,7 +807,7 @@
                                if (result.data.data.issueCompanyVos != null && result.data.data.issueCompanyVos.length > 0) {
                                    $scope.vm.form.issueCompanyFields = result.data.data.issueCompanyVos;
                                    var issueCompanyFieldValue = result.data.data.issueCompanyVos[0];
                                    $scope.vm.companyId = issueCompanyFieldValue.id;
                                    $scope.vm.companyId = issueCompanyFieldValue.companyId;
                                    $scope.vm.companyName = issueCompanyFieldValue.name;
                                    $scope.vm.companyManager = issueCompanyFieldValue.manager;
                                    $scope.vm.companyTel = issueCompanyFieldValue.tel;
@@ -782,7 +817,7 @@
                                if (result.data.data.issueIspVos != null && result.data.data.issueIspVos.length > 0) {
                                    $scope.vm.form.issueIspFields = result.data.data.issueIspVos;
                                    var issueIspFieldValue = result.data.data.issueIspVos[0];
                                    $scope.vm.ispId = issueIspFieldValue.id;
                                    $scope.vm.ispId = issueIspFieldValue.ispId;
                                    $scope.vm.ispName = issueIspFieldValue.name;
                                    $scope.vm.ispCode = issueIspFieldValue.code;
                                    $scope.vm.ispManager = issueIspFieldValue.manager;
@@ -794,7 +829,7 @@
                                if (result.data.data.issueHostingVos != null && result.data.data.issueHostingVos.length > 0) {
                                    $scope.vm.form.issueHostingFields = result.data.data.issueHostingVos;
                                    var issueHostingFieldValue = result.data.data.issueHostingVos[0];
                                    $scope.vm.hostingId = issueHostingFieldValue.id;
                                    $scope.vm.hostingId = issueHostingFieldValue.hostingId;
                                    $scope.vm.hostingName = issueHostingFieldValue.name;
                                    $scope.vm.hostingCode = issueHostingFieldValue.code;
                                    $scope.vm.hostingManager = issueHostingFieldValue.manager;
@@ -866,6 +901,20 @@
                    }
                }
                function getPartners() {
                    var content = {
                        issueTypeId : $scope.vm.form.issueTypeId
                    };
                    Issue.findPartners($resourceProvider.getContent(
                        content,
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.data;
                        }
                    });
                }
                //  최초 실행
                function startExecute() {
@@ -873,7 +922,8 @@
                        detail : $scope.fn.detail(),
                        getIssueTypes : $scope.fn.getIssueTypes(),
                        getPriorities : $scope.fn.getPriorities(),
                        getSeverities : $scope.fn.getSeverities()
                        getSeverities : $scope.fn.getSeverities(),
                        getPartners : $scope.fn.getPartners()
                    };
                    $q.all(promises).then(function (results) {
@@ -883,4 +933,4 @@
                $scope.fn.startExecute();
            }]);
    });
    });