OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-01 6a0d01e645b7d388c851bc5b0b830564e60aa736
이메일 수정 진행중 , 이슈 상세 및 이슈 리스트 수정
9개 파일 변경됨
397 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/config/SecurityConfiguration.java 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueDetail.controller.js 68 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueList.controller.js 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueSendMail.controller.js 124 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/utils/autoComplete.controller.js 47 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAdd.html 19 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueListNormal.html 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueSendMail.html 125 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/config/SecurityConfiguration.java
@@ -1,7 +1,6 @@
package kr.wisestone.owl.config;
import kr.wisestone.owl.config.security.filter.AjaxSessionExpiredFilter;
import kr.wisestone.owl.config.security.filter.CustomAuthenticationFilter;
import kr.wisestone.owl.config.security.handler.AjaxAuthenticationEntryPoint;
import kr.wisestone.owl.config.security.handler.AjaxAuthenticationFailureHandler;
import kr.wisestone.owl.config.security.handler.AjaxAuthenticationSuccessHandler;
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -31,7 +31,12 @@
                $scope.fn.modifyIssueUser = modifyIssueUser;    //  이슈 담당자 변경
                $scope.fn.modifyIssueDepartment = modifyIssueDepartment;    //  이슈 담당부서 변경
                $scope.fn.initReload = initReload;  //  초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다.
                $scope.fn.sendMail = sendMail;  //  특정 사용자에게 이슈 정보를 메일로 발송
                $scope.fn.sendMail = sendMail;
                $scope.fn.sendMailAll = sendMailAll;
                $scope.fn.sendMailVo = sendMailVo;
                $scope.fn.getParameters = getParameters;
                $scope.fn.getParametersAll = getParametersAll;
                //  특정 사용자에게 이슈 정보를 메일로 발송
                $scope.fn.versionView = versionView;    //  버전 정보를 표시한다.
                $scope.fn.reservation = reservation;    //  예약 정보를 확인 및 변경 한다.
                $scope.fn.getIssueListCallBack = getIssueListCallBack;
@@ -43,7 +48,6 @@
                $scope.fn.getDownTableConfigs = getDownTableConfigs;
                $scope.fn.containsPartner = containsPartner;
                $scope.fn.onActivate = onActivate;
                $scope.fn.makePartnersEmail = makePartnersEmail;
                //  이슈 목록 컨트롤러 vm, fn 상속 중
                $scope.vm.viewer = {};
@@ -1055,36 +1059,64 @@
                    });
                }
                // 업체/ISP/호스팅 배열값을 하나로 합쳐서 메일 클릭시 전달
                function makePartnersEmail() {
                    $scope.vm.form.partnersEmail = $scope.vm.viewer.issueCompanyVos.concat($scope.vm.viewer.issueIspVos, $scope.vm.viewer.issueHostingVos)
                    return $scope.vm.form.partnersEmail;
                function sendMailVo(partnerVos) {
                    $scope.fn.sendMail($scope.fn.getParametersAll(), $scope.fn.getParameters(null, partnerVos));
                }
                function sendMailAll() {
                    var param = $scope.fn.getParametersAll();
                    $scope.fn.sendMail(param, param);
                }
                //  특정 사용자에게 이슈를 메일로 발송
                function sendMail(issueId, projectId) {
                    makePartnersEmail();
                function sendMail(partnersAll, partners) {
                    $uibModal.open({
                        templateUrl : 'views/issue/issueSendMail.html',
                        size : "md",
                        controller : 'issueSendMailController',
                        backdrop : 'static',
                        resolve : {
                            parameter : function () {
                                return {
                                    departmentVos : [$scope.vm.form.issues[0].departmentVos],
                                    partners : $scope.vm.form.partnersEmail,
                                    issueId : issueId,
                                    projectId : projectId
                                    // issueCompanyFields : [$scope.vm.viewer.issueCompanyVos[0]],
                                    // issueIspFields : [$scope.vm.viewer.issueIspVos[0]],
                                    // issueHostingFields : [$scope.vm.viewer.issueHostingVos[0]],
                                };
                            parameter : {
                                partnersAll : partnersAll,
                                partners : partners,
                                issueId : $scope.vm.viewer.id,
                                projectId : $scope.vm.viewer.projectVo.id,
                                ispVos : $scope.vm.viewer.ispVos,
                                hosingVos : $scope.vm.viewer.hosingVos,
                                companyVos : $scope.vm.viewer.companyVos,
                            }
                        }
                    });
                }
                function getParametersAll() {
                    var params = $scope.fn.getParameters(null, $scope.vm.viewer.issueCompanyVos);
                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos);
                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
                    if (params != null && params.length > 0) {
                        for (let i = 0; i < params.length; i++) {
                            params[i].id = i;
                        }
                    }
                    return params;
                }
                function getParameters(sourceArr, partnerVos) {
                    var excludeVos = sourceArr != null ? sourceArr.slice() : [];
                    angular.forEach(partnerVos, function (vo) {
                        var account = {
                            account : vo.email
                        }
                        Object.assign(vo, account)
                        excludeVos.push(vo);
                    });
                    return excludeVos;
                }
                //  변경 정보를 확인한다.
                function versionView(issueId) {
                    $uibModal.open({
src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -504,6 +504,7 @@
                                $scope.vm.issueTypeId = result.data.data[0].issueTypeId;
                                $scope.vm.projectKey = result.data.data[0].projectKey;
                                $scope.vm.issueNumber = result.data.data[0].issueNumber;
                                $scope.vm.projectName = result.data.data[0].projectName;
                                $scope.vm.page.selectedPage = currentPage + 1;
                                $scope.vm.responseData = result.data;
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;
                }
            }]);
    });
