From 491455286747cb100caee9ca12d9b5a94077b85e Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 18 1월 2022 10:07:11 +0900
Subject: [PATCH] 이슈 추가/수정 시 ISP, 호스팅 이름 못 불러오는 문제 해결 (custom-input)

---
 src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js |  160 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 122 insertions(+), 38 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js b/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
index a6a44a2..f1a4539 100644
--- a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
@@ -5,8 +5,8 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('issueSendMailPartnersController', ['$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) {
+        app.controller('issueSendMailPartnersController', ['$scope', '$rootScope', '$q','$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'SweetAlert', '$filter', 'parameter', 'Issue', 'EmailTemplate',
+            function ($scope, $rootScope, $q, $log, $resourceProvider, $uibModalInstance, $controller, $injector, SweetAlert, $filter, parameter, Issue, EmailTemplate) {
 
                 $scope.fn = {
                     getUserListCallBack : getUserListCallBack,  //  �궗�슜�옄 auto complete callback function
@@ -15,8 +15,9 @@
                     removeMailTarget : removeMailTarget,
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck,   //  �뤌 泥댄겕
-                    changeTemplate : changeTemplate,
-                    showEmailTemplate : showEmailTemplate,
+                    onChangeEmailTemplate : onChangeEmailTemplate, // �씠硫붿씪 �뀥�뵆由� �꽑�깮�떆 �떎�뻾
+                    getEmailTemplateList : getEmailTemplateList, // �씠硫붿씪 �뀥�뵆由� 紐⑸줉 媛��졇�삤湲�
+                    getAccount : getAccount
                 };
 
                 $scope.vm = {
@@ -24,11 +25,13 @@
                     ispVos : parameter.ispVos,
                     hostingVos : parameter.hostingVos,
                     partners : parameter.partnersAll.slice(),
+                    html : "",
+                    tab : "SEND_TEMPLATE",
                     form : {
                         id : parameter.issueId,  //  �씠�뒋 踰덊샇
-                        template : "ISSUE_SEND_2",
                         projects : [{ id : parameter.projectId}],  //  �봽濡쒖젥�듃
-                        mailUsers : parameter.partners.slice()   //  硫붿씪 �쟾�넚諛쏅뒗 �궗�슜�옄
+                        mailUsers : parameter.partners.slice(),   //  硫붿씪 �쟾�넚諛쏅뒗 �궗�슜�옄
+                        account : [{account : [], name : [], id : []}],
                     },
                     userName : "",
                     autoCompletePage : {
@@ -36,14 +39,68 @@
                             page : 0,
                             totalPage : 0
                         }
-                    }
+                    },
+                    emailTitle : "",
+                    emailTemplateId : -1,
+                    emailTemplates : [],
+                    emailTemplateType : "",
                 };
 
                 angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
 
+                function onChangeEmailTemplate() {
+                    var content = {
+                        templateType : $scope.vm.emailTemplateType,
+                        issueId : parameter.issueId
+                    }
+                    EmailTemplate.find($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.vm.html = result.data.data.template;
+                        }
+                        else {
+                            $scope.vm.html = "";
+                            //SweetAlert.warning($filter("translate")("issue.selectedPartnersMail"),$filter("translate")("issue.selectedPartnersTemplate")); // option �꽑�깮 寃쎄퀬
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+                }
+
+                function getEmailTemplateList() {
+                    $scope.vm.emailTemplates.push({
+                            templateType : "ISSUE_SEND_1",
+                            title : "�뀥�뵆由�1"
+                    });
+
+                    $scope.vm.emailTemplates.push({
+                            templateType : "ISSUE_SEND_2",
+                            title : "�뀥�뵆由�2"
+                    });
+
+
+                    $scope.vm.emailTemplates.push({
+                            templateType : "ISSUE_SEND_3",
+                            title : "�뀥�뵆由�3"
+                    });
+
+                    $scope.vm.emailTemplateId = 1;
+                    $scope.vm.emailTitle = "";
+                    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);
                 }
 
                 function formCheck(formInvalid) {
@@ -62,14 +119,16 @@
                 function formSubmit() {
                     $rootScope.spinner = true;
                     var content = {
-                        id : $scope.vm.form.id,
-                        template : $scope.vm.form.template,
+                        id : $scope.vm.emailTemplateId,
+                        template : $scope.vm.html,
+                        title : $scope.vm.emailTitle,
+                        issueId : $scope.vm.form.id,
                         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;
                         })(),
@@ -82,6 +141,7 @@
                         if (result.data.message.status === "success") {
                             SweetAlert.success($filter("translate")("issue.succeededIssueMail"), $filter("translate")("issue.sentToTheSelectedUser")); // "�씠�뒋 硫붿씪 諛쒖넚 �셿猷�"
                             $scope.fn.cancel();
+                            $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId});
                         }
                         else {
                             SweetAlert.error($filter("translate")("issue.failedIssueMail"), result.data.message.message); // "�씠�뒋 硫붿씪 諛쒖넚 �떎�뙣"
@@ -123,37 +183,61 @@
                     return deferred.promise;
                 }
 
-                function changeTemplate(templateId){
-                    $scope.vm.form.template = templateId;
+                // 硫붿씪 二쇱냼 異붿텧
+                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;
 
-                    var elements = document.getElementsByClassName("TemplateIMG");
-                    for (let i = elements.length - 1; i >= 0; i--) {
-                        if (elements[i].id === templateId) {
-                            elements[i].className += " TemplateIMG-selected";
+                        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 {
-                            elements[i].className = "TemplateIMG";
+                            $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 = "";
+                            angular.forEach(parameter.partners, function (partner) {
+                                id = partner.id;
+                                account = partner.account;
+                                if(account != null && account.indexOf(",") !== -1) {
+                                    account = partner.account.split(",");
+                                }
+                                name = partner.name;
+                            });
+                            if(account != null && account.size > 1) {
+                                for (var i = 0; i < account.size; i++) {
+                                    $scope.vm.form.account[0].account[i] = account[i].trim();
+                                    $scope.vm.form.account[0].name[i] = name;
+                                    $scope.vm.form.account[0].id[i] = id;
+                                }
+                            } else {
+                                $scope.vm.form.account[0].account[i] = account;
+                                $scope.vm.form.account[0].name[i] = name;
+                                $scope.vm.form.account[0].id[i] = id;
+                            }
                         }
                     }
                 }
 
-                function showEmailTemplate() {
-                    const div1 = document.getElementById('Email-Template1');
-                    const div2 = document.getElementById('Email-Template2');
+                $scope.$on("getMailTarget", function (event, result) {
+                    $scope.fn.getAccount(result);
+                });
 
-                    if(div1.style.display === 'none') {
-                        div1.style.display = 'block';
-                    } else if (div1.style.display === 'block') {
-                        div1.style.display = 'none';
-                    }
-                    if (div2.style.display == 'none') {
-                        div2.style.display = 'block';
-                    } else if (div2.style.display == 'block') {
-                        div2.style.display = 'none';
-                    }
-                }
+                $scope.fn.getAccount();
+                $scope.fn.getEmailTemplateList();
+
             }]);
+
     });
-// $("Email-Template1").toggle(500) // show
-// document.getElementById("Email-Template1").style.display = "none"; // hide
-// $("Email-Template2").toggle(500) ; // show
-// document.getElementById("Email-Template2").style.display = "none"; // hide
\ No newline at end of file

--
Gitblit v1.8.0