OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-01 6a0d01e645b7d388c851bc5b0b830564e60aa736
src/main/webapp/scripts/app/issue/issueSendMail.controller.js
@@ -5,71 +5,67 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('issueSendMailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'SweetAlert', '$filter', 'parameter', 'Issue',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $controller, $injector, SweetAlert, $filter, parameter, Issue) {
        app.controller('issueSendMailController', ['$scope', '$rootScope', '$q','$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'SweetAlert', '$filter', 'parameter', 'Issue',
            function ($scope, $rootScope, $q, $log, $resourceProvider, $uibModalInstance, $controller, $injector, SweetAlert, $filter, parameter, Issue) {
                $scope.fn = {
                    getUserListCallBack : getUserListCallBack,  //  사용자 auto complete callback function
                    removeManager : removeManager,  //  전송 대상자 삭제
                    cancel : cancel,    //  팝업 창 닫기
                    getMails : getMails,
                    removeMailTarget : removeMailTarget,
                    formSubmit : formSubmit,    //  폼 전송
                    // formCheck : formCheck  //  폼 체크
                    formCheck : formCheck   //  폼 체크
                };
                $scope.vm = {
                    companyVos : parameter.companyVos,
                    ispVos : parameter.ispVos,
                    hostingVos : parameter.hostingVos,
                    partners : parameter.partnersAll.slice(),
                    form : {
                        id : parameter.issueId,  //  이슈 번호
                        projects : [{ id : parameter.projectId}],  //  프로젝트
                        partners : parameter.partners,
                        users : [],    //  메일 전송받는 사용자
                        issueCompanyVos : [],
                        issueIspVos : [],
                        issueHostingVos : []
                        // companyFields : parameter.issueCompanyFields,  //  업체 이메일
                        // ispFields : parameter.issueIspFields,  //  ISP 이메일
                        // hostingFields : parameter.issueHostingFields,  //  호스팅 이메일
                        mailUsers : parameter.partners.slice()   //  메일 전송받는 사용자
                    },
                    userName : "",
                    partnerName : "",
                    autoCompletePage : {
                        user : {
                            page : 0,
                            totalPage : 0
                        },
                        partnersMail : {
                            page : 0,
                            totalPage :0
                        }
                    }
                };
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                // function formCheck(formInvalid) {
                //     if (formInvalid) {
                //         return true;
                //     }
                //
                //     if ($scope.vm.form.users.length < 1) {
                //         return true;
                //     }
                //
                //     return false;
                // }
                //  사용자 삭제
                function removeMailTarget(index) {
                    $scope.vm.form.mailUsers.splice(index, 1);
                }
                function formCheck(formInvalid) {
                    if (formInvalid) {
                        return true;
                    }
                    if ($scope.vm.form.mailUsers.length < 1) {
                        return true;
                    }
                    return false;
                }
                //  폼 전송
                function formSubmit() {
                    $rootScope.spinner = true;
                    var content = {
                        id : $scope.vm.form.id,
                        sendEmails : (function () {
                            var sendEmails = [];
                            angular.forEach($scope.vm.form.projects, function (project) {
                                sendEmails.push(project.id);
                            angular.forEach($scope.vm.form.mailUsers, function (user) {
                                sendEmails.push($rootScope.encryption(user.account));
                            });
                            return sendEmails;
@@ -92,50 +88,9 @@
                    });
                }
                // function formSubmit() {
                //     $rootScope.spinner = true;
                //
                //     var content = {
                //         id : $scope.vm.form.id,
                //         companyFieldsEmail : $scope.vm.form.companyFieldsEmail,
                //         ispFieldsEmail : $scope.vm.form.ispFieldsEmail,
                //         hostingFieldsEmail : $scope.vm.form.hostingFieldsEmail,
                //         sendEmails : (function () {
                //             var sendEmails = [];
                //
                //             angular.forEach($scope.vm.form.projects, function (project) {
                //                 sendEmails.push(project.id);
                //             });
                //
                //             return sendEmails;
                //         })()
                //     };
                //
                //     Issue.findMailTargetAll($resourceProvider.getContent(
                //         content,
                //         $resourceProvider.getPageContent(0, 10))).then(function (result) {
                //
                //         if (result.data.message.status === "success") {
                //             SweetAlert.success($filter("translate")("issue.succeededIssueMail"), $filter("translate")("issue.sentToTheSelectedUser")); // "이슈 메일 발송 완료"
                //             $scope.fn.cancel();
                //         }
                //         else {
                //             SweetAlert.error($filter("translate")("issue.failedIssueMail"), result.data.message.message); // "이슈 메일 발송 실패"
                //         }
                //
                //         $rootScope.spinner = false;
                //     });
                // }
                //  사용자 auto complete callback function
                function getUserListCallBack(result) {
                    $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage;
                }
                //  전송 대상자 삭제
                function removeManager(index) {
                    $scope.vm.form.users.splice(index, 1);
                }
                function cancel() {
@@ -143,5 +98,26 @@
                    $uibModalInstance.dismiss('cancel');
                    $(document).unbind("keydown");  //  단축키 이벤트 제거
                }
                function getMails(excludeList) {
                    var deferred = $q.defer();
                    var partners = [];
                    if (excludeList != null && excludeList.length > 0) {
                        $scope.vm.partners.forEach(function (partner) {
                            excludeList.forEach(function (exclude) {
                                if (partner.id !== exclude.id) {
                                    partners.push(partner);
                                }
                            });
                        });
                    } else {
                        partners = $scope.vm.partners;
                    }
                    deferred.resolve(partners);
                    return deferred.promise;
                }
            }]);
    });