src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -482,44 +482,21 @@
                    return deferred.promise;
                }
                function getMailTargetAll(query, excludeList, page, callBack) {
                    var conditions = {
                        id : query,
                        excludeIds : (function () {
                            var excludeIds = [];
                            angular.forEach(excludeList, function (exclude) {
                                excludeIds.push(exclude.id);
                            });
                            return excludeIds;
                        })(),
                        partnersEmailIds : (function () {
                            var partnersEmailIds = [];
                            angular.forEach($scope.vm.form.partners, function (partner) {
                                partnersEmailIds.push(partner.email);
                            });
                            return partnersEmailIds;
                        })(),
                    };
                function getMailTargetAll(excludeList) {
                    var deferred = $q.defer();
                    Issue.findMailTargetAll($resourceProvider.getContent(         //  페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다.
                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
                        if (result.data.message.status === "success") {
                            if ($rootScope.isDefined(callBack)) {
                                callBack(result);
                            }
                            deferred.resolve(result.data.data);
                    var partners = $scope.vm.partners.slice();
                    if (excludeList != null && excludeList.length > 0) {
                        for (let i = partners.length - 1 ; i >= 0 ; i--) {
                            excludeList.forEach(function (exclude) {
                                if (partners[i].id === exclude.id) {
                                    partners.splice(i, 1);
                                }
                            });
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // "이슈 유형 목록 조회 실패"
                        }
                    });
                    }
                    deferred.resolve(partners);
                    return deferred.promise;
                }
src/main/webapp/views/issue/issueAdd.html
@@ -1,7 +1,7 @@
<div class="formModal">
    <div class="modal-header faded smaller">
        <div class="modal-title">
            <strong translate="issue.createIssue">이슈 만들기</strong>
            <strong translate="issue.createIssue">이슈 수정</strong>
        </div>
        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
            <span aria-hidden="true"> &times;</span>
@@ -123,7 +123,7 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="common.assigneeTeam">담당부서</span> </label>
                        <js-autocomplete-multi data-input-name="department"
                        <js-autocomplete-multi data-input-name="departments"
                                               selected-model="vm.form.departments"
                                               search="vm.departmentName"
                                               source="fn.getIssueDepartmentList(vm.departmentName, vm.form.departments)"
@@ -260,15 +260,6 @@
                                </div>
                                <div ng-switch-when="IP_ADDRESS">
                                    <input type="text" class="form-control input-sm"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                </div>
                                <div ng-switch-when="EMAIL">
                                    <input type="text" class="form-control input-sm"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
@@ -424,7 +415,7 @@
                </div>
            </div>
            <div ng-show="fn.containsPartner('ISP')" class="row">
            <div ng-show="fn.containsPartner('ISP')"  class="row">
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="ispField.name">ISP 이름</span> </label>
@@ -661,4 +652,6 @@
            ng-disabled="fn.formCheck(issueAddForm.$invalid)"
            ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
    </button>
</div>
</div>
src/main/webapp/views/issue/issueDetail.html
@@ -103,7 +103,7 @@
            </span>
            <a class="show-ticket-info cursor">
                <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)" data-toggle="tooltip" data-placement="right" title="다른 사용자에게 이슈 보내기"></i>
                <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="다른 사용자에게 이슈 보내기"></i>
                <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 변경 이력 상세 보기"></i>
                <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck"
                   ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 발생 예약 하기"></i>
@@ -313,7 +313,7 @@
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.email">이메일</span>:
                                <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueCompanyVos[0].email}}</span>
                                <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueCompanyVos)">{{vm.viewer.issueCompanyVos[0].email}}</span>
                            </div>
                        </div>
                    </div>
@@ -373,7 +373,7 @@
                        <div class="form-group">
                            <div class="">
                                <span translate="ispField.email">이메일</span>:
                                <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueIspVos[0].email}}</span>
                                <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueIspVos)">{{vm.viewer.issueIspVos[0].email}}</span>
                            </div>
                        </div>
                    </div>
@@ -434,7 +434,7 @@
                        <div class="form-group">
                            <div class="">
                                <span translate="hostingField.email">이메일</span>:
                                <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueHostingVos[0].email}}</span>
                                <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueHostingVos)">{{vm.viewer.issueHostingVos[0].email}}</span>
                            </div>
                        </div>
                    </div>
src/main/webapp/views/issue/issueListNormal.html
@@ -39,6 +39,10 @@
                                            <issue-search-array-view-element lists="vm.projects"
                                                                             type="'project'"></issue-search-array-view-element>
                                            <p ng-if="$root.isDefined(vm.projectName)">
                                                {{vm.projectName}}
                                                <span ng-click="vm.projectName = ''">×</span>
                                            </p>
                                            <!--    이슈 타입   -->
                                            <issue-search-field-key-view-element lists="vm.issueTypes"
                                                                                 keys="vm.search.issueTypeIds"></issue-search-field-key-view-element>
src/main/webapp/views/issue/issueSendMail.html
@@ -13,104 +13,28 @@
            <div class="form-group">
                <small translate="issue.sendIssueSelectedUsers">프로젝트에 참여하고 있는 다른 사용자에게 이슈 정보를 보냅니다.</small>
                <div class="select3-selection__choicediv">
                            <span class="select3-selection__choice" ng-repeat="user in vm.form.users">
                                <span class="avatar-w"><img ng-src="{{user.profile}}"></span>
                            <span class="select3-selection__choice" ng-repeat="user in vm.form.mailUsers">
                                <span>{{user.name}}({{user.account}})</span>
                                <span class="select3-selection__choice__remove"
                                      ng-click="fn.removeManager($index)">×</span>
                                      ng-click="fn.removeMailTarget($index)">×</span>
                            </span>
                </div>
<!--                <js-autocomplete-single data-input-name="issue"-->
<!--                                        selected-model="vm.form.issues"-->
<!--                                        search="vm.issueName"-->
<!--                                        source="fn.getIssueList(vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)"-->
<!--                                        page="vm.autoCompletePage.issue.page"-->
<!--                                        total-page="vm.autoCompletePage.issue.totalPage"-->
<!--                                        input-disabled="false"-->
<!--                                        translation-texts="{ empty : 'common.emptyIssue' }"-->
<!--                                        extra-settings="{ displayProp : 'title' , idProp : 'id', imageable : false, imagePathProp : '',-->
<!--                                            type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single>-->
<!--                {{vm.form.companyFieldsEmail}}-->
                <label><span>협력사 메일</span></label>
                <js-autocomplete-multi data-input-name="partnersEmail"
                                       selected-model="vm.form.partnersEmail"
                                       search="vm.partnerName"
                                       source="fn.getMailTargetAll(vm.form.partnersEmail)"
                                       input-disabled="false"
                                       page="vm.autoCompletePage.partnersMail.page"
                                       total-page="vm.autoCompletePage.partnersMail.totalPage"
                                       modal-form-auto-scroll
                                       extra-settings="{ displayProp : 'byName' , idProp : 'email', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi>
<!--                <ng-dropdown-multiselect class="multiSelect cursor"-->
<!--                                         data-input-name="companyFieldsEmail"-->
<!--                                         selected-model="vm.form.companyFieldsEmail.concat(vm.form.ispFieldsEmail,vm.form.hostingFieldsEmail)"-->
<!--                                         extra-settings="{ stringTypeOption : true }"-->
<!--                                         options="vm.options.companyFieldsEmail"></ng-dropdown-multiselect>-->
<!--                <span class="issue-detail-label" translate="companyField.info"></span>-->
<!--                <input ng-if="vm.form.companyFieldsEmail != null"-->
<!--                       type="text"-->
<!--                       class="form-control"-->
<!--                       kr-input-->
<!--                       autocomplete="off"-->
<!--                       ng-model="vm.form.companyFieldsEmail">-->
<!--                <span class="issue-detail-label" translate="ispField.info"></span>-->
<!--                <input ng-if="vm.form.ispFieldsEmail != null"-->
<!--                       type="text"-->
<!--                       class="form-control"-->
<!--                       kr-input-->
<!--                       autocomplete="off"-->
<!--                       ng-model="vm.form.ispFieldsEmail">-->
<!--                <span class="issue-detail-label" translate="hostingField.info"></span>-->
<!--                <input ng-if="vm.form.hostingFieldsEmail != null"-->
<!--                       type="text"-->
<!--                       class="form-control"-->
<!--                       kr-input-->
<!--                       autocomplete="off"-->
<!--                       ng-model="vm.form.hostingFieldsEmail">-->
<!--                <a style="display: flex; text-align: center; justify-content: center;">-->
<!--                    <i class="os-icon os-icon-email-forward mr-20 mt-20 cursor" ng-click="fn.formSubmit(data.id)">1</i>-->
<!--                    <i class="os-icon os-icon-email-forward mr-20 mt-20 cursor" ng-click="fn.formSubmit(data.id)">2</i>-->
<!--                    <i class="os-icon os-icon-email-forward mr-20 mt-20 cursor" ng-click="fn.formSubmit(data.id)">3</i>-->
<!--                </a>-->
<!--                <div class="modal-content">-->
<!--                    <a style="display: flex; text-align: center; justify-content: center;">-->
<!--                        <img onclick="emailTemplate()" id="template1" class="cursor" src="assets/images/btn_facebook.png">-->
<!--                        <img onclick="emailTemplate()" id="template2" class="cursor" src="assets/images/btn_kakao.png">-->
<!--                        <img onclick="emailTemplate()" id="template3" class="cursor" src="assets/images/btn_google.png">-->
<!--                    </a>-->
<!--                </div>-->
<!--                <form action="${pageContext.request.contextPath}/updatetNoticePro.do" method="post" enctype="multipart/form-data" name="noticeForm">-->
<!--                    <input type='file' id="filename" name="filename"/>-->
<!--                    <img id="preImage" src="${pageContext.request.contextPath}/saveFile/${noticeVO.filename}" alt="image_title" onerror='this.src="${pageContext.request.contextPath}/images/no_img.jpg"'/>-->
<!--                </form>-->
                <js-input-autocomplete data-input-name="mailUsers"
                                       owl-auto-focus
                                       target=".auto-complete-i0nput"
                                       selected-model="vm.form.mailUsers"
                                       search="vm.userName"
                                       page="vm.autoCompletePage.user.page"
                                       total-page="vm.autoCompletePage.user.totalPage"
                                       source="fn.getMailTargetAll(vm.form.mailUsers)"
                                       translation-texts="{ empty : 'common.emptyUser'}"
                                       input-disabled="vm.form.mailUsers == null"
                                       extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : 'profile',
                                               type : 'partner', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete>
            </div>
        </form>
    </div>
<!--    <h6>{{vm.form.companyFieldsEmail}}</h6>-->
<!--   <span>{{vm.form.id}}===============</span>-->
<!--   <h6>{{vm.form.ispFieldsEmail}}===============</h6>-->
<!--   <span>===============</span>-->
<!--   <h6>{{vm.form.hostingFieldsEmail}}</h6>-->
<!--    <div style="display: flex; text-align: center">-->
<!--            템플릿1-->
<!--        </div>-->
<!--        <div style="border: 1px #111111; margin-left: 20px; box-sizing: border-box;">-->
<!--            템플릿2-->
    <!--        <div style="border: 1px #111111; margin-left: 20px; box-sizing: border-box;">-->
<!--        </div>-->
<!--        <div style="border: 1px #111111; margin-left: 20px; box-sizing: border-box;">-->
<!--            템플릿3-->
<!--        </div>-->
<!--    </div>-->
    <div class="modal-footer buttons-on-right">
        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span
@@ -121,24 +45,3 @@
        </button>
    </div>
</div>
<script>
    function emailTemplate() {
        $('#template1').click(function() {
            $('#template1').hide();
        });
        $('#template2').click(function() {
            $('#template2').hide();
        });
        $('#template3').click(function() {
            $('#template3').hide();
        });
    }
    function changeIMG() {
        $('#template1').attr("src", "assets/images/previewTemplate.png")
    }
</script>