From 424867c3809bb49bd1cc8a8db10bf656d8617a1d Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 수, 01 12월 2021 11:49:25 +0900 Subject: [PATCH] 이메일 수정 진행중 , 이슈 상세 및 이슈 리스트 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 1 src/main/webapp/scripts/components/utils/autoComplete.controller.js | 43 +++++ src/main/webapp/views/issue/issueSendMail.html | 121 +++++++++++++- src/main/webapp/scripts/config.js | 32 ++- src/main/webapp/scripts/app/issue/issueSendMail.controller.js | 82 ++++++++-- src/main/webapp/views/issue/issueListNormal.html | 49 ++--- src/main/webapp/scripts/components/issue/issue.service.js | 6 src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js | 2 src/main/webapp/scripts/app/issue/issueList.controller.js | 36 ++++ src/main/webapp/views/issue/issueDetail.html | 19 +- src/main/webapp/scripts/app/issue/issueDetail.controller.js | 57 +++++-- src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js | 11 + 12 files changed, 352 insertions(+), 107 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index e67a094..0cf87fe 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -923,6 +923,7 @@ case "02": // �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂�, �뙎湲�, 湲곕줉�쓣 �뀑�똿�븳�떎. this.setIssueDetail(issueVo, issue); // �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎. + issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class)); break; } } diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index fe209d8..955bfbb 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -43,6 +43,7 @@ $scope.fn.getDownTableConfigs = getDownTableConfigs; $scope.fn.containsPartner = containsPartner; $scope.fn.onActivate = onActivate; + $scope.fn.makePartnersEmail = makePartnersEmail; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� $scope.vm.viewer = {}; @@ -72,7 +73,10 @@ $scope.vm.form = { issues : [], //�뿰愿� �씪媛� - issuesDown : [] // �븯�쐞 �씪媛� + issuesDown : [], // �븯�쐞 �씪媛� + issueCompanyVos : [], + issueIspVos : [], + issueHostingVos : [] }; @@ -636,16 +640,25 @@ } // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. - $rootScope.$on("getIssueDetail", function (event, args) { - $scope.vm.viewer.id = args["id"]; - $scope.fn.getIssueDetail(); - }); + // $rootScope.$on("getIssueDetail", function (event, args) { + // $scope.vm.viewer.id = args["id"]; + // $scope.fn.getIssueDetail(); + // }); // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. - $scope.$on("getIssueDetail", function (event, args) { - $scope.vm.viewer.id = args["id"]; - $scope.fn.getIssueDetail(); - }); + // $scope.$on("getIssueDetail", function (event, args) { + // $scope.vm.viewer.id = args["id"]; + // $scope.fn.getIssueDetail(); + // }); + + $scope.$watch(function() { + return $rootScope.currentDetailIssueId; + }, function() { + if ($rootScope.currentDetailIssueId != null) { + $scope.vm.viewer.id = $rootScope.currentDetailIssueId; + $scope.fn.getIssueDetail(); + } + }, true); // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. function initReload() { @@ -653,9 +666,9 @@ $scope.vm.issueForm.issueStatusList = []; $scope.vm.issueForm.issueStatusId = ""; $scope.vm.issueTypeId = $rootScope.getCurrentIssueTypeId(); - /*if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { - $scope.$apply(); - }*/ + // if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { + // $scope.$apply(); + // } } // �씠�뒋 �긽�깭 蹂�寃� @@ -804,7 +817,7 @@ $scope.fn.getDownTableConfigs(); Issue.detail($resourceProvider.getContent( - {id : $scope.vm.viewer.id, deep : "02", customFields : $scope.vm.customFields}, + {id : $scope.vm.viewer.id, deep : "02"}, $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { @@ -846,6 +859,10 @@ } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos; + + if ($rootScope.workProject.id > -1) { + $rootScope.changeLastProject(result.data.data.projectVo.id); + } } } else { @@ -1038,8 +1055,15 @@ }); } + // �뾽泥�/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 sendMail(issueId, projectId) { + makePartnersEmail(); $uibModal.open({ templateUrl : 'views/issue/issueSendMail.html', size : "md", @@ -1049,11 +1073,12 @@ parameter : function () { return { departmentVos : [$scope.vm.form.issues[0].departmentVos], - issueCompanyFields : [$scope.vm.form.issues[0].issueCompanyVos], - issueIspFields : [$scope.vm.form.issues[0].issueIspVos], - issueHostingFields : [$scope.vm.form.issues[0].issueHostingVos], + 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]], }; } } diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index fe9dc27..7c348ac 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -169,10 +169,11 @@ // �쁽�옱 �긽�꽭�솕硫댁쑝濡� 蹂대젮怨좏븯�뒗 �씠�뒋 id瑜� 湲곗뼲�븳�떎. $rootScope.currentDetailIssueId = id; // �씠�뒋 �긽�꽭 �솕硫� �슂泥� - $rootScope.$broadcast("getIssueDetail", { - id : id - }); + // $scope.$broadcast("getIssueDetail", { + // id : id + // }); } + // 紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. function listView() { @@ -183,6 +184,7 @@ $scope.vm.responseData.data = angular.copy(temp); // 留덉�留됱쑝濡� 蹂닿퀬�엳�뜕 �씠�뒋 id瑜� 珥덇린�솕�븳�떎. $rootScope.currentDetailIssueId = null; + $scope.$broadcast("getIssueList", {id: $rootScope.currentDetailIssueId}); } // �씠�뒋 �뀒�씠釉� �꽕�젙 @@ -508,6 +510,31 @@ if (detail) { changeDetailView(result.data.data[0].id); } + } + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + }); + } + + // �씠硫붿씪 �봽濡쒖젥�듃 寃쎈줈濡� �씠�룞 �썑 �긽�꽭 吏꾩엯�떆 議고쉶 + function getDetailList(projectKey, number) { + var conditions = { + projectKey : projectKey, + combinationIssueNumber : number + }; + + Issue.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (result.data.data != null && result.data.data.length > 0) { + $scope.vm.projectKey = result.data.data[0].projectKey; + $scope.vm.issueNumber = result.data.data[0].issueNumber; + $scope.vm.responseData = result.data; + + changeDetailView(result.data.data[0].id); } } else { @@ -885,7 +912,8 @@ // �뙆�씪誘명꽣 �씫湲� var params = $rootScope.previousGetParams; if ($rootScope.isDefined(params)) { - $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); + // $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); + getDetailList(params.projectKey, params.issueNumber); $rootScope.previousGetParams = null; // $rootScope.issueTypeId = $rootScope.issueTypeMenu.id; return; diff --git a/src/main/webapp/scripts/app/issue/issueSendMail.controller.js b/src/main/webapp/scripts/app/issue/issueSendMail.controller.js index 29e991e..3643b48 100644 --- a/src/main/webapp/scripts/app/issue/issueSendMail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueSendMail.controller.js @@ -13,49 +13,63 @@ removeManager : removeManager, // �쟾�넚 ���긽�옄 �궘�젣 cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - formCheck : formCheck // �뤌 泥댄겕 + // formCheck : formCheck // �뤌 泥댄겕 }; + $scope.vm = { form : { id : parameter.issueId, // �씠�뒋 踰덊샇 projects : [{ id : parameter.projectId}], // �봽濡쒖젥�듃 - users : [] // 硫붿씪 �쟾�넚諛쏅뒗 �궗�슜�옄 + partners : parameter.partners, + users : [], // 硫붿씪 �쟾�넚諛쏅뒗 �궗�슜�옄 + issueCompanyVos : [], + issueIspVos : [], + issueHostingVos : [] + // companyFields : parameter.issueCompanyFields, // �뾽泥� �씠硫붿씪 + // ispFields : parameter.issueIspFields, // ISP �씠硫붿씪 + // hostingFields : parameter.issueHostingFields, // �샇�뒪�똿 �씠硫붿씪 }, 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 formCheck(formInvalid) { + // if (formInvalid) { + // return true; + // } + // + // if ($scope.vm.form.users.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.users, function (user) { - sendEmails.push($rootScope.encryption(user.account)); + angular.forEach($scope.vm.form.projects, function (project) { + sendEmails.push(project.id); }); return sendEmails; @@ -78,6 +92,42 @@ }); } + // 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; diff --git a/src/main/webapp/scripts/components/issue/issue.service.js b/src/main/webapp/scripts/components/issue/issue.service.js index 4c28715..22cf448 100644 --- a/src/main/webapp/scripts/components/issue/issue.service.js +++ b/src/main/webapp/scripts/components/issue/issue.service.js @@ -98,6 +98,12 @@ return response; }); }, + findMailTargetAll : function (conditions) { + return $http.post("issue/findMailTargetAll", conditions).then(function (response) { + $log.debug("�씠�뒋 �씠硫붿씪 諛쒖넚 寃곌낵 : ", response); + return response; + }); + } } } ]) diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js index ef94066..1b527bf 100644 --- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js +++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js @@ -40,6 +40,7 @@ $scope.fn.getPartnerList = getPartnerList; // �뾽泥�/isp/�샇�뒪�똿 紐⑸줉 議고쉶 $scope.fn.getIssueTypeList = getIssueTypeList; // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 $scope.fn.getCustomFieldList = getCustomFieldList; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 + $scope.fn.getMailTargetAll = getMailTargetAll; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 function getUserList(query, excludeList, page, callBack) { var conditions = { @@ -480,6 +481,48 @@ 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; + })(), + }; + 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); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // "�씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } } ]); } diff --git a/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js b/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js index 4f8cf0f..38d3899 100644 --- a/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js +++ b/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js @@ -25,7 +25,7 @@ // �씠誘몄� 媛ㅻ윭由� 留뚮뱾湲� function makeNgImageGallery() { - var makeTag = '<ng-image-gallery images="images" thumb-size="80" bubbles="true" bubble-size="50" img-bubbles="true"></ng-image-gallery>'; + var makeTag = '<ng-image-gallery images="images" thumb-size="60" bubbles="true" bubble-size="50" img-bubbles="true"></ng-image-gallery>'; var linkFn = $compile(makeTag); var content = linkFn($scope); $element.append(content); diff --git a/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js b/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js index 92ee0a0..5c4ae0c 100644 --- a/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js +++ b/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js @@ -51,9 +51,14 @@ break; } } - - makeTag += "<span ng-click='fn.remove(" + key.fieldKey + ")'>횞</span>"; - makeTag += "</p>"; + if (target.fieldValue !== null) { + makeTag += "<span></span>"; + makeTag += "</p>"; + } + else { + makeTag += "<span ng-click='fn.remove(" + key.fieldKey + ")'>횞</span>"; + makeTag += "</p>"; + } }); var linkFn = $compile(makeTag); diff --git a/src/main/webapp/scripts/config.js b/src/main/webapp/scripts/config.js index d118d3c..74ad46c 100644 --- a/src/main/webapp/scripts/config.js +++ b/src/main/webapp/scripts/config.js @@ -318,23 +318,25 @@ }; $rootScope.changeLastProject = function (projectId, reload = true) { - if (User != null) { - User.updateLastProject($resourceProvider.getContent( - {lastProjectId: projectId}, - $resourceProvider.getPageContent(0, 0))).then(function (result) { + if ($rootScope.workProject == null || $rootScope.workProject.id !== projectId ) { + if (User != null) { + User.updateLastProject($resourceProvider.getContent( + {lastProjectId: projectId}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { - if (result.data.message.status === "success") { - $rootScope.user = result.data.data; - $rootScope.projects.forEach(function (el) { - if (el.id == projectId) { - $rootScope.workProject = el; + if (result.data.message.status === "success") { + $rootScope.user = result.data.data; + $rootScope.projects.forEach(function (el) { + if (el.id == projectId) { + $rootScope.workProject = el; - $rootScope.$broadcast("changeLastProject", { id : el.id }); - } - }); - $state.go($state.current, {}, {reload: reload}); - } - }); + $rootScope.$broadcast("changeLastProject", {id: el.id}); + } + }); + $state.go($state.current, {}, {reload: reload}); + } + }); + } } }; diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index cad525e..765c919 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -192,6 +192,11 @@ <span class="issue-detail-label" style="position: relative; top: 1rem" ng-show="vm.viewer.issueCustomFields == ''">�궗�슜�옄 �젙�쓽 �븘�뱶媛믪씠 �뾾�뒿�땲�떎.</span> </div> </div> + <div class="col-md-2"> + <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> + </div> + <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> + </div> </div> <!-- �궗�슜�옄 �젙�쓽 �븘�뱶 --> <div class="row"> @@ -256,13 +261,9 @@ </div> </div> </div> - <div class="pdt0" style="position: relative; bottom: 1rem"> - <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> - </div> - <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> - <span></span> - </div> + </div> + <!-- <div class=""> <label class="issue-detail-label"><span>{{vm.viewer.issueCustomFieldValueVos[0].useValue}}</span> </label> @@ -312,7 +313,7 @@ <div class="form-group"> <div class=""> <span translate="companyField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueCompanyVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueCompanyVos[0].email}}</span> </div> </div> </div> @@ -372,7 +373,7 @@ <div class="form-group"> <div class=""> <span translate="ispField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueIspVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueIspVos[0].email}}</span> </div> </div> </div> @@ -433,7 +434,7 @@ <div class="form-group"> <div class=""> <span translate="hostingField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueHostingVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)">{{vm.viewer.issueHostingVos[0].email}}</span> </div> </div> </div> diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html index 6fec887..7575114 100644 --- a/src/main/webapp/views/issue/issueListNormal.html +++ b/src/main/webapp/views/issue/issueListNormal.html @@ -38,9 +38,7 @@ <!-- �봽濡쒖젥�듃 --> <issue-search-array-view-element lists="vm.projects" type="'project'"></issue-search-array-view-element> - <p ng-if="$root.isDefined(vm.projectKey)"> - {{vm.projectKey}} - </p> + <!-- �씠�뒋 ���엯 --> <issue-search-field-key-view-element lists="vm.issueTypes" keys="vm.search.issueTypeIds"></issue-search-field-key-view-element> @@ -48,16 +46,6 @@ <!-- �씠�뒋 �긽�깭 --> <issue-search-field-key-view-element lists="vm.issueStatuses" keys="vm.search.issueStatusIds"></issue-search-field-key-view-element> - - <!-- �씠�뒋 踰덊샇 --> - <p ng-if="$root.isDefined(vm.issueNumber)"> - {{vm.issueNumber}} - </p> - - <p ng-if="$root.isDefined(vm.search.combinationIssueNumber)"> - {{vm.search.combinationIssueNumber}} - <span ng-click="vm.search.combinationIssueNumber = ''">횞</span> - </p> <!-- �씠�뒋 �궡�슜 --> <p ng-if="$root.isDefined(vm.search.description)"> @@ -159,7 +147,9 @@ options="::vm.issueStatuses"></ng-dropdown-multiselect> </div> </div> + </div> + <div class="row"> <div class="col-lg-3"> <div class="form-group"> <label> <span translate="issue.issueNumber">�씠�뒋 踰덊샇</span></label> @@ -169,13 +159,10 @@ autocomplete="off" kr-input maxlength="20" - ng-model="vm.issueNumber"> -<!-- ng-model="vm.search.combinationIssueNumber">--> + ng-model="vm.search.combinationIssueNumber"> </div> </div> - </div> - <div class="row"> <div class="col-lg-3"> <div class="form-group"> <label> <span translate="issue.issueContent">�씠�뒋 �궡�슜</span></label> @@ -206,20 +193,6 @@ data-input-name="severities" selected-model="vm.search.severityIds" options="::vm.severities"></ng-dropdown-multiselect> - </div> - </div> - - <div class="col-lg-3"> - <div class="form-group"> - <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label> - <js-autocomplete-multi data-input-name="departments" - selected-model="vm.departments" - search="vm.departmentName" - input-disabled="false" - source="fn.getUserDepartmentList(vm.departmentName, vm.departments)" - translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }" - extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }"> - </js-autocomplete-multi> </div> </div> </div> @@ -280,6 +253,20 @@ </div> </div> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label> + <js-autocomplete-multi data-input-name="departments" + selected-model="vm.departments" + search="vm.departmentName" + input-disabled="false" + source="fn.getUserDepartmentList(vm.departmentName, vm.departments)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + <div class="col-lg-3" ng-repeat="customField in vm.customFields"> <label>{{::customField.name}}</label> diff --git a/src/main/webapp/views/issue/issueSendMail.html b/src/main/webapp/views/issue/issueSendMail.html index d9998ff..4eb604b 100644 --- a/src/main/webapp/views/issue/issueSendMail.html +++ b/src/main/webapp/views/issue/issueSendMail.html @@ -20,21 +20,97 @@ ng-click="fn.removeManager($index)">횞</span> </span> </div> - <js-input-autocomplete data-input-name="users" - owl-auto-focus - target=".auto-complete-input" - selected-model="vm.form.users" - search="vm.userName" - page="vm.autoCompletePage.user.page" - total-page="vm.autoCompletePage.user.totalPage" - source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" - translation-texts="{ empty : 'common.emptyUser'}" - input-disabled="vm.form.projects.length == 0" - extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', - type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + +<!-- <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>--> + </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 @@ -45,3 +121,24 @@ </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> \ No newline at end of file -- Gitblit v1.8.0