From ad486a401ad59d44bd4187f6406fe8c11b046a1f Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 월, 21 2월 2022 16:05:09 +0900 Subject: [PATCH] - 파트너 정보 엑셀 임포트 시 연락처, 코드, 이메일 유효성 검사 - 특정 프로젝트로 설정된 상태에서 타 프로젝트의 이슈 클릭 시 대시보드로 이동되는 문제 해결 --- src/main/webapp/scripts/app/issue/issueDetail.controller.js | 888 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 672 insertions(+), 216 deletions(-) diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index 0d1140c..6cbd9ca 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -8,9 +8,9 @@ 'angular' ], function (app, angular) { - app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q', + app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$relProvider', '$downProvider', '$state', '$uibModal', '$q', '$controller', '$injector', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'Priority', 'Severity','IssueStatus', 'IssueTableConfig', '$filter', - function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) { + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $relProvider, $downProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) { // IssueListController vm, fn 蹂��닔 �긽�냽. @@ -51,11 +51,17 @@ $scope.fn.containsPartner = containsPartner; $scope.fn.onActivate = onActivate; $scope.fn.issueBack = issueBack; + $scope.fn.goParentIssue = goParentIssue; + $scope.fn.removeRelationIssue = removeRelationIssue; + $scope.fn.removeDownIssue = removeDownIssue; + $scope.fn.changeDetailPageRowCount = changeDetailPageRowCount; // �럹�씠吏� 蹂�寃� + $scope.fn.sendCommonMail = sendCommonMail; + $scope.fn.getSubPageContent = getSubPageContent; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� - $scope.vm.viewer = {}; + $scope.vm.viewer = {}; // �쁽�옱 �씠�뒋 $scope.vm.images = []; // 泥⑤��맂 �뙆�씪 以� �씠誘몄� �뙆�씪 - $scope.vm.activeTab = "ALL"; // �솢�룞 �궡�뿭 �꺆 + $scope.vm.activeTab = "RECODE"; // �솢�룞 �궡�뿭 �꺆 // �씠�뒋 �긽�깭 蹂�寃� �몴�떆 �뿬遺� $scope.vm.editor = { issueStatus : false @@ -81,11 +87,22 @@ $scope.vm.form = { issues : [], //�뿰愿� �씪媛� issuesDown : [], // �븯�쐞 �씪媛� + issuesDownStatus : [], //�븯�쐞 �씠�뒋 �긽�깭 issueCompanyVos : [], issueIspVos : [], issueHostingVos : [] }; + $scope.vm.responseData = { + data : [] + }; + + $scope.vm.subPage = { + selectedRelPage : 0, + selectedRelPageRowCount : String(10), + selectedDownPage : 0, + selectedDownPageRowCount : String(10) + }; $scope.vm.issueNameDown = ""; // �꽑�깮�맂 �븯�쐞 �씪媛� �씠由� $scope.vm.autoCompletePageDown = { @@ -97,6 +114,7 @@ $scope.vm.issueName = ""; // �꽑�깮�맂 �뿰愿� �씪媛� �씠由� $scope.vm.issueId = ""; // + $scope.vm.parentIssueId = ""; $scope.vm.issueTypeId = ""; $scope.vm.autoCompletePage = { issue : { @@ -105,11 +123,14 @@ }, }; + $scope.vm.inheritPartners = ""; + $scope.vm.downTotalCount = ""; + $scope.vm.relResponseData = []; $scope.vm.relTableConfigs = []; // �뀒�씠釉� �씠踰ㅽ듃 $scope.relTableEvent = { - removeRelationIssue : removeRelationIssue, // �뿰愿� �씪媛� �궘�젣 + //removeRelationIssue : removeRelationIssue, // �뿰愿� �씪媛� �궘�젣 changeDetailView : changeDetailView }; @@ -117,7 +138,7 @@ $scope.vm.downTableConfigs = []; // �뀒�씠釉� �씠踰ㅽ듃 $scope.downTableEvent = { - removeDownIssue : removeDownIssue, // �뿰愿� �씪媛� �궘�젣 + //removeDownIssue : removeDownIssue, // �뿰愿� �씪媛� �궘�젣 changeDetailView : changeDetailView }; @@ -125,13 +146,31 @@ // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. //$rootScope.$broadcast("makeIssueSearch",issue); $scope.$parent.tableEvent.changeDetailView(issue.id); + $scope.fn.onActivate(); } - // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞 + // �뮘濡쒓�湲� 踰꾪듉 function issueBack() { - $rootScope.currentDetailIssueId = $scope.vm.viewer.parentIssueVo.id - $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); + var index = $scope.$parent.vm.issueIds.length -2; + if (index > -1) { + var preIssueId = $scope.$parent.vm.issueIds[index]; + $scope.$parent.vm.issueIds.splice(index + 1, 1); + $scope.$parent.tableEvent.changeDetailView(preIssueId, true); + } + } + + // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞 + function goParentIssue() { + var parentIssueId = $scope.vm.parentIssueId; + $scope.$parent.tableEvent.changeDetailView(parentIssueId, true); + //�븯�쐞�씠�뒋-> �긽�쐞�씠�뒋 -> �뿰愿��씠�뒋�뿉�꽌 �뮘濡쒓�湲� 踰꾪듉 �겢由� �떆 �븯�쐞�씠�뒋濡� �씠�룞�릺�뒗 臾몄젣濡� 留덉�留� 諛곗뿴媛� �젣嫄� + $scope.$parent.vm.issueIds.pop(); + } + + // �럹�씠吏� 蹂�寃� + function changeDetailPageRowCount() { + $scope.fn.getIssueDetail(0,0); } function onActivate() { @@ -140,17 +179,48 @@ angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); - // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 - $scope.$on("getIssueList", function () { - $scope.fn.getIssueDetail(); - }); + // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 + /*$scope.$on("getIssueList", function () { + $scope.fn.getIssueDetail(0,0); + });*/ // �븯�쐞 �씠�뒋 �궘�젣 - function removeDownIssue(id) { + function removeDownIssue() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.viewer.issueDownVos, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("project.notHaveDeletePermissionExistsProject"), // "�궘�젣 沅뚰븳�씠 �뾾�뒗 �봽濡쒖젥�듃媛� 議댁옱�빀�땲�떎." + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } // �궘�젣 �븣由� SweetAlert.swal({ title : $filter("translate")("issue.downIssueRemove"), // �븯�쐞 �씠�뒋 �궘�젣 - text : $filter("translate")("issue.wantToDeleteSelectIssue"), + text : $filter("translate")("issue.wantToDeleteSelectDownIssueInList"), type : "warning", showCancelButton : true, confirmButtonColor : "#DD6B55", @@ -166,7 +236,7 @@ $rootScope.spinner = true; var contents = { - id : id + ids : removeIds }; Issue.modifyParentIssue($resourceProvider.getContent( @@ -174,7 +244,7 @@ $resourceProvider.getPageContent(0, 10))).then(function (result) { if (result.data.message.status === "success") { - $scope.fn.getIssueDetail(); + $scope.fn.getIssueDetail(0,0); } else { SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueDown"), result.data.message.message); // "�뿰愿��씪媛� �궘�젣 �떎�뙣" @@ -188,11 +258,42 @@ } // �뿰愿� �씠�뒋 �궘�젣 - function removeRelationIssue(id) { + function removeRelationIssue() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.viewer.issueRelationVos, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // �궘�젣 沅뚰븳�씠 �뾾�뒗 �씠�뒋媛� 議댁옱�빀�땲�떎. + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } // �궘�젣 �븣由� SweetAlert.swal({ title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씠�뒋 �궘�젣 - text : $filter("translate")("issue.wantToDeleteSelectIssue"), + text : $filter("translate")("issue.wantToDeleteSelectRelIssueInList"), type : "warning", showCancelButton : true, confirmButtonColor : "#DD6B55", @@ -208,7 +309,7 @@ $rootScope.spinner = true; var contents = { - id : id + removeIds : removeIds }; IssueRelation.delete($resourceProvider.getContent( @@ -216,7 +317,7 @@ $resourceProvider.getPageContent(0, 10))).then(function (result) { if (result.data.message.status === "success") { - $scope.fn.getIssueDetail(); + $scope.fn.getIssueDetail(0,0); } else { SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �궘�젣 �떎�뙣" @@ -235,96 +336,129 @@ } function getDownIssueListCallBack(result) { - $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage; + $scope.vm.autoCompletePageDown.issue.totalPage = result.data.page.totalPage; } // �뀒�씠釉붿쓽 �뿰愿� �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎. - function setRelTableColumn(Rel_issueTableConfig) { + function setRelTableColumn(issueTableConfig) { // �뿰愿� �씠�뒋 而щ읆 - switch(Rel_issueTableConfig.key) { - - // �뿰愿� �씠�뒋 援щ텇 - case "RELATION_ISSUE_TYPE" : - $scope.vm.relTableConfigs.push($tableProvider.config() + switch(issueTableConfig.key) { + case "RELATION_ISSUE_TYPE" : // �뿰愿� �씠�뒋 援щ텇 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("issue.relationIssueType") + .setDName("relationIssueType") .setDType("renderer") - .setHWidth("width-30 bold") - .setHSort(false) + .setDAlign("text-center") + .setHWidth("bold " + issueTableConfig.width) .setDRenderer("ISSUE_RELATION_TYPE")) + /*.setHWidth("width-30 bold")*/ + /*.setHSort(false)*/ break; - // �뿰愿� �씠�뒋 �젣紐� - case "RELATION_ISSUE_TITLE" : - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_ISSUE_TITLE" : // �뿰愿� �씠�뒋 �젣紐� + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("issue.relationIssueTitle") + .setDName("title") .setDType("renderer") - .setHWidth("width-60 bold") - .setHSort(false) + .setDAlign("text-center") + .setHWidth("bold " + issueTableConfig.width) .setDRenderer("ISSUE_RELATION_MOVE")) + /*.setHWidth("width-60 bold")*/ + /*.setHSort(true)*/ break; - case "PRIORITY" : // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_PRIORITY" : // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.priority") - .setDName("priorityName") + .setDName("priorityVo.id") .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("REL_COMMON_PRIORITY")); break; - case "SEVERITY" : // �뿰愿� �씠�뒋 以묒슂�룄 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_SEVERITY" : // �뿰愿� �씠�뒋 以묒슂�룄 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.importance") - .setDName("severityName") + .setDName("severityVo.id") .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("REL_COMMON_SEVERITY")); break; - case "ASSIGNEE_TEAM" : // �뿰愿� �씠�뒋 �떞�떦遺��꽌 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_ASSIGNEE_TEAM" : // �뿰愿� �씠�뒋 �떞�떦遺��꽌 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.assigneeTeam") + .setDName("departmentVos.departmentName") .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("REL_ISSUE_DEPARTMENT")); break; - case "REGISTER" : // �뿰愿� �씠�뒋 �벑濡앹옄 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_REGISTER" : // �뿰愿� �씠�뒋 �벑濡앹옄 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.register") + .setDName("registerVo.id") .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("REL_REGISTER")); break; - case "PERIOD" : // �뿰愿� �씠�뒋 湲곌컙 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_PERIOD" : // �뿰愿� �씠�뒋 湲곌컙 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.period") .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("REL_ISSUE_DUE_DATE")); break; - case "MODIFY_DATE" : // �뿰愿� �씠�뒋 理쒓렐 蹂�寃쎌씪 - $scope.vm.relTableConfigs.push($tableProvider.config() + case "RELATION_MODIFY_DATE" : // �뿰愿� �씠�뒋 理쒓렐 蹂�寃쎌씪 + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("common.lastChangeDate") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDName("modifyDate")); + break; + case "REL_COMPANY" : // �뾽泥� + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("common.company") + .setDName("companyName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("REL_USE_COMPANY")); + break; + case "REL_ISP" : // ISP + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("common.isp") + .setDName("ispName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("REL_USE_ISP")); + break; + case "REL_HOSTING" : // HOSTING + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("common.hosting") + .setDName("hostingName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("REL_USE_HOSTING")); break; } // �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆 - if (Rel_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { + if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { // 留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣 for (var count in $scope.vm.customFields) { var customField = $scope.vm.customFields[count]; - if (customField.id === Number(Rel_issueTableConfig.key.substring(13))) { - $scope.vm.relTableConfigs.push($tableProvider.config() + if (customField.id === Number(issueTableConfig.key.substring(13))) { + $scope.vm.relTableConfigs.push($relProvider.config() .setHName(customField.name) + .setDName("relCustomFieldName" + [count]) .setDType("renderer") - .setHWidth("bold " + Rel_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setColumnHint(customField) .setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW")); @@ -336,92 +470,123 @@ // �뀒�씠釉붿쓽 �븯�쐞 �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎. - function setDownTableColumn(Down_issueTableConfig) { + function setDownTableColumn(issueTableConfig) { // if (issueTableConfig == null) return; // �븯�쐞 �씠�뒋 而щ읆 - switch(Down_issueTableConfig.key) { - // �븯�쐞 �씠�뒋 �젣紐� - case "DOWN_ISSUE_TITLE" : - $scope.vm.downTableConfigs.push($tableProvider.config() + switch(issueTableConfig.key) { + case "DOWN_ISSUE_TITLE" : // �븯�쐞 �씠�뒋 �젣紐� + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("issue.downIssueTitle") + .setDName("title") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("ISSUE_DOWN_MOVE")); break; - case "ISSUE_DOWN_STATUS_TYPE" : // �씠�뒋 �긽�깭 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "ISSUE_DOWN_STATUS_TYPE" : // �븯�쐞 �씠�뒋 �긽�깭 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("issue.issueStatus") + .setDName("issueStatusVo.id") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("ISSUE_DOWN_STATUS_TYPE")); break; - case "PRIORITY" : // �븯�쐞 �씠�뒋 �슦�꽑�닚�쐞 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_PRIORITY" : // �븯�쐞 �씠�뒋 �슦�꽑�닚�쐞 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.priority") - .setDName("priorityName") + .setDName("priorityVo.id") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("DOWN_COMMON_PRIORITY")); break; - case "SEVERITY" : // 以묒슂�룄 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_SEVERITY" : // �븯�쐞 �씠�뒋 以묒슂�룄 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.importance") - .setDName("severityName") + .setDName("severityVo.id") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("DOWN_COMMON_SEVERITY")); break; - case "ASSIGNEE_TEAM" : // �떞�떦遺��꽌 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_ASSIGNEE_TEAM" : // �븯�쐞 �씠�뒋 �떞�떦遺��꽌 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.assigneeTeam") + .setDName("departmentVos.departmentName") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("DOWN_ISSUE_DEPARTMENT")); break; - case "REGISTER" : // �벑濡앹옄 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_REGISTER" : // �븯�쐞 �씠�뒋 �벑濡앹옄 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.register") + .setDName("registerVo.id") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("DOWN_REGISTER")); break; - case "PERIOD" : // 湲곌컙 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_PERIOD" : // �븯�쐞 �씠�뒋 湲곌컙 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.period") .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDRenderer("DOWN_ISSUE_DUE_DATE")); break; - case "MODIFY_DATE" : // 理쒓렐 蹂�寃쎌씪 - $scope.vm.downTableConfigs.push($tableProvider.config() + case "DOWN_MODIFY_DATE" : // �븯�쐞 �씠�뒋 理쒓렐 蹂�寃쎌씪 + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("common.lastChangeDate") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setDName("modifyDate")); + break; + case "DOWN_COMPANY" : // �뾽泥� + $scope.vm.downTableConfigs.push($tableProvider.config() + .setHName("common.company") + .setDName("companyName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("DOWN_USE_COMPANY")); + break; + case "DOWN_ISP" : // ISP + $scope.vm.downTableConfigs.push($tableProvider.config() + .setHName("common.isp") + .setDName("ispName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("DOWN_USE_ISP")); + break; + case "DOWN_HOSTING" : // HOSTING + $scope.vm.downTableConfigs.push($tableProvider.config() + .setHName("common.hosting") + .setDName("hostingName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("DOWN_USE_HOSTING")); break; } // �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆 - if (Down_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { + if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { // 留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣 for (var count in $scope.vm.customFields) { var customField = $scope.vm.customFields[count]; - if (customField.id === Number(Down_issueTableConfig.key.substring(13))) { - $scope.vm.downTableConfigs.push($tableProvider.config() + if (customField.id === Number(issueTableConfig.key.substring(13))) { + $scope.vm.downTableConfigs.push($downProvider.config() .setHName(customField.name) + .setDName("downCustomFieldName" + [count]) .setDType("renderer") - .setHWidth("bold " + Down_issueTableConfig.width) + .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setColumnHint(customField) .setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW")); @@ -435,34 +600,39 @@ // �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙 function makeRelTableConfigs() { $scope.vm.relTableConfigs = []; - $scope.vm.relTableConfigs.push($tableProvider.config() + $scope.vm.relTableConfigs.push($relProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("issue.relationIssueType") .setDType("renderer") .setDAlign("text-center") - .setHWidth("width-30-p bold") + .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_RELATION_TYPE")) - $scope.vm.relTableConfigs.push($tableProvider.config() + $scope.vm.relTableConfigs.push($relProvider.config() .setHName("issue.relationIssueTitle") .setDType("renderer") .setDAlign("text-center") .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_RELATION_MOVE")) - $scope.vm.relTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueDelete") - .setDType("renderer") - .setDAlign("text-center") - .setHWidth("width-20-p bold") - .setDRenderer("ISSUE_RELATION_DELETE") - .setHSort(false) - .setDAlign("text-center")) - - angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) { + /*if($scope.vm.viewer.modifyPermissionCheck) { + $scope.vm.relTableConfigs.push($relProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setDAlign("text-center") + .setHWidth("width-40-p bold") + .setDRenderer("ISSUE_RELATION_DELETE") + .setHSort(false) + .setDAlign("text-center")) + }*/ + angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Rel_issueTableConfig.display) { + if (issueTableConfig.display) { // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setRelTableColumn(Rel_issueTableConfig); + $scope.fn.setRelTableColumn(issueTableConfig); } }); } @@ -470,76 +640,91 @@ // �븯�쐞 �씠�뒋 �뀒�씠釉� �꽕�젙 function makeDownTableConfigs() { $scope.vm.downTableConfigs = []; - $scope.vm.downTableConfigs.push($tableProvider.config() + $scope.vm.downTableConfigs.push($downProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + $scope.vm.downTableConfigs.push($downProvider.config() .setHName("issue.downIssueTitle") .setDType("renderer") .setDAlign("text-center") .setHWidth("width-60-p bold") .setHSort(false) .setDRenderer("ISSUE_DOWN_MOVE")) - $scope.vm.downTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueDelete") - .setDType("renderer") - .setDAlign("text-center") - .setHWidth("width-20-p bold") - .setDRenderer("ISSUE_DOWN_DELETE") - .setHSort(false) - .setDAlign("text-center")) + /*if($scope.vm.viewer.modifyPermissionCheck){ + $scope.vm.downTableConfigs.push($downProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setDAlign("text-center") + .setHWidth("width-40-p bold") + .setDRenderer("ISSUE_DOWN_DELETE") + .setHSort(false) + .setDAlign("text-center")) + }*/ - angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) { + angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Down_issueTableConfig.display) { + if (issueTableConfig.display) { // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setDownTableColumn(Down_issueTableConfig); + $scope.fn.setDownTableColumn(issueTableConfig); } }); } // �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙 function setRelTableConfigs(issueTableConfigVo) { + if (issueTableConfigVo == null) { + makeRelTableConfigs(); + return; + } var issueTableConfigs = issueTableConfigVo.issueTableConfigs; - // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + // �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. if ($rootScope.isDefined(issueTableConfigs)) { // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. $scope.vm.issueRelTableConfigs = []; $scope.vm.issueRelTableConfigs = JSON.parse(issueTableConfigs); $scope.vm.issueRelTableConfigs.sort(function (a, b) { - return a.position < b.position ? -1 : a.position > b.position ? 1 : 0; + return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0; }); $scope.vm.relTableConfigs = []; - $scope.vm.relTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueType") - .setDType("renderer") - .setDAlign("text-center") - .setHWidth("width-30-p bold") - .setHSort(false) - .setDRenderer("ISSUE_RELATION_TYPE")) - $scope.vm.relTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueTitle") - .setDType("renderer") - .setDAlign("text-center") - .setHWidth("width-60-p bold") - .setHSort(false) - .setDRenderer("ISSUE_RELATION_MOVE")) - angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) { + /* $scope.vm.relTableConfigs.push($relProvider.config() + .setHName("issue.relationIssueType") + .setDType("renderer") + .setDAlign("text-center") + .setHWidth("width-30-p bold") + .setHSort(false) + .setDRenderer("ISSUE_RELATION_TYPE")) + $scope.vm.relTableConfigs.push($relProvider.config() + .setHName("issue.relationIssueTitle") + .setDType("renderer") + .setDAlign("text-center") + .setHWidth("width-60-p bold") + .setHSort(false) + .setDRenderer("ISSUE_RELATION_MOVE"))*/ + $scope.vm.relTableConfigs.push($relProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + angular.forEach($scope.vm.issueRelTableConfigs, function (issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Rel_issueTableConfig.display) { + if (issueTableConfig.display) { // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setRelTableColumn(Rel_issueTableConfig); + $scope.fn.setRelTableColumn(issueTableConfig); } }); - $scope.vm.relTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueDelete") - .setDType("renderer") - .setHWidth("width-20-p bold") - .setDRenderer("ISSUE_RELATION_DELETE") - .setHSort(false) - .setDAlign("text-center")) - + /*if($scope.vm.viewer.modifyPermissionCheck) { + $scope.vm.relTableConfigs.push($relProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setHWidth("width-40-p bold") + .setDRenderer("ISSUE_RELATION_DELETE") + .setHSort(false) + .setDAlign("text-center")) + }*/ } else { makeRelTableConfigs(); } @@ -548,39 +733,45 @@ // �븯�쐞 �씠�뒋 �긽�꽭 議고쉶 寃곌낵 �꽕�젙 function setDownTableConfigs(issueTableConfigVo) { + if (issueTableConfigVo == null) return; var issueTableConfigs = issueTableConfigVo.issueTableConfigs; - // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + // �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. if ($rootScope.isDefined(issueTableConfigs)) { // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. $scope.vm.issueDownTableConfigs = []; $scope.vm.issueDownTableConfigs = JSON.parse(issueTableConfigs); $scope.vm.issueDownTableConfigs.sort(function (a, b) { - return a.position < b.position ? -1 : a.position > b.position ? 1 : 0; + return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0; }); $scope.vm.downTableConfigs = []; - $scope.vm.downTableConfigs.push($tableProvider.config() +/* $scope.vm.downTableConfigs.push($downProvider.config() .setHName("issue.downIssueTitle") .setDType("renderer") .setDAlign("text-center") .setHWidth("width-60-p bold") .setHSort(false) - .setDRenderer("ISSUE_DOWN_MOVE")) - angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) { + .setDRenderer("ISSUE_DOWN_MOVE"))*/ + $scope.vm.downTableConfigs.push($downProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")) + angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Down_issueTableConfig.display) { + if (issueTableConfig.display) { // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setDownTableColumn(Down_issueTableConfig); + $scope.fn.setDownTableColumn(issueTableConfig); } }); - $scope.vm.downTableConfigs.push($tableProvider.config() - .setHName("issue.relationIssueDelete") - .setDType("renderer") - .setHWidth("width-20-p bold") - .setDRenderer("ISSUE_DOWN_DELETE") - .setHSort(false) - .setDAlign("text-center")) - + /*if($scope.vm.viewer.modifyPermissionCheck) { + $scope.vm.downTableConfigs.push($downProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setHWidth("width-40-p bold") + .setDRenderer("ISSUE_DOWN_DELETE") + .setHSort(false) + .setDAlign("text-center")) + }*/ } else { makeDownTableConfigs(); } @@ -606,7 +797,7 @@ $resourceProvider.getPageContent(0, 10))).then(function (result) { if (result.data.message.status === "success") { - $scope.fn.getIssueDetail(); + $scope.fn.getIssueDetail(0,0); } else { SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣" @@ -622,40 +813,57 @@ return; } - var contents = { - issueId : $rootScope.currentDetailIssueId, - id : $scope.vm.form.issuesDown[0].id, - parentIssueId : $rootScope.currentDetailIssueId - }; + let inheritYn = false; + if ($scope.vm.inheritPartners) { + SweetAlert.swal({ + title : $filter("translate")("issue.addDownIssue"), // �븯�쐞 �씠�뒋 異붽� + text : $filter("translate")("issue.wantToInheritPartnersOfParentIssue"), // �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쟻�슜�떆�궎寃좎뒿�땲源�? + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.ok"), // �꽕 + cancelButtonText : $filter("translate")("common.no"), // �븘�땲�삤 + closeOnConfirm : false, + closeOnCancel : false + }, + function (isConfirm) { + if (isConfirm) { + inheritYn = true; + } - Issue.modifyParentIssue($resourceProvider.getContent( - contents, - $resourceProvider.getPageContent(0, 10))).then(function (result) { + var ids = []; + if ($scope.vm.form.issuesDown[0].id != null) { + ids.push($scope.vm.form.issuesDown[0].id); + } - if (result.data.message.status === "success") { - $scope.fn.getIssueDetail(); - } - else { - SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣" - } - }); + var contents = { + issueId : $rootScope.currentDetailIssueId, + ids : ids, + parentIssueId : $rootScope.currentDetailIssueId, + inheritYn : inheritYn + }; + + Issue.modifyParentIssue($resourceProvider.getContent( + contents, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + SweetAlert.close(); + $scope.fn.getIssueDetail(0,0); + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "�븯�쐞�씠�뒋 �깮�꽦 �떎�뙣" + } + }); + }); + } } - // todo 紐⑤Ⅴ寃좊떎..... + // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. // $rootScope.$on("getIssueDetail", function (event, args) { // $scope.vm.viewer.id = args["id"]; // $scope.fn.getIssueDetail(); // }); - - // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊 - // todo �씠嫄� 萸먯�... - // $rootScope.$on("getIssueDetail", function (event, args) { - // $scope.fn.getIssueDetail(); - // }); - - $scope.$on("getIssueDetail", function (event, args) { - $scope.fn.getIssueDetail(); - }); // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. // $scope.$on("getIssueDetail", function (event, args) { @@ -663,16 +871,23 @@ // $scope.fn.getIssueDetail(); // }); + // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊 + // $rootScope.$on("getIssueDetail", function (event, args) { + // $scope.fn.getIssueDetail(); + // }); + + $scope.$on("getIssueDetail", function (event, args) { + $scope.fn.getIssueDetail(0,0); + }); + $scope.$watch(function() { return $rootScope.currentDetailIssueId; }, function() { if ($rootScope.currentDetailIssueId != null) { $scope.vm.viewer.id = $rootScope.currentDetailIssueId; - $scope.fn.getIssueDetail(); + $scope.fn.getIssueDetail(0,0); } }, true); - - // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. function initReload() { @@ -696,7 +911,8 @@ parameter : function () { return { issueIds : [$scope.vm.viewer.id], - projectId : $scope.vm.viewer.projectVo.id + projectId : $scope.vm.viewer.projectVo.id, + downIssuesStatus : $scope.vm.form.issuesDownStatus }; } } @@ -704,6 +920,20 @@ } function modifyDownIssueStatus() { + var issueIds = []; + + angular.forEach($scope.vm.viewer.issueDownVos, function (data) { + if (data.checked) { + issueIds.push(data.id); + //$scope.vm.projectId = data.projectId; + } + }); + + if (issueIds.length < 1) { + SweetAlert.warning($filter("translate")("issue.selectionCheck"), $filter("translate")("issue.selectIssueToChangeStatus")); // �꽑�깮 ���긽 �솗�씤, �긽�깭 蹂�寃쏀븷 �씠�뒋瑜� �꽑�깮�븯�꽭�슂. + return; + } + $uibModal.open({ templateUrl : 'views/issue/downIssueModifyStatus.html', size : "md", @@ -714,7 +944,8 @@ return { issueTypeId : $scope.vm.viewer.issueTypeVo.id, issueIds : [$scope.vm.viewer.id], - downIssues : $scope.vm.viewer.issueDownVos, + //downIssues : $scope.vm.viewer.issueDownVos, + downIssues : issueIds, projectId : $scope.vm.viewer.projectVo.id }; } @@ -752,10 +983,11 @@ resolve : { parameter : function () { return { - departmentVos : [$scope.vm.form.issues[0].departmentVos], - id : [$scope.vm.form.issues[0].id], - projectId : [$scope.vm.form.issues[0].projectVo.id], - project : [$scope.vm.form.issues[0].projectVo] + departmentVos : $scope.vm.form.issues[0].departmentVos, + id : $scope.vm.form.issues[0].id, + projectId : $scope.vm.form.issues[0].projectVo.id, + project : $scope.vm.form.issues[0].projectVo, + issueTypeId : $scope.vm.form.issues[0].issueTypeVo.id }; } } @@ -773,7 +1005,6 @@ parameter : function () { return { issueTypeId : $scope.vm.viewer.issueTypeVo.id - }; } } @@ -841,21 +1072,74 @@ return result; } + function getSubPageContent(relPage, relPageSize, downPage, downPageSize) { + return { + relPage: relPage, + relPageSize: relPageSize, + downPage: downPage, + downPageSize: downPageSize + }; + } // �씠�뒋 �긽�꽭 �젙蹂� 議고쉶 - function getIssueDetail() { + function getIssueDetail(selectedRelPage, selectedDownPage) { + $rootScope.spinner = true; + if (selectedRelPage < 0) { + selectedRelPage = 0; + } + if (selectedDownPage < 0) { + selectedDownPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentRelPage = 0; + var currentDownPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedRelPage) || selectedRelPage === "") { + currentRelPage = $scope.vm.page.selectedRelPage; + } + else { + currentRelPage = selectedRelPage; + } + + if (angular.isUndefined(selectedDownPage) || selectedDownPage === "") { + currentDownPage = $scope.vm.page.selectedDownPage; + } + else { + currentDownPage = selectedDownPage; + } + // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. $scope.fn.initReload(); - // $scope.fn.getRelTableConfigs(); // $scope.fn.getDownTableConfigs(); - Issue.detail($resourceProvider.getContent( - {id : $scope.vm.viewer.id, deep : "02"}, - $resourceProvider.getPageContent(0, 1))).then(function (result) { + var pageContent = $scope.fn.getSubPageContent(currentRelPage, $scope.vm.subPage.selectedRelPageRowCount + , currentDownPage, $scope.vm.subPage.selectedDownPageRowCount); + + var content = $resourceProvider.getContent( + { + id : $scope.vm.viewer.id + , issueTypeId : (function () { + var id = ""; + if ($rootScope.allIssueList) { + id = -1; + } else { + id = $rootScope.getCurrentIssueTypeId(); + } + return id; + })() + , deep : "02", pageContent + }, null); + + Issue.detail(content).then(function (result) { if (result.data.message.status === "success") { if (angular.isDefined(result.data.data)) { + + $scope.vm.subPage.selectedRelPage = currentRelPage + 1; + $scope.vm.subPage.selectedDownPage = currentDownPage + 1; + $scope.vm.responseData = result.data.data; $scope.vm.viewer = angular.copy(result.data.data); // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� @@ -863,8 +1147,14 @@ // �솢�룞 �씠�젰 留뚮뱾湲� $scope.fn.makeActiveHistory(); + if ($rootScope.isDefined($scope.vm.viewer.parentIssueVo)) { + $scope.vm.parentIssueId = $scope.vm.viewer.parentIssueVo.id; + } + $scope.vm.viewer.startDate = result.data.data.startDate == null ? "common.unspecified" : result.data.data.startDate; // 誘몄��젙 $scope.vm.viewer.completeDate = result.data.data.completeDate == null ? "common.unspecified" : result.data.data.completeDate; // 誘몄��젙 + + $scope.vm.rangeDate = result.data.data.startDate + "~" + result.data.data.completeDate // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. $scope.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos); @@ -876,6 +1166,7 @@ $scope.vm.form.issues = []; $scope.vm.form.issues.push(result.data.data); $scope.vm.form.issuesDown = []; + $scope.vm.form.issuesDownStatus = [];// �븯�쐞�씠�뒋 �긽�깭 $scope.vm.form.issuesDown.push(result.data.data); var issueTableConfigVos = result.data.data.issueTableConfigVos; @@ -888,6 +1179,9 @@ issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name; $scope.vm.form.issues.push(issueRelationVo.issueRelation); }); + result.data.data.issueRelationVos.sort(function (a, b) { //理쒓렐蹂�寃쎌씪 �궡由쇱감�닚 + return a.modifyDate > b.modifyDate ? -1 : a.modifyDate < b.modifyDate ? 1 : 0; + }); } // �븯�쐞 �씠�뒋 諛섎ぉ臾� @@ -895,20 +1189,27 @@ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); - + $scope.vm.form.issuesDownStatus.push(issueDownVo.issueStatusVo.issueStatusType); + }); + result.data.data.issueDownVos.sort(function (a, b) { //理쒓렐蹂�寃쎌씪 �궡由쇱감�닚 + return a.modifyDate > b.modifyDate ? -1 : a.modifyDate < b.modifyDate ? 1 : 0; }); } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos; if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) { - $rootScope.changeLastProject(result.data.data.projectVo.id); + $rootScope.changeLastProject(result.data.data.projectVo.id, false, false); } + + $scope.vm.inheritPartners = result.data.data.issueTypeVo.inheritPartners; + $scope.vm.downTotalCount = result.data.data.downTotalCount; } } else { SweetAlert.swal($filter("translate")("issue.errorIssueDetails"), result.data.message.message, "error"); // �씠�뒋 �긽�꽭 �젙蹂� 議고쉶 �삤瑜� } + $rootScope.spinner = false; }); } @@ -986,8 +1287,121 @@ // �솢�룞 �씠�젰 留뚮뱾湲� function makeActiveHistory() { - $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); - $scope.vm.viewer.activeHistory.sort(function (a, b) { + $scope.vm.viewer.activeParentHistory = []; + $scope.vm.viewer.activeHistory = []; + $scope.vm.viewer.activeParentMailHistory = []; + $scope.vm.viewer.activeAllMailAndReplyHistory = []; //�긽�쐞+�븯�쐞 硫붿씪,�뙎湲� �엳�뒪�넗由� + var oriMailHistory = []; + var oriCommentHistory = []; + + if ($scope.vm.viewer.issueHistoryVos != null && $scope.vm.viewer.issueHistoryVos.length > 0) { + // �긽�쐞�씠�뒋 硫붿씪 �엳�뒪�넗由� + for (var i=0; i<$scope.vm.viewer.issueHistoryVos.length; i++) { + if ($scope.vm.viewer.issueHistoryVos[i].issueHistoryType === "SEND") { + oriMailHistory.push($scope.vm.viewer.issueHistoryVos[i]); + } + } + //$scope.vm.viewer.activeParentMailHistory = angular.copy(oriMailHistory); + } + + // �긽�쐞�씠�뒋 �뙎湲� �엳�뒪�넗由� + if ($scope.vm.viewer.issueCommentVos != null && $scope.vm.viewer.issueCommentVos.length > 0) { + for (var i=0; i<$scope.vm.viewer.issueCommentVos.length; i++) { + oriCommentHistory.push($scope.vm.viewer.issueCommentVos[i]); + } + } + + $scope.vm.viewer.activeAllMailAndReplyHistory = oriMailHistory.concat(oriCommentHistory); + + // �븯�쐞�씠�뒋 �엳�뒪�넗由� + if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) { + $scope.vm.viewer.activeDownHistory = []; //�븯�쐞�씠�뒋 �엳�뒪�넗由щ쭔 + $scope.vm.viewer.downComment = []; //�븯�쐞�씠�뒋 �뙎湲�留� + $scope.vm.viewer.activeDownAllHistory = []; //�븯�쐞�씠�뒋 �엳�뒪�넗由�+�뙎湲� + $scope.vm.viewer.activeDownMailAndReplyHistory = []; //�븯�쐞 硫붿씪+�뙎湲� �엳�뒪�넗由� + var downTitle = ""; + var oriDownHistory = []; + var oriDownCommentHistory = []; + var oriDownMailHistory = []; + + // �븯�쐞�씠�뒋 �엳�뒪�넗由� + for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){ + oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos); + + // �븯�쐞�씠�뒋 硫붿씪 湲곕줉 + for (var j=0; j<$scope.vm.viewer.issueDownVos[i].issueHistoryVos.length; j++) { + if($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j].issueHistoryType === "SEND") { + oriDownMailHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j]); + } + } + // �븯�쐞�씠�뒋 �뙎湲� 湲곕줉 + for (var k=0; k<$scope.vm.viewer.issueDownVos[i].issueCommentVos.length; k++) { + oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos[k]); + } + } + // �븯�쐞�씠�뒋 硫붿씪+�뙎湲� ���옣 + $scope.vm.viewer.activeDownMailAndReplyHistory = oriDownCommentHistory.concat(oriDownMailHistory); + for (var i=0; i<$scope.vm.viewer.activeDownMailAndReplyHistory.length; i++){ + downTitle = "<div class='dot' style='margin-bottom: -8px'>*�븯�쐞�씠�뒋 : "+$scope.vm.viewer.activeDownMailAndReplyHistory[i].title+"</div>"; + $scope.vm.viewer.activeDownMailAndReplyHistory[i].desc = downTitle + $scope.vm.viewer.activeDownMailAndReplyHistory[i].description; + } + + $scope.vm.viewer.activeDownMailAndReplyHistory.sort(function (a, b) { //"MAIL_AND_REPLY_DOWN" �궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + for (var i=0; i<oriDownHistory.length; i++){ + if ($scope.vm.viewer.activeDownHistory === "") { + $scope.vm.viewer.activeDownHistory = oriDownHistory[i]; + } else { + $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.activeDownHistory.concat(oriDownHistory[i]); + } + } + + for (var i=0; i<$scope.vm.viewer.activeDownHistory.length; i++){ + downTitle = "<div class='dot' style='margin-bottom: -8px'>*�븯�쐞�씠�뒋 : "+$scope.vm.viewer.activeDownHistory[i].title+"</div>"; + $scope.vm.viewer.activeDownHistory[i].desc = downTitle + $scope.vm.viewer.activeDownHistory[i].description; + } + $scope.vm.viewer.activeDownHistory.sort(function (a, b) { //�궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + // �븯�쐞�씠�뒋 �뙎湲� �엳�뒪�넗由� + for (var i=0; i<oriDownCommentHistory.length; i++) { + if ($scope.vm.viewer.downComment === "") { + $scope.vm.viewer.downComment = oriDownCommentHistory[i]; + } else { + $scope.vm.viewer.downComment = $scope.vm.viewer.downComment.concat(oriDownCommentHistory[i]); + } + } + $scope.vm.viewer.issueDownVos.sort(function (a, b) { //�궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + $scope.vm.viewer.activeDownAllHistory = $scope.vm.viewer.downComment.concat($scope.vm.viewer.activeDownHistory); + + $scope.vm.viewer.activeDownAllHistory.sort(function (a, b) { //"RECODE_DOWN" �궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory); + $scope.vm.viewer.activeAllMailAndReplyHistory = $scope.vm.viewer.activeAllMailAndReplyHistory.concat($scope.vm.viewer.activeDownMailAndReplyHistory); + + }else { + $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + } + + $scope.vm.viewer.activeHistory.sort(function (a, b) { //"ALL" �궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + $scope.vm.viewer.activeParentHistory.sort(function (a, b) { //"RECODE" �궡由쇱감�닚 + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + + $scope.vm.viewer.activeAllMailAndReplyHistory.sort(function (a, b) { //"MAIL_AND_REPLY" �궡由쇱감�닚 return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; }); } @@ -1041,7 +1455,6 @@ $timeout(function () { SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� }, 100); - $scope.fn.getCommentList(); } else { @@ -1064,6 +1477,7 @@ if (result.data.message.status === "success") { $scope.vm.viewer.issueCommentVos = result.data.data; + $scope.fn.updateActiveHistory(); } else { SweetAlert.swal({ @@ -1121,17 +1535,59 @@ }); } - 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); + // �씪諛� 硫붿씪 諛쒖넚 (�궗�슜�옄 吏곸젒 �옉�꽦) + function sendCommonMail() { + $uibModal.open({ + templateUrl : 'views/issue/issueCommonSendMail.html', + size : "md", + controller : 'issueCommonSendMailController', + backdrop : 'static', + resolve : { + parameter : { + issueId : $scope.vm.viewer.id, + } + } + }); + } - if (params != null && params.length > 0) { - for (let i = 0; i < params.length; i++) { - params[i].id = i; + function getParametersAll() { + var params = []; + if ($scope.vm.viewer.issueCompanyVos != null && $scope.vm.viewer.issueCompanyVos.length > 0) { + var issueCompany = $scope.fn.getParameters(params, $scope.vm.viewer.issueCompanyVos); + if (issueCompany != null && issueCompany.length > 0) { + angular.forEach(issueCompany, function (data) { + params.push(data); + }); } } - return params; + if ($scope.vm.viewer.issueIspVos != null && $scope.vm.viewer.issueIspVos.length > 0) { + var issueIsp = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos) + if (issueIsp != null && issueIsp.length > 0) { + angular.forEach(issueIsp, function (data) { + params.push(data); + }); + } + } + if ($scope.vm.viewer.issueHostingVos != null && $scope.vm.viewer.issueHostingVos.length > 0) { + var issueHosting = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos); + if (issueHosting != null && issueHosting.length > 0) { + angular.forEach(issueHosting, function (data) { + params.push(data); + }); + } + } + + if (params != null && params.length > 0) { + var filterData = params.filter(function(item, idx){ + return params.findIndex(function(item2, idx2){ + return item.email === item2.email + }) == idx; + }); + for (let i = 0; i < filterData.length; i++) { + filterData[i].id = i; + } + } + return filterData; } function getParameters(sourceArr, partnerVos) { -- Gitblit v1.8.0