From 2bf76c84270c33087aa74b9b074eaf87d85b30cf Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 월, 28 2월 2022 13:17:20 +0900 Subject: [PATCH] - 이슈리스트 사용자정의필드 컬럼 정렬 안되는 문제 해결 --- src/main/webapp/scripts/app/issue/issueList.controller.js | 206 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 144 insertions(+), 62 deletions(-) diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index 46c4c54..5c7873d 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -61,13 +61,11 @@ registerDateRange : "", // �벑濡앹씪 湲곌컙 寃��깋 startDateRange : "", // �떆�옉�씪 湲곌컙 寃��깋 completeDateRange : "", // �셿猷뚯씪 湲곌컙 寃��깋 + dateRange : "", // 湲곌컙 寃��깋 severityIds : [], // 以묒슂�룄 寃��깋 priorityIds : [], // �슦�꽑�닚�쐞 寃��깋 issueStatusIds : [], // �씠�뒋 �긽�깭 寃��깋 issueTypeIds : [] // �씠�뒋 �쑀�삎 寃��깋 - }, - searchAll : { - keyWord : "", // �쟾泥� 寃��깋 }, searchView : false, // �긽�꽭 寃��깋 議곌굔 �몴�떆 �뿬遺� detailView : false, // �긽�꽭 紐⑤뱶 蹂�寃� 媛� @@ -75,6 +73,7 @@ selectedPage : 0, selectedPageRowCount : String(10) }, + tableConfigs : [], // �뀒�씠釉� �뀑�똿 �젙蹂� treeConfigs : [], // �듃由� �뀑�똿 �젙蹂� responseData : { @@ -99,6 +98,7 @@ hideCompleteIssue : false, hideDownIssue : true, listMode : 0, // 紐⑸줉 紐⑤뱶 0:湲곕낯 由ъ뒪�듃 1:�듃由ш뎄議� 由ъ뒪�듃 + allIssue : false }; // �뀒�씠釉� �씠踰ㅽ듃 @@ -129,13 +129,9 @@ }); $scope.$on("changedIssueListMenu", function (event, args) { - $scope.fn.getPageList($scope.vm.page.selectedPage - 1); - }); - - // �긽�떒 寃��깋�떆 - $rootScope.$on("searchIssueList", function (event, args) { - $scope.vm.searchAll.keyWord = args.keyWord; - $scope.fn.getPageList(0); + $scope.vm.search.keyWord = ""; + $rootScope.isMainSearch = false; + //$scope.fn.getPageList($scope.vm.page.selectedPage - 1); }); // 寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. - �쟻�슜 蹂대쪟 @@ -165,7 +161,7 @@ } // �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇�삩�떎. - function getVmSearchObject() { + function getVmSearchObject(keyWord = null, allIssue = false) { IssueSearch.detail($resourceProvider.getContent({}, $resourceProvider.getPageContent(0, 0))).then(function (result) { @@ -179,9 +175,9 @@ // $scope.vm.projects = issueListSearchObject.projects; // $scope.vm.registers = issueListSearchObject.registers; - $scope.fn.getPageList(0, true); + $scope.fn.getPageList(0, true, keyWord, allIssue); } else { - $scope.fn.getPageList(0); + $scope.fn.getPageList(0, false, keyWord, allIssue); } } else { @@ -189,9 +185,10 @@ } }); } + $scope.vm.issueIds = []; // �긽�꽭 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. - function changeDetailView(id) { + function changeDetailView(id, isBack = false) { $scope.vm.tableConfigs = []; $scope.vm.detailView = true; @@ -202,6 +199,10 @@ // �뀒�씠釉붿쓣 �떎�떆 洹몃┫�닔 �엳寃� �뜲�씠�꽣 諛붿씤�뵫�쓣 �떎�떆�븳�떎. var temp = angular.copy($scope.vm.responseData.data); $scope.vm.responseData.data = angular.copy(temp); + + if (!isBack) { + $scope.vm.issueIds.push(id); + } // �쁽�옱 �긽�꽭�솕硫댁쑝濡� 蹂대젮怨좏븯�뒗 �씠�뒋 id瑜� 湲곗뼲�븳�떎. $rootScope.currentDetailIssueId = id; // �씠�뒋 �긽�꽭 �솕硫� �슂泥� @@ -213,6 +214,7 @@ // 紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. function listView() { + $scope.vm.issueIds = []; $scope.vm.detailView = false; // �씠�뒋 �뀒�씠釉� �꽕�젙 $scope.fn.makeTableConfigs(); @@ -336,7 +338,7 @@ case "ISSUE_TITLE" : // �씠�뒋 �젣紐� $scope.vm.tableConfigs.push($tableProvider.config() .setHName("issue.issueTitle") - .setDName("issueTitle") + .setDName("title") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -346,7 +348,7 @@ case "PRIORITY" : // �슦�꽑�닚�쐞 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.priority") - .setDName("priority") + .setDName("priorityId") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -355,7 +357,7 @@ case "SEVERITY" : // 以묒슂�룄 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.importance") - .setDName("severity") + .setDName("severityId") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -364,7 +366,7 @@ case "ISSUE_TYPE" : // �씠�뒋 �쑀�삎 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("issue.issueType") - .setDName("issueType") + .setDName("issueTypeId") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -373,7 +375,7 @@ case "ASSIGNEE_TEAM" : // �떞�떦遺��꽌 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.assigneeTeam") - .setDName("assigneeTeam") + .setDName("departmentName") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -382,7 +384,7 @@ case "REGISTER" : // �벑濡앹옄 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.register") - .setDName("register") + .setDName("registerId") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -391,7 +393,6 @@ case "PERIOD" : // 湲곌컙 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.period") - .setDName("period") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") @@ -407,11 +408,39 @@ case "COUNT_DOWN_ISSUE" : // �븯�쐞 �씠�뒋 媛쒖닔 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.countDownIssue") - .setDName("countDownIssue") + .setDName("downIssueCount") .setDType("renderer") .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") + .setColumnTooltip("誘몄셿猷� �븯�쐞�씠�뒋/�쟾泥� �븯�쐞�씠�뒋") .setDRenderer("DOWN_ISSUE_COUNT")); + break; + case "COMPANY" : // �뾽泥� + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.company") + .setDName("companyName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("USE_COMPANY")); + break; + case "ISP" : // ISP + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.isp") + .setDName("ispName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("USE_ISP")); + break; + case "HOSTING" : // HOSTING + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.hosting") + .setDName("hostingName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("USE_HOSTING")); break; } @@ -425,7 +454,7 @@ $scope.vm.tableConfigs.push($tableProvider.config() .setHName(customField.name) .setDType("renderer") - .setDName("customFieldName" + [count]) + .setDName("useValue"+count) .setHWidth("bold " + issueTableConfig.width) .setDAlign("text-center") .setColumnHint(customField) @@ -454,6 +483,7 @@ // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. function makeSearchConditions() { var conditions = { + allIssue : $scope.vm.allIssue, keyWord : $scope.vm.search.keyWord, title : $scope.vm.search.title, description : $scope.vm.search.description, @@ -466,15 +496,18 @@ endStartDate : "", beginCompleteDate : "", endCompleteDate : "", + dateRange: "", hideCompleteIssue: $scope.vm.hideCompleteIssue, hideDownIssue : $scope.vm.hideDownIssue, isTree : $scope.vm.listMode === 1, projectIds : (function () { var projectIds = []; - angular.forEach($scope.vm.projects, function (project) { - projectIds.push(project.id); - }); + if (!$scope.vm.allIssue) { //�쟾泥� �궎�썙�뱶 寃��깋�씠 �븘�땺 寃쎌슦�뿉留� �봽濡쒖젥�듃ID push + angular.forEach($scope.vm.projects, function (project) { + projectIds.push(project.id); + }); + } return projectIds; })(), @@ -490,9 +523,11 @@ issueTypeIds : (function () { var issueTypeIds = []; - angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) { - issueTypeIds.push(issueTypeId.fieldKey); - }); + if (!$scope.vm.allIssue) { //�쟾泥� �궎�썙�뱶 寃��깋�씠 �븘�땺 寃쎌슦�뿉留� �씠�뒋�쑀�삎ID push + angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) { + issueTypeIds.push(issueTypeId.fieldKey); + }); + } return issueTypeIds; })(), @@ -585,8 +620,13 @@ conditions.beginCompleteDate = completeDateRange[0].trim(); conditions.endCompleteDate = completeDateRange[1].trim(); } + // 湲곌컙 + if ($rootScope.isDefined($scope.vm.search.dateRange)) { + conditions.dateRange = $scope.vm.search.dateRange.trim(); + } return conditions; + } function getTreeList() { @@ -594,14 +634,21 @@ } // �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎. - function getPageList(selectedPage, detail = false, keyWord = "") { + function getPageList(selectedPage, detail = false, keyWord = null, allIssue = false) { $rootScope.spinner = true; // �봽濡쒓렇�옒�뒪 諛� if (selectedPage < 0) { selectedPage = 0; } + if (allIssue) { + $scope.vm.allIssue = true; + $rootScope.$broadcast("getAllIssuePageList"); + } - if (keyWord !== "") { + if (keyWord != null) { $scope.vm.search.keyWord = keyWord; + $rootScope.isMainSearch = true; + $scope.vm.allIssue = true; + $rootScope.$broadcast("getPageListKeyWord", {keyWord: $scope.vm.search.keyWord}); } if ($scope.vm.hideCompleteIssue) { @@ -625,10 +672,10 @@ // 寃��깋 湲곕낯媛� �꽭�똿 $scope.vm.search.issueTypeIds = []; $scope.vm.projects = []; - if ($scope.vm.searchAll.keyWord == null || $scope.vm.searchAll.keyWord === "") { + if (!$scope.vm.allIssue && keyWord == null || keyWord === '') { // 硫붾돱�뿉�꽌 �꽑�깮�맂 �씠�뒋 �쑀�삎�쓣 湲곕낯�쑝濡� 異붽� if ($rootScope.issueTypeMenu != null) { - //$scope.vm.pageTitle = $rootScope.issueTypeMenu.name; + $scope.vm.pageTitle = $rootScope.issueTypeMenu.name; $scope.vm.search.issueTypeIds.push({ fieldKey: $rootScope.issueTypeMenu.id, @@ -652,10 +699,16 @@ // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. var conditions = $scope.fn.makeSearchConditions(); + if ($rootScope.previousGetParams != null) + $rootScope.previousGetParams = null; + Issue.find($resourceProvider.getContent(conditions, $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + if (result.data.data != null && result.data.data.length > 0) { //var resultSize = result.data.data.length; for (var i = 0; i < result.data.data.length; i++) { @@ -676,14 +729,14 @@ $scope.vm.projectKey = result.data.data[0].projectKey; $scope.vm.issueNumber = result.data.data[0].issueNumber; $scope.vm.projectName = result.data.data[0].projectName; - $scope.vm.page.selectedPage = currentPage + 1; - $scope.vm.responseData = result.data; if (detail) { changeDetailView(result.data.data[0].id); } } else { - $scope.vm.responseData = result.data; + // 媛믪씠 �뾾�쓣�븣 媛믪쓣 �꽔�뼱二쇰젮怨� �븯�뒗 �쓽�룄 + // $scope.vm.responseData = result.data; + result.data = $scope.vm.responseData; } } else { @@ -795,7 +848,7 @@ } // �씠�뒋 �닔�젙 �뙘�뾽 �샇異� - function modify(id) { + function modify(id, downTotalCount) { $uibModal.open({ templateUrl : 'views/issue/issueModify.html', size : "lg", @@ -805,13 +858,17 @@ parameter : function () { return { id : id, + issueTypeId : $scope.vm.viewer.issueTypeVo.id, + inheritPartners : $scope.vm.viewer.issueTypeVo.inheritPartners, + usePartner : $scope.vm.viewer.usePartnerVos, + downTotalCount : downTotalCount }; } } }); } - function addRelationIssueForm(id) { + function addRelationIssueForm(id, project, issueTypeId) { $uibModal.open({ templateUrl : 'views/issue/issueAddRelation.html', size : "lg", @@ -821,13 +878,15 @@ parameter : function () { return { id : id, + project : project, + issueTypeId : issueTypeId }; } } }); } - function addDownIssueForm(id) { + function addDownIssueForm(id, project, issueTypeId) { $uibModal.open({ templateUrl : 'views/issue/issueAddDown.html', size : "lg", @@ -837,6 +896,8 @@ parameter : function () { return { id : id, + project : project, + issueTypeId : issueTypeId }; } } @@ -1016,7 +1077,8 @@ resolve : { parameter : function () { return { - issueTypeId : $scope.vm.issueTypeId + issueTypeId : $scope.vm.issueTypeId, + allIssue : $scope.vm.allIssue }; } } @@ -1078,13 +1140,16 @@ var deferred = $q.defer(); $scope.vm.partners = []; - Issue.findPartners($resourceProvider.getContent({}, + Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()}, $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { - $scope.vm.partnerVos = result.data.content; + angular.forEach(result.data.data, function (partner) { + $scope.vm.partners.push(partner); + }); + //$scope.vm.partnerVos = result.data.data; } else { - SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // �뙆�듃�꼫 紐⑸줉 議고쉶 �떎�뙣 } deferred.resolve(result.data.data); @@ -1170,7 +1235,6 @@ break; } - $scope.vm.customFields.push(customField); }); } @@ -1189,20 +1253,26 @@ function getIssueTableConfigs() { var deferred = $q.defer(); - if ($rootScope.issueTypeMenu != null){ - var content = { - issueTypeId : $rootScope.issueTypeMenu.id + var content = { + issueTypeId : (function () { + var id = ""; + if ($rootScope.allIssueList) { + id = -1; + } else { + id = $rootScope.getCurrentIssueTypeId(); } - - IssueTableConfig.detail($resourceProvider.getContent(content, - $resourceProvider.getPageContent(0, 1000))).then(function (result) { - if (result.data.message.status !== "success") { - SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣 - } - - deferred.resolve(result.data.data); - }); + return id; + })() } + + IssueTableConfig.detail($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status !== "success") { + SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); return deferred.promise; } @@ -1257,13 +1327,23 @@ // 理쒖큹 �떎�뻾 function startExecute() { + // �씠�뒋 �긽�꽭�솕硫� �씠�뒋 �씠�룞 �궡�뿭 ���옣 + $scope.vm.issueIds = []; + // 荑좏궎 �씫湲� + var paramKeyWord = null; + + var keyWord = $rootScope.getCookie("searchKeyword"); + if (keyWord != null && keyWord !== '') { + paramKeyWord = keyWord; + $rootScope.deleteCookie("searchKeyword"); + } + // �뙆�씪誘명꽣 �씫湲� var params = $rootScope.previousGetParams; if ($rootScope.isDefined(params)) { // $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); if (params.keyWord != null) { - $scope.vm.searchAll.keyWord = params.keyWord; - getPageList(0,false, params.keyWord); + paramKeyWord = params.keyWord; }else { getDetailList(params.projectKey, params.issueNumber); return; @@ -1271,12 +1351,14 @@ // $rootScope.issueTypeId = $rootScope.issueTypeMenu.id; } + var allIssue = $rootScope.allIssueList; + var promises = { getIssueTypes : $scope.fn.getIssueTypes(), getPriorities : $scope.fn.getPriorities(), getSeverities : $scope.fn.getSeverities(), getIssueStatuses : $scope.fn.getIssueStatuses(), - getCustomFields : $scope.fn.getCustomFields() + getCustomFields : $scope.fn.getCustomFields(), }; $q.all(promises).then(function (results){ @@ -1291,7 +1373,7 @@ // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. $scope.vm.issueTableConfigs = JSON.parse(issueTableConfigs); $scope.vm.issueTableConfigs.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; }); } else { @@ -1300,9 +1382,9 @@ // �씠�뒋 �뀒�씠釉� �꽕�젙 $scope.fn.makeTableConfigs(); - // �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇���꽌 �씠�뒋 紐⑸줉 寃��깋�쓣 吏꾪뻾�븳�떎. - $scope.fn.getVmSearchObject(); }); + // �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇���꽌 �씠�뒋 紐⑸줉 寃��깋�쓣 吏꾪뻾�븳�떎. + $scope.fn.getVmSearchObject(paramKeyWord, allIssue); }); } -- Gitblit v1.8.0