1개 파일 추가됨
1개 파일 이름 변경됨
4개 파일 변경됨
| | |
| | | 'chartLoader', 'jsTable', 'tableColumnGenerator', 'modalFormAutoScroll', 'summerNote', 'summerNote-ko-KR', 'fullScroll', 'workflowService', 'priorityService', 'issueSearchService', 'issueTableConfigService', 'inputRegex', |
| | | 'severityService', 'issueTypeService', 'issueTypeCustomFieldService', 'issueService', 'issueStatusService', 'issueUserService','issueDepartmentService','issueModifyUserController', 'issueModifyDepartmentController', 'customFieldService', 'issueSearchFieldKeyViewElement', |
| | | 'issueSearchCustomFieldViewElement', 'tableUserImage', 'fullScroll', 'issueCommentService', 'detectIssueEditor', 'formSubmit', 'issueModifyStatusController', 'jsShortCut', |
| | | 'issueAddTableConfigController','issueAddRelationTableConfigController','issueAddDownTableConfigController','domAppend', 'issueDetailImagePreview', 'issueSendMailController', 'htmlDiff', 'issueVersionViewController', 'issueVersionService', |
| | | 'issueAddTableConfigController','issueAddRelationTableConfigController','issueAddDownTableConfigController','domAppend', 'issueDetailImagePreview', 'issueSendMailPartnersController', 'htmlDiff', 'issueVersionViewController', 'issueVersionService', |
| | | 'jsHtmlDiff', 'issueReservationController', 'issueReservationService', 'issueVersionService', 'issueStatusAutoFocus', 'issueRelationService' |
| | | ], function () { |
| | | deferred.resolve(); |
| | |
| | | // 특정 사용자에게 이슈를 메일로 발송 |
| | | function sendMail(partnersAll, partners) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/issue/issueSendMail.html', |
| | | templateUrl : 'views/issue/issueSendMailPartners.html', |
| | | size : "md", |
| | | controller : 'issueSendMailController', |
| | | controller : 'issueSendMailPartnersController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : { |
| | |
| | | partners : partners, |
| | | issueId : $scope.vm.viewer.id, |
| | | projectId : $scope.vm.viewer.projectVo.id, |
| | | companyVos : $scope.vm.viewer.issueCompanyVos, |
| | | ispVos : $scope.vm.viewer.issueIspVos, |
| | | hosingVos : $scope.vm.viewer.issueHostingVos, |
| | | // companyVos : $scope.vm.viewer.issueCompanyVos, |
| | | // ispVos : $scope.vm.viewer.issueIspVos, |
| | | // hosingVos : $scope.vm.viewer.issueHostingVos, |
| | | } |
| | | } |
| | | }); |
File was renamed from src/main/webapp/scripts/app/issue/issueSendMail.controller.js |
| | |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('issueSendMailController', ['$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', |
| | | function ($scope, $rootScope, $q, $log, $resourceProvider, $uibModalInstance, $controller, $injector, SweetAlert, $filter, parameter, Issue) { |
| | | |
| | | $scope.fn = { |
| | |
| | | getMails : getMails, |
| | | removeMailTarget : removeMailTarget, |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck // 폼 체크 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | |
| | | partners : parameter.partnersAll.slice(), |
| | | form : { |
| | | id : parameter.issueId, // 이슈 번호 |
| | | template : "ISSUE_SEND_2", |
| | | projects : [{ id : parameter.projectId}], // 프로젝트 |
| | | mailUsers : parameter.partners.slice() // 메일 전송받는 사용자 |
| | | }, |
| | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | // 업체/ISP/호스팅 이메일 폼 전송 |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | id : $scope.vm.form.id, |
| | | // id : $scope.vm.form.id, |
| | | template : $scope.vm.form.template, |
| | | sendEmails : (function () { |
| | | var sendEmails = []; |
| | | |
| | |
| | | |
| | | 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( |
| | | Issue.sendEmailPartners($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | |
| | | |
| | | return deferred.promise; |
| | | } |
| | | |
| | | }]); |
| | | }); |
| | |
| | | return response; |
| | | }); |
| | | }, |
| | | sendEmailPartners : function (conditions) { |
| | | return $http.post("issue/sendEmailPartners", conditions).then(function (response) { |
| | | $log.debug("이슈 이메일 발송 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | findMailTargetAll : function (conditions) { |
| | | return $http.post("issue/findMailTargetAll", conditions).then(function (response) { |
| | | $log.debug("이슈 이메일 발송 결과 : ", response); |
| | |
| | | 'issueAddTableConfigController' : 'app/issue/issueAddTableConfig.controller', // 이슈 테이블 설정 컨트롤러 |
| | | 'issueAddRelationTableConfigController' : 'app/issue/issueAddRelationTableConfig.controller', // 이슈 테이블 설정 컨트롤러 |
| | | 'issueAddDownTableConfigController' : 'app/issue/issueAddDownTableConfig.controller', // 이슈 테이블 설정 컨트롤러 |
| | | 'issueSendMailController' : 'app/issue/issueSendMail.controller', // 이슈 이메일 발송 컨트롤러 |
| | | 'issueSendMailPartnersController' : 'app/issue/issueSendMailPartners.controller', // 이슈 이메일 발송 컨트롤러 |
| | | 'issueVersionViewController' : 'app/issue/issueVersionView.controller', // 이슈 버전 확인 컨트롤러 |
| | | 'issueReservationController' : 'app/issue/issueReservation.controller', // 이슈 발생 예약 컨트롤러 |
| | | 'issueModifyUserController' : 'app/issue/issueModifyUser.controller', // 이슈 담당자 컨트롤러 |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong translate="issue.selectSendIssueMail">이슈 메일 발송 대상자 선택</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="issueSendForm"> |
| | | <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.mailUsers"> |
| | | <span>{{user.name}}({{user.account}})</span> |
| | | <span class="select3-selection__choice__remove" |
| | | ng-click="fn.removeMailTarget($index)">×</span> |
| | | </span> |
| | | </div> |
| | | |
| | | <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> |
| | | |
| | | <input ng-model="vm.form.template" value="ISSUE_SEND_1" type="radio">1 |
| | | <input ng-model="vm.form.template" value="ISSUE_SEND_2" type="radio">2 |
| | | <input ng-model="vm.form.template" value="ISSUE_SEND_3" type="radio">3 |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span |
| | | translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | ng-disabled="fn.formCheck(issueSendForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="issue.sendMail">이메일 발송</span> |
| | | </button> |
| | | </div> |
| | | </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>--> |
| | | |
| | | |
| | | <!-- <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">--> |
| | | |
| | | <!-- <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>--> |