이메일 수정 진행중 , 이슈 상세 및 이슈 리스트 수정
| | |
| | | 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; |
| | |
| | | $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; |
| | |
| | | $scope.fn.getDownTableConfigs = getDownTableConfigs; |
| | | $scope.fn.containsPartner = containsPartner; |
| | | $scope.fn.onActivate = onActivate; |
| | | $scope.fn.makePartnersEmail = makePartnersEmail; |
| | | |
| | | // 이슈 목록 컨트롤러 vm, fn 상속 중 |
| | | $scope.vm.viewer = {}; |
| | |
| | | }); |
| | | } |
| | | |
| | | // 업체/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({ |
| | |
| | | $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; |
| | | |
| | |
| | | '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; |
| | |
| | | }); |
| | | } |
| | | |
| | | // 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() { |
| | |
| | | $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; |
| | | } |
| | | }]); |
| | | }); |
| | |
| | | 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; |
| | | } |
| | |
| | | <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"> ×</span> |
| | |
| | | <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)" |
| | |
| | | </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" |
| | |
| | | </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> |
| | |
| | | ng-disabled="fn.formCheck(issueAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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 |
| | |
| | | </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> |