OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-03 4e5a589b93735ac56cfa8892db7bc1781f04b3d1
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', 'IssueTypeCustomField',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModal, SweetAlert, $timeout, $filter, $injector, $controller, Api, Priority, Severity, IssueType, IssueTypeCustomField) {
                $scope.fn = {
                    changeTab : changeTab,
@@ -19,7 +19,17 @@
                    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,
                    getIssueTypeCustomFields : getIssueTypeCustomFields,
                    getCurrentIssueTypeVo : getCurrentIssueTypeVo
                };
                $scope.vm = {
@@ -29,13 +39,16 @@
                    priorities : [],
                    // projects : [],
                    form : {
                        issueCustomFields : [],
                        issueApiDefault : {
                            title : "",
                            description : "",
                            priorityId : "",
                            severityId : "",
                            customFields : [],
                            // projectName : "",
                        }
                        },
                        customFieldId : "",
                    },
                    autoCompletePage : {
@@ -48,8 +61,9 @@
                        //     totalPage : 0
                        // }
                    },
                    issueTypeId : "",
                    issueTypeName : "",
                    issueTypeData : null            // 이슈 유형 객체
                    customFieldName : "",
                };
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
@@ -61,22 +75,90 @@
                    $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 getCurrentIssueTypeVo() {
                    var issueTypeId = $scope.vm.issueTypeId;
                    var issueTypeVo = null;
                    $scope.vm.issueTypes.forEach(function (issueType) {
                       if (issueType.id == issueTypeId) {
                           issueTypeVo = issueType;
                       }
                    });
                    return issueTypeVo;
                }
                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();
                            $scope.fn.getIssueTypeCustomFields();
                            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 +170,8 @@
                            }
                        });
                    }
                });
                }
                //  폼 체크
                function formCheck(formInvalid) {
@@ -100,11 +183,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 +199,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 중복값 설정 실패"
                        }
                    });
                }
@@ -146,6 +264,34 @@
                    });
                }
                //  이슈 유형에 연결된 사용자 정의 필드
                function getIssueTypeCustomFields() {
                    $scope.vm.form.issueCustomFields = [];
                    var issueTypeVo = $scope.fn.getCurrentIssueTypeVo();
                    if (issueTypeVo.projectVo == null) return;
                    IssueTypeCustomField.find($resourceProvider.getContent({
                            projectId : issueTypeVo.projectVo.id,
                            IssueTypeId : issueTypeVo.id },
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.form.issueCustomFields = [];
                            angular.forEach(result.data.data, function (issueTypeCustomField) {
                                $scope.vm.form.issueCustomFields.push(issueTypeCustomField);
                            });
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListAssociatedLookup"), result.data.message.message, "error"); // 이슈 유형에 연결된 사용자 정의 필드 목록 조회 실패
                        }
                    });
                }
                //  중요도 목록
                function getSeverities() {
                    Severity.find($resourceProvider.getContent({},
@@ -159,6 +305,15 @@
                        }
                    });
                }
                $rootScope.$on("changeColumnSettingTab", function (event, args){
                    $scope.fn.start();
                });
                $rootScope.$on("changeOverlapSettingTab", function (event, args){
                    $scope.fn.getOverlapList();
                });
                function changeTab(tab) {
@@ -175,8 +330,10 @@
                    $scope.fn.initForm();
                    $scope.fn.getSeverities();
                    $scope.fn.getPriorities();
                }
                    $scope.fn.getIssueTypes();
                }
                $scope.fn.start();
            }]);
    });