OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
@@ -16,8 +16,8 @@
                    formSubmit : formSubmit,    //  폼 전송
                    formCheck : formCheck,   //  폼 체크
                    onChangeEmailTemplate : onChangeEmailTemplate, // 이메일 템플릿 선택시 실행
                    getEmailTemplateList : getEmailTemplateList // 이메일 템플릿 목록 가져오기
                    // showEmailTemplate : showEmailTemplate,
                    getEmailTemplateList : getEmailTemplateList, // 이메일 템플릿 목록 가져오기
                    getAccount : getAccount
                };
                $scope.vm = {
@@ -26,10 +26,12 @@
                    hostingVos : parameter.hostingVos,
                    partners : parameter.partnersAll.slice(),
                    html : "",
                    tab : "SEND_TEMPLATE",
                    form : {
                        id : parameter.issueId,  //  이슈 번호
                        projects : [{ id : parameter.projectId}],  //  프로젝트
                        mailUsers : parameter.partners.slice()   //  메일 전송받는 사용자
                        mailUsers : parameter.partners.slice(),   //  메일 전송받는 사용자
                        account : [{account : [], name : [], id : []}],
                    },
                    userName : "",
                    autoCompletePage : {
@@ -59,7 +61,8 @@
                            $scope.vm.html = result.data.data.template;
                        }
                        else {
                            SweetAlert.error($filter("translate")("issue.failedIssueMail"), result.data.message.message); // "이슈 메일 발송 실패"
                            $scope.vm.html = "";
                            //SweetAlert.warning($filter("translate")("issue.selectedPartnersMail"),$filter("translate")("issue.selectedPartnersTemplate")); // option 선택 경고
                        }
                        $rootScope.spinner = false;
@@ -85,20 +88,21 @@
                    $scope.vm.emailTemplateId = 1;
                    $scope.vm.emailTitle = "";
                    $scope.vm.emailTemplates.forEach(function (emailTemplate) {
                        /*if (emailTemplate.id === $scope.vm.emailTemplateId) {
                            $scope.vm.emailTitle = emailTemplate.title;
                        }*/
                        if (emailTemplate.templateType === $scope.vm.emailTemplateType) {
                            $scope.vm.emailTitle = emailTemplate.title;
                        }
                    })
                    if ($rootScope.isDefined($scope.vm.emailTemplateType)) {
                        $scope.vm.emailTemplates.forEach(function (emailTemplate) {
                            if (emailTemplate.templateType === $scope.vm.emailTemplateType) {
                                $scope.vm.emailTitle = emailTemplate.title;
                            }
                        })
                    }
                }
                //  사용자 삭제
                function removeMailTarget(index) {
                    $scope.vm.form.mailUsers.splice(index, 1);
                    $scope.vm.form.account[0].account.splice(index, 1);
                    $scope.vm.form.account[0].name.splice(index, 1);
                    $scope.vm.form.account[0].id.splice(index, 1);
                }
                function formCheck(formInvalid) {
@@ -124,9 +128,9 @@
                        sendEmails : (function () {
                            var sendEmails = [];
                            angular.forEach($scope.vm.form.mailUsers, function (user) {
                                sendEmails.push($rootScope.encryption(user.account));
                            });
                            for(var i=0; i < $scope.vm.form.account[0].account.length; i++) {
                                sendEmails.push($rootScope.encryption($scope.vm.form.account[0].account[i]));
                            }
                            return sendEmails;
                        })(),
@@ -181,7 +185,70 @@
                    return deferred.promise;
                }
                // 메일 주소 추출
                function getAccount(partners) {
                    if (partners != null) {
                        var index = partners.length-1;
                        var id = partners[index].id;
                        var name = partners[index].name;
                        var account = partners[index].account;
                        if(account != null && account.indexOf(",") !== -1) {
                            account = partners[index].account.split(",");
                            for (var i = 0; i < account.length; i++) {
                                $scope.vm.form.account[0].account[index+i] = account[i].trim();
                                $scope.vm.form.account[0].name[index+i] = name;
                                $scope.vm.form.account[0].id[index+i] = id;
                            }
                        } else {
                            $scope.vm.form.account[0].account[index] = account;
                            $scope.vm.form.account[0].name[index] = name;
                            $scope.vm.form.account[0].id[index] = id;
                        }
                    } else {
                        if (parameter.partners != null) {
                            var account = "";
                            var name = "";
                            var id = "";
                            var accountArr = [];
                            var nameArr = [];
                            var idArr =[];
                            angular.forEach(parameter.partners, function (partner) {
                                id = partner.id;
                                account = partner.account;
                                name = partner.name;
                                if(account != null && account.indexOf(",") !== -1) {
                                    //메일주소가 여러개일경우 분리 및 공백 제거
                                    account = partner.account.split(",");
                                    for (var i = 0; i < account.length; i++) {
                                        accountArr.push(account[i].trim());
                                        nameArr.push(name);
                                        idArr.push(id);
                                    }
                                } else if(account != null) {
                                    accountArr.push(account);
                                    nameArr.push(name);
                                    idArr.push(id);
                                }
                            });
                            if(accountArr != null && accountArr.length > 0) {
                                for (var i = 0; i < accountArr.length; i++) {
                                    $scope.vm.form.account[0].account[i] = accountArr[i];
                                    $scope.vm.form.account[0].name[i] = nameArr[i];
                                    $scope.vm.form.account[0].id[i] = idArr[i];
                                }
                            }
                        }
                    }
                }
                $scope.$on("getMailTarget", function (event, result) {
                    $scope.fn.getAccount(result);
                });
                $scope.fn.getAccount();
                $scope.fn.getEmailTemplateList();
            }]);
    });