From 145928e42a8ae18129fcbc720824a9e4f78999bd Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 금, 17 12월 2021 17:23:03 +0900 Subject: [PATCH] 상위이슈의 상세페이지에서 하위이슈에 대한 활동내역 보여주기 --- src/main/webapp/scripts/app/issue/issueDetail.controller.js | 329 +++++++++++++++++++++++++++++------------------------- 1 files changed, 179 insertions(+), 150 deletions(-) diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index aa5a3b3..c763d1a 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -46,13 +46,14 @@ $scope.fn.addDownIssue = addDownIssue; // �븯�쐞 �씠�뒋 異붽� $scope.fn.addRelationIssueTableConfig = addRelationIssueTableConfig; // �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 $scope.fn.addDownIssueTableConfig = addDownIssueTableConfig; // �븯�쐞 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 - $scope.fn.getRelTableConfigs = getRelTableConfigs; - $scope.fn.getDownTableConfigs = getDownTableConfigs; + $scope.fn.setRelTableConfigs = setRelTableConfigs; + $scope.fn.setDownTableConfigs = setDownTableConfigs; $scope.fn.containsPartner = containsPartner; $scope.fn.onActivate = onActivate; + $scope.fn.issueBack = issueBack; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� - $scope.vm.viewer = {}; + $scope.vm.viewer = {}; // �쁽�옱 �씠�뒋 $scope.vm.images = []; // 泥⑤��맂 �뙆�씪 以� �씠誘몄� �뙆�씪 $scope.vm.activeTab = "ALL"; // �솢�룞 �궡�뿭 �꺆 // �씠�뒋 �긽�깭 蹂�寃� �몴�떆 �뿬遺� @@ -80,6 +81,7 @@ $scope.vm.form = { issues : [], //�뿰愿� �씪媛� issuesDown : [], // �븯�쐞 �씪媛� + issuesDownStatus : [], //�븯�쐞 �씠�뒋 �긽�깭 issueCompanyVos : [], issueIspVos : [], issueHostingVos : [] @@ -127,18 +129,22 @@ $scope.fn.onActivate(); } + // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞 + function issueBack() { + $rootScope.currentDetailIssueId = $scope.vm.viewer.parentIssueVo.id + $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); + } + function onActivate() { window.scroll(0,240); } angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); - // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 - // $scope.$on("getIssueList", function () { - // $scope.fn.getIssueDetail(); - // }); - - + // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 + $scope.$on("getIssueList", function () { + $scope.fn.getIssueDetail(); + }); // �븯�쐞 �씠�뒋 �궘�젣 function removeDownIssue(id) { @@ -472,14 +478,16 @@ .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($tableProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setDAlign("text-center") + .setHWidth("width-20-p bold") + .setDRenderer("ISSUE_DOWN_DELETE") + .setHSort(false) + .setDAlign("text-center")) + } angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) { // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. @@ -490,125 +498,100 @@ }); } - // �뿰愿� �씠�뒋 �긽�꽭 議고쉶 - function getRelTableConfigs() { - var content = { - issueId : $scope.vm.viewer.id, - issueTypeId : $rootScope.getCurrentIssueTypeId() - }; + // �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙 + function setRelTableConfigs(issueTableConfigVo) { + if (issueTableConfigVo == null) { + makeRelTableConfigs(); + return; + } + var issueTableConfigs = issueTableConfigVo.issueTableConfigs; - IssueTableConfig.relationDetail($resourceProvider.getContent( - content, - $resourceProvider.getPageContent(0, 0))).then(function (result) { + // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + if ($rootScope.isDefined(issueTableConfigs)) { + // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. - if (result.data.message.status === "success") { - var issueTableConfigs = result.data.data; + $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; + }); - // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. - if ($rootScope.isDefined(issueTableConfigs)) { - // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. + $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) { + // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + if (Rel_issueTableConfig.display) { + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + $scope.fn.setRelTableColumn(Rel_issueTableConfig); - $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; - }); - - $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) { - // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Rel_issueTableConfig.display) { - // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setRelTableColumn(Rel_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")) - - } else { - makeRelTableConfigs(); } + }); + $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")) - } else { - SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "�씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �삤瑜�" - } - }); + } else { + makeRelTableConfigs(); + } + } - // �븯�쐞 �씠�뒋 �긽�꽭 議고쉶 - function getDownTableConfigs() { - var content = { - issueId : $scope.vm.viewer.id, - issueTypeId : $rootScope.getCurrentIssueTypeId() - }; + // �븯�쐞 �씠�뒋 �긽�꽭 議고쉶 寃곌낵 �꽕�젙 + function setDownTableConfigs(issueTableConfigVo) { + if (issueTableConfigVo == null) return; + var issueTableConfigs = issueTableConfigVo.issueTableConfigs; - IssueTableConfig.downDetail($resourceProvider.getContent( - content, - $resourceProvider.getPageContent(0, 0))).then(function (result) { - - if (result.data.message.status === "success") { - var issueTableConfigs = result.data.data; - - // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. - 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; - }); - $scope.vm.downTableConfigs = []; - $scope.vm.downTableConfigs.push($tableProvider.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) { - // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (Down_issueTableConfig.display) { - // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setDownTableColumn(Down_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")) - - } else { - makeDownTableConfigs(); + // �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + 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; + }); + $scope.vm.downTableConfigs = []; + $scope.vm.downTableConfigs.push($tableProvider.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) { + // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + if (Down_issueTableConfig.display) { + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + $scope.fn.setDownTableColumn(Down_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")) - } - else { - SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "�씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �삤瑜�" - } - }); + } else { + makeDownTableConfigs(); + } } // �뿰愿� �씠�뒋 異붽� @@ -666,22 +649,26 @@ }); } - // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. - // $rootScope.$on("getIssueDetail", function (event, args) { - // $scope.vm.viewer.id = args["id"]; - // $scope.fn.getIssueDetail(); - // }); - - // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊 - $rootScope.$on("getIssueDetail", function (event, args) { - $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(); // }); + + // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊 + // $rootScope.$on("getIssueDetail", function (event, args) { + // $scope.fn.getIssueDetail(); + // }); + + $scope.$on("getIssueDetail", function (event, args) { + $scope.fn.getIssueDetail(); + }); $scope.$watch(function() { return $rootScope.currentDetailIssueId; @@ -714,7 +701,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 }; } } @@ -770,10 +758,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 }; } } @@ -865,8 +854,8 @@ // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. $scope.fn.initReload(); - $scope.fn.getRelTableConfigs(); - $scope.fn.getDownTableConfigs(); + // $scope.fn.getRelTableConfigs(); + // $scope.fn.getDownTableConfigs(); Issue.detail($resourceProvider.getContent( {id : $scope.vm.viewer.id, deep : "02"}, @@ -874,6 +863,7 @@ if (result.data.message.status === "success") { if (angular.isDefined(result.data.data)) { + $scope.vm.viewer = angular.copy(result.data.data); // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� $scope.fn.makePreviewImages(result.data.data.attachedFileVos); @@ -893,7 +883,12 @@ $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; + $scope.fn.setRelTableConfigs(issueTableConfigVos[0]); + $scope.fn.setDownTableConfigs(issueTableConfigVos[1]); // �뿰愿� �씠�뒋 諛섎났臾� if (result.data.data.issueRelationVos !== null) { @@ -908,20 +903,16 @@ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); - // 媛꾪뿉�쟻�씤 �븯�쐞 �씠�뒋 媛깆떊 �삤瑜� 諛⑹� - // $rootScope.$on("getIssueDetail", function (event, args) { - // $scope.fn.getIssueDetail(); - // }); - + $scope.vm.form.issuesDownStatus.push(issueDownVo.issueStatusVo.issueStatusType); }); } $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); } + } } else { @@ -1004,8 +995,45 @@ // �솢�룞 �씠�젰 留뚮뱾湲� function makeActiveHistory() { - $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); - $scope.vm.viewer.activeHistory.sort(function (a, b) { + if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) { + $scope.vm.viewer.activeHistory = ""; + $scope.vm.viewer.activeParentHistory = ""; + $scope.vm.viewer.activeDownHistory = ""; + $scope.vm.viewer.activeDownAllHistory = ""; + // �븯�쐞�씠�뒋 �엳�뒪�넗由� + for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){ + $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.issueDownVos[i].issueHistoryVos.concat($scope.vm.viewer.issueDownVos[i+1].issueHistoryVos); + i++; + } + for (var i=0; i<$scope.vm.viewer.activeDownHistory.length; i++){ + $scope.vm.viewer.activeDownHistory[i].description + = "<div class='dot'>�븯�쐞�씠�뒋 : "+$scope.vm.viewer.activeDownHistory[i].title+"</div>" + $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<$scope.vm.viewer.issueDownVos.length; i++) { + $scope.vm.viewer.downComment = $scope.vm.viewer.issueDownVos[i].issueCommentVos.concat($scope.vm.viewer.issueDownVos[i+1].issueCommentVos); + i++; + } + /*for (var i=0; i<$scope.vm.viewer.downComment.length; i++){ + $scope.vm.viewer.downComment[i].description + = $scope.vm.viewer.downComment[i].title +"�쓽 �뙎湲� : "+ $scope.vm.viewer.downComment[i].description; + }*/ + $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.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory); + + }else { + $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + } + $scope.vm.viewer.activeHistory.sort(function (a, b) { //�궡由쇱감�닚 return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; }); } @@ -1082,6 +1110,7 @@ if (result.data.message.status === "success") { $scope.vm.viewer.issueCommentVos = result.data.data; + $scope.fn.updateActiveHistory(); } else { SweetAlert.swal({ -- Gitblit v1.8.0