OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2021-11-29 f3d433b269f28e99dd352f5b69f8ef864c09e5b0
src/main/webapp/scripts/app/api/apiSetting.controller.js
@@ -7,8 +7,8 @@
        'app', 'angular'
    ],
    function (app, angular) {
        app.controller('apiSettingController', ['$scope', '$rootScope', '$log', '$resourceProvider','$uibModal', 'SweetAlert', '$timeout', '$filter', '$injector', '$controller', 'Api', 'Priority', 'Severity',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModal, SweetAlert, $timeout, $filter, $injector, $controller, Api, Priority, Severity) {
        app.controller('apiSettingController', ['$scope', '$rootScope', '$log', '$resourceProvider','$uibModal', 'SweetAlert', '$timeout', '$filter', '$injector', '$controller', 'Api', 'Priority', 'Severity', 'IssueType',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModal, SweetAlert, $timeout, $filter, $injector, $controller, Api, Priority, Severity, IssueType) {
                $scope.fn = {
                    changeTab : changeTab,
@@ -19,7 +19,15 @@
                    initForm : initForm,
                    getPriorities : getPriorities,
                    getSeverities : getSeverities,
                    start : start
                    start : start,
                    getIssueTypes : getIssueTypes,
                    onChangeIssueType : onChangeIssueType,
                    reset : reset,
                    resetOverlap : resetOverlap,
                    formSubmitOverlap : formSubmitOverlap,
                    removeCustomField : removeCustomField,
                    getOverlapList : getOverlapList,
                    onChangeIssueTypeOverlap : onChangeIssueTypeOverlap
                };
                $scope.vm = {
@@ -34,8 +42,10 @@
                            description : "",
                            priorityId : "",
                            severityId : "",
                            customFields : [],
                            // projectName : "",
                        }
                        },
                        customFieldId : "",
                    },
                    autoCompletePage : {
@@ -48,7 +58,9 @@
                        //     totalPage : 0
                        // }
                    },
                    issueTypeId : "",
                    issueTypeName : "",
                    customFieldName : "",
                    issueTypeData : null            // 이슈 유형 객체
                };
@@ -61,22 +73,75 @@
                    $scope.vm.form.issueApiDefault.severityId = "";
                }
                // 이슈 유형 클릭시
                $scope.$on("onClickIssueType", function (evnet, args) {
                    if (args != null && args.length > 0) {
                function reset() {
                    $scope.fn.initForm();
                    $scope.fn.formSubmit();
                }
                function resetOverlap() {
                    $scope.vm.form.customFieldIds = [];
                    $scope.fn.form.formSubmitOverlap();
                }
                function  getOverlapList() {
                    let conditions = {
                        issueTypeId: $scope.vm.issueTypeId
                    }
                    Api.findApiOverlap($resourceProvider.getContent(
                        conditions, $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
                            let customFieldApiOverlaps = result.data.data;
                            $scope.vm.form.customFields = [];
                            customFieldApiOverlaps.forEach(function (customFieldApiOverlap) {
                                $scope.vm.form.customFields.push(customFieldApiOverlap.customFieldVo);
                            });
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // "이슈 유형 목록 조회 실패"
                        }
                    });
                }
                function getIssueTypes() {
                    var conditions = {
                    };
                    IssueType.find($resourceProvider.getContent(
                        conditions, $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.issueTypes = result.data.data;
                            if ($scope.vm.issueTypes != null && $scope.vm.issueTypes.length > 0) {
                                $scope.vm.issueTypeId = $scope.vm.issueTypes[0].id.toString();
                                $scope.fn.onChangeIssueType();
                            }
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // "이슈 유형 목록 조회 실패"
                        }
                    });
                }
                function onChangeIssueTypeOverlap() {
                    $scope.fn.getOverlapList();
                }
                function onChangeIssueType() {
                    if ($scope.vm.issueTypeId != null) {
                        let conditions = {
                            issueTypeId: args[0].id
                            issueTypeId: $scope.vm.issueTypeId
                        }
                        Api.findApiDefault($resourceProvider.getContent(
                            conditions, $resourceProvider.getPageContent(0, 0))).then(function (result) {
                            conditions, $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                            $scope.fn.initForm();
                            if (result.data.message.status === "success") {
                                if (angular.isDefined(result.data.data)) {
                                    $scope.vm.form.issueApiDefault = result.data.data;
                                    $scope.vm.form.issueApiDefault.priorityId = result.data.data.priorityId.toString();
                                    $scope.vm.form.issueApiDefault.severityId = result.data.data.severityId.toString();
                                    $scope.vm.form.issueApiDefault.priorityId = result.data.data.priorityId != null ? result.data.data.priorityId.toString() : "";
                                    $scope.vm.form.issueApiDefault.severityId = result.data.data.severityId != null ? result.data.data.severityId.toString() : "";
                                    // if (angular.isDefined(result.data.data.projectVo)) {
                                    //     $scope.vm.projects = [];
@@ -88,7 +153,8 @@
                            }
                        });
                    }
                });
                }
                //  폼 체크
                function formCheck(formInvalid) {
@@ -100,11 +166,11 @@
                }
                function formSubmit() {
                    if ($scope.vm.issueTypes == null || $scope.vm.issueTypes.length === 0)
                    if ($scope.vm.issueTypeId == null)
                        return;
                    let condition = {
                        issueTypeId : $scope.vm.issueTypes[0].id,
                        issueTypeId : $scope.vm.issueTypeId,
                        title : $scope.vm.form.issueApiDefault.title,
                        // projectId : $scope.vm.projects != null && $scope.vm.projects.length > 0 ? $scope.vm.projects[0].id : null,
                        priorityId : $scope.vm.form.issueApiDefault.priorityId,
@@ -116,10 +182,45 @@
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            SweetAlert.swal($filter("translate")("api.successToApiIssueDefault"), result.data.message.message, "success"); // "api 토큰 생성 성공"
                            SweetAlert.swal($filter("translate")("api.successToApiIssueDefault"), result.data.message.message, "success"); // "api 기본값 설정 성공"
                        }
                        else {
                            SweetAlert.swal($filter("translate")("api.failedToApiIssueDefault"), result.data.message.message, "error"); // "api 토큰 생성 실패"
                            SweetAlert.swal($filter("translate")("api.failedToApiIssueDefault"), result.data.message.message, "error"); // "api 기본값 설정 실패"
                        }
                    });
                }
                // 사용자 정의 필드 선택 항목 삭제
                function removeCustomField(index) {
                    $scope.vm.form.customFields.splice(index, 1);
                }
                // 중복 항목 전송
                function formSubmitOverlap() {
                    if ($scope.vm.issueTypeId === null)
                        return;
                    let condition = {
                        issueTypeId : $scope.vm.issueTypeId,
                        customFieldIds : (function () {
                            var ids = [];
                            angular.forEach($scope.vm.form.customFields, function (customField) {
                                ids.push(customField.id);
                            });
                            return ids;
                        })(),
                    }
                    Api.modifyApiOverlap($resourceProvider.getContent(condition,
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            SweetAlert.swal($filter("translate")("api.successToApiIssueOverlap"), result.data.message.message, "success"); // "api 중복값 설정 성공"
                        }
                        else {
                            SweetAlert.swal($filter("translate")("api.failedToApiIssueOverlap"), result.data.message.message, "error"); // "api 중복값 설정 실패"
                        }
                    });
                }
@@ -160,6 +261,15 @@
                    });
                }
                $rootScope.$on("changeColumnSettingTab", function (event, args){
                    $scope.fn.start();
                });
                $rootScope.$on("changeOverlapSettingTab", function (event, args){
                    $scope.fn.getOverlapList();
                });
                function changeTab(tab) {
                    $scope.vm.tab = tab;
@@ -175,8 +285,9 @@
                    $scope.fn.initForm();
                    $scope.fn.getSeverities();
                    $scope.fn.getPriorities();
                    $scope.fn.getIssueTypes();
                }
                $scope.fn.start();
            }]);
    });