OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-01 e5129daaeb5bdbee1f5a8df586210387a9bba029
src/main/webapp/scripts/app/issue/issueSendMail.controller.js
@@ -5,22 +5,27 @@
        '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   //  폼 체크
                };
                $scope.vm = {
                    companyVos : parameter.companyVos,
                    ispVos : parameter.ispVos,
                    hostingVos : parameter.hostingVos,
                    partners : parameter.partnersAll.slice(),
                    form : {
                        id : parameter.issueId,  //  이슈 번호
                        projects : [{ id : parameter.projectId}],  //  프로젝트
                        users : []    //  메일 전송받는 사용자
                        mailUsers : parameter.partners.slice()   //  메일 전송받는 사용자
                    },
                    userName : "",
                    autoCompletePage : {
@@ -33,12 +38,17 @@
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                //  사용자 삭제
                function removeMailTarget(index) {
                    $scope.vm.form.mailUsers.splice(index, 1);
                }
                function formCheck(formInvalid) {
                    if (formInvalid) {
                        return true;
                    }
                    if ($scope.vm.form.users.length < 1) {
                    if ($scope.vm.form.mailUsers.length < 1) {
                        return true;
                    }
@@ -54,12 +64,42 @@
                        sendEmails : (function () {
                            var sendEmails = [];
                            angular.forEach($scope.vm.form.users, function (user) {
                            angular.forEach($scope.vm.form.mailUsers, function (user) {
                                sendEmails.push($rootScope.encryption(user.account));
                            });
                            return sendEmails;
                        })()
                        })(),
                        companyVos : (function () {
                            var companyVos = [];
                            angular.forEach($scope.vm.companyVos, function (company) {
                                companyVos.push(company);
                            });
                            return companyVos;
                        })(),
                        ispVos : (function () {
                            var ispVos = [];
                            angular.forEach($scope.vm.ispVos, function (isp) {
                                ispVos.push(isp);
                            });
                            return ispVos;
                        })(),
                        hostingVos : (function () {
                            var hostingVos = [];
                            angular.forEach($scope.vm.hostingVos, function (hosting) {
                                hostingVos.push(hosting);
                            });
                            return hostingVos;
                        })(),
                        // companyVos : parameter.companyVos,
                        // ispVos : parameter.ispVos,
                        // hostingVos : parameter.hostingVos,
                    };
                    Issue.sendEmail($resourceProvider.getContent(
@@ -83,15 +123,32 @@
                    $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage;
                }
                //  전송 대상자 삭제
                function removeManager(index) {
                    $scope.vm.form.users.splice(index, 1);
                }
                function cancel() {
                    $rootScope.$broadcast("closeLayer");    //  팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정
                    $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;
                }
            }]);
    });