/**
|
* Created by wisestone on 2017-12-21.
|
*/
|
'use strict';
|
|
define([
|
'app',
|
'angular'
|
],
|
function (app, angular) {
|
app.controller('issueListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$treeProvider', '$state', '$uibModal', '$q',
|
'$controller', '$injector', 'SweetAlert', 'Issue', 'IssueType', 'Priority', 'Severity', 'IssueStatus', 'CustomField', 'IssueSearch', 'IssueTableConfig', '$timeout', '$filter',
|
function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $treeProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, Issue, IssueType, Priority, Severity, IssueStatus, CustomField,
|
IssueSearch, IssueTableConfig, $timeout, $filter) {
|
|
// 함수
|
$scope.fn = {
|
initSearch : initSearch, // 검색 초기화
|
getPageList : getPageList, // 목록 조회
|
changePageRowCount : changePageRowCount, // 페이지 변경
|
makeTableConfigs : makeTableConfigs, // 테이블 설정
|
setTableColumn : setTableColumn, // 테이블의 컬럼을 만들어준다.
|
setTreeColumn : setTreeColumn,
|
add : add, // 이슈 생성
|
modify : modify, // 이슈 수정
|
addRelationIssueForm : addRelationIssueForm, // 연관 이슈 추가
|
addDownIssueForm : addDownIssueForm, // 하위 이슈 추가
|
modifyMultiIssueStatus : modifyMultiIssueStatus, // 이슈 다중 상태 변경
|
removes : removes, // 이슈 삭제
|
addIssueTableConfig : addIssueTableConfig, // 이슈 목록 테이블 설정
|
listView : listView, // 목록 화면으로 변경
|
importExcel : importExcel, // 엑셀 import 기능 팝업 호출
|
getIssueTypes : getIssueTypes, // 이슈 유형 목록을 가져온다.
|
getUsePartner : getUsePartner, // 이슈 유형 별 사용하는 파트너 목록을 가져온다.
|
getPriorities : getPriorities, // 우선순위 목록을 가져온다.
|
getSeverities : getSeverities, // 중요도 목록을 가져온다.
|
getIssueStatuses : getIssueStatuses, // 이슈 상태 목록을 가져온다.
|
getCustomFields : getCustomFields, // 사용자 정의 필드 목록을 가져온다.
|
makeVmSearchObject : makeVmSearchObject, // 검색 조건을 기억한다.
|
getVmSearchObject : getVmSearchObject, // 저장한 검색 조건을 가져와서 vm 에 셋팅한다.
|
makeSearchConditions : makeSearchConditions, // 검색 조건을 만든다.
|
getIssueTableConfigs : getIssueTableConfigs, // 사용자 이슈 목록 테이블 설정 값을 가져와서 적용한다.
|
startExecute : startExecute, // 컨트롤 로딩시 처음으로 시작되는 함수
|
getResponseData : getResponseData, // 컨트롤 로딩시 처음으로 시작되는 함수
|
onClickListMode : onClickListMode, // 리스트 모드 변경시 실행되는 함수
|
setDefaultTableConfig : setDefaultTableConfig // 기본 테이블 설정 세팅
|
};
|
|
// 변수
|
$scope.vm = {
|
projectId : "",
|
issueTypeId : "",
|
partnerVos : "",
|
search : {
|
keyWord : "", // 검색
|
title : "", // 제목
|
description : "", // 내용
|
combinationIssueNumber : "", // 이슈 번호
|
issueNumber : "",
|
projectType : "BTS_PROJECT", // 프로젝트 유형
|
registerDateRange : "", // 등록일 기간 검색
|
startDateRange : "", // 시작일 기간 검색
|
completeDateRange : "", // 완료일 기간 검색
|
dateRange : "", // 기간 검색
|
severityIds : [], // 중요도 검색
|
priorityIds : [], // 우선순위 검색
|
issueStatusIds : [], // 이슈 상태 검색
|
issueTypeIds : [] // 이슈 유형 검색
|
},
|
searchView : false, // 상세 검색 조건 표시 여부
|
detailView : false, // 상세 모드 변경 값
|
page : {
|
selectedPage : 0,
|
selectedPageRowCount : String(10)
|
},
|
|
tableConfigs : [], // 테이블 셋팅 정보
|
treeConfigs : [], // 트리 셋팅 정보
|
responseData : {
|
data : []
|
},
|
projectName : "", // 프로젝트 검색
|
userName : "", // 담당자 검색
|
registerName : "", // 등록자 검색
|
projects : [], // 프로젝트
|
issueStatuses : [], // 이슈 상태
|
issueTypes : [], // 이슈 유형
|
partners : [], // 이슈 유형
|
priorities : [], // 우선 순위
|
severities : [], // 중요도
|
users : [], // 담당자
|
departments : [], // 담당부서
|
registers : [], // 등록자
|
customFields : [], // 사용자 정의 필드
|
issueTableConfigs : [], // 이슈 테이블 설정
|
issueTreeConfigs : [], // 이슈 테이블 설정
|
parentIssueId : "",
|
hideCompleteIssue : false,
|
hideDownIssue : true,
|
listMode : 0, // 목록 모드 0:기본 리스트 1:트리구조 리스트
|
allIssue : false
|
};
|
|
// 테이블 이벤트
|
$scope.tableEvent = {
|
changeDetailView : changeDetailView // 상세 화면으로 변경
|
};
|
|
angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
|
|
// 이슈목록 새로고침 목록 갱신
|
$scope.$on("findIssueListOK", function (event, args) {
|
if (args != null) {
|
$scope.fn.startExecute();
|
}
|
});
|
|
// 이슈 목록 데이터 갱신
|
$scope.$on("getIssueList", function () {
|
$scope.fn.getPageList($scope.vm.page.selectedPage - 1);
|
});
|
|
// 이슈 목록 새로고침
|
$rootScope.$on("getIssueList", function (event, args) {})
|
|
// 이슈 테이블 설정 정보 갱신
|
$scope.$on("getIssueTableConfigs", function () {
|
$scope.fn.startExecute();
|
});
|
|
$scope.$on("changedIssueListMenu", function (event, args) {
|
$scope.vm.search.keyWord = "";
|
$rootScope.isMainSearch = false;
|
//$scope.fn.getPageList($scope.vm.page.selectedPage - 1);
|
});
|
|
// 검색 조건을 기억한다. - 적용 보류
|
// 검색 조건을 기억해서 이슈 상세 페이지로 이동
|
function makeVmSearchObject() {
|
var content = {
|
conditions : JSON.stringify({
|
search : $scope.vm.search,
|
projects : $scope.vm.projects,
|
users : $scope.vm.users,
|
departments : $scope.vm.departments,
|
registers : $scope.vm.registers,
|
parentIssueId : $scope.vm.parentIssueId
|
})
|
};
|
|
IssueSearch.add($resourceProvider.getContent(content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToSaveFieldConditions"), result.data.message.message); // 검색 필드 조건 저장 실패
|
}
|
});
|
}
|
|
// 서버에 저장한 이슈 검색 조건을 가져온다.
|
function getVmSearchObject(keyWord = null, allIssue = false) {
|
|
IssueSearch.detail($resourceProvider.getContent({}, $resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
if ($rootScope.isDefined(result.data.data)) {
|
var issueListSearchObject = JSON.parse(result.data.data);
|
// 이슈 번호만 적용한다. - 삭제시 처리방법때문에 다른 속성은 적용 보류
|
$scope.vm.search = issueListSearchObject.search;
|
// $scope.vm.users = issueListSearchObject.users;
|
// $scope.vm.departments = issueListSearchObject.departments;
|
// $scope.vm.projects = issueListSearchObject.projects;
|
// $scope.vm.registers = issueListSearchObject.registers;
|
|
$scope.fn.getPageList(0, true, keyWord, allIssue);
|
} else {
|
$scope.fn.getPageList(0, false, keyWord, allIssue);
|
}
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToGetSearchFieldCondition"), result.data.message.message); // 검색 필드 조건 가져오기 실패
|
}
|
});
|
}
|
$scope.vm.issueIds = [];
|
|
// 상세 화면으로 변경한다.
|
function changeDetailView(id, isBack = false) {
|
$scope.vm.tableConfigs = [];
|
$scope.vm.detailView = true;
|
|
$scope.fn.makeTableConfigs();
|
|
// chrome 에서 마우스 떠난걸 감지 못해서 이벤트 추가.
|
$(".full-height-scroll").trigger("mouseleave");
|
// 테이블을 다시 그릴수 있게 데이터 바인딩을 다시한다.
|
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;
|
// 이슈 상세 화면 요청
|
// $scope.$broadcast("getIssueDetail", {
|
// id : id
|
// });
|
}
|
|
|
// 목록 화면으로 변경한다.
|
function listView() {
|
$scope.vm.issueIds = [];
|
$scope.vm.detailView = false;
|
// 이슈 테이블 설정
|
$scope.fn.makeTableConfigs();
|
var temp = angular.copy($scope.vm.responseData.data);
|
$scope.vm.responseData.data = angular.copy(temp);
|
// 마지막으로 보고있던 이슈 id를 초기화한다.
|
$rootScope.currentDetailIssueId = null;
|
$scope.$broadcast("getIssueList", {id: $rootScope.currentDetailIssueId});
|
}
|
|
// 이슈 테이블 설정
|
function makeTableConfigs() {
|
$scope.vm.tableConfigs = [];
|
$scope.vm.treeConfigs = [];
|
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setDType("checkbox")
|
.setHWidth("width-20-p")
|
.setDAlign("text-center"));
|
|
// 상세형 일때때
|
// if ($scope.vm.detailView) {
|
// $scope.vm.tableConfigs.push($tableProvider.config()
|
// .setHName("issue.issueTitle")
|
// .setDName("title")
|
// .setDType("renderer")
|
// .setHWidth("bold")
|
// .setDRenderer("ISSUE_DETAIL_FLOATING"));
|
// }
|
// else {
|
// $scope.vm.tableConfigs.push($tableProvider.config()
|
// .setHName("issue.issueTitle")
|
// .setDName("title")
|
// .setDType("renderer")
|
// .setHWidth("bold")
|
// .setDRenderer("ISSUE_DETAIL_FLOATING"));
|
//
|
// angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
|
// // 표시 대상인 컬럼만 화면에 그려준다.
|
// if (issueTableConfig.display) {
|
// // 테이블의 컬럼을 만들어준다.
|
// $scope.fn.setTableColumn(issueTableConfig);
|
// }
|
// });
|
// }
|
angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) {
|
// 표시 대상인 컬럼만 화면에 그려준다.
|
if (issueTableConfig.display) {
|
// 테이블의 컬럼을 만들어준다.
|
$scope.fn.setTableColumn(issueTableConfig);
|
$scope.fn.setTreeColumn(issueTableConfig);
|
}
|
});
|
}
|
|
// 트리 컬럼을 만들어준다.
|
function setTreeColumn(issueTableConfig) {
|
// 일반 컬럼
|
switch(issueTableConfig.key) {
|
case "ISSUE_TITLE" : // 이슈 제목
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("title"));
|
break;
|
|
case "PRIORITY" : // 우선순위
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("priorityName"));
|
break;
|
case "SEVERITY" : // 중요도
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("severityName"));
|
break;
|
case "ISSUE_TYPE" : // 이슈 타입
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("issueTypeName"));
|
break;
|
case "ASSIGNEE_TEAM" : // 담당부서
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("assigneeTeam"));
|
break;
|
case "REGISTER" : // 등록자
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("register"));
|
break;
|
case "PERIOD" : // 기간
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("period"));
|
break;
|
case "MODIFY_DATE" : // 최근 변경일
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("modifyDate"));
|
break;
|
case "COUNT_DOWN_ISSUE" : // 하위 이슈 개수
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDName("countDownIssue"));
|
break;
|
}
|
|
// 사용자 정의 필드 컬럼
|
if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
|
// 만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
|
for (var count in $scope.vm.customFields) {
|
var customField = $scope.vm.customFields[count];
|
|
if (customField.id === Number(issueTableConfig.key.substring(13))) {
|
$scope.vm.treeConfigs.push($treeProvider.config()
|
.setDType("CUSTOM_FIELD")
|
.setDName(customField.id)
|
.setColumnHint(customField));
|
break;
|
}
|
}
|
}
|
}
|
|
// 테이블의 컬럼을 만들어준다.
|
function setTableColumn(issueTableConfig) {
|
|
// 일반 컬럼
|
switch(issueTableConfig.key) {
|
case "ISSUE_TITLE" : // 이슈 제목
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("issue.issueTitle")
|
.setDName("title")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("ISSUE_TITLE"));
|
break;
|
|
case "PRIORITY" : // 우선순위
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.priority")
|
.setDName("priorityId")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("COMMON_PRIORITY"));
|
break;
|
case "SEVERITY" : // 중요도
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.importance")
|
.setDName("severityId")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("COMMON_SEVERITY"));
|
break;
|
case "ISSUE_TYPE" : // 이슈 유형
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("issue.issueType")
|
.setDName("issueTypeId")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("COMMON_ISSUE_TYPE"));
|
break;
|
case "ASSIGNEE_TEAM" : // 담당부서
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.assigneeTeam")
|
.setDName("departmentName")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("ISSUE_DEPARTMENT"));
|
break;
|
case "REGISTER" : // 등록자
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.register")
|
.setDName("registerId")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("REGISTER"));
|
break;
|
case "PERIOD" : // 기간
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.period")
|
.setDType("renderer")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("ISSUE_DUE_DATE"));
|
break;
|
case "MODIFY_DATE" : // 최근 변경일
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.lastChangeDate")
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDName("modifyDate"));
|
break;
|
case "COUNT_DOWN_ISSUE" : // 하위 이슈 개수
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName("common.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;
|
}
|
|
// 사용자 정의 필드 컬럼
|
if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
|
// 만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
|
for (var count in $scope.vm.customFields) {
|
var customField = $scope.vm.customFields[count];
|
|
if (customField.id === Number(issueTableConfig.key.substring(13))) {
|
$scope.vm.tableConfigs.push($tableProvider.config()
|
.setHName(customField.name)
|
.setDType("renderer")
|
.setDName("useValue"+count) /* todo 체크*/
|
.setHWidth("bold " + issueTableConfig.width)
|
.setDAlign("text-center")
|
.setColumnHint(customField)
|
.setDRenderer("ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
|
break;
|
}
|
}
|
}
|
}
|
|
// 검색 필드 초기화
|
function initSearch() {
|
$state.go($state.current, {}, {reload : true});
|
/*IssueSearch.remove($resourceProvider.getContent({screen : "ISSUE_LIST"},
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status == "success") {
|
$state.go($state.current, {}, {reload : true});
|
}
|
else {
|
SweetAlert.swal("검색 필드 초기화 실패", result.data.message.message, "error");
|
}
|
});*/
|
}
|
|
// 이슈 검색 조건을 만든다.
|
function makeSearchConditions() {
|
var conditions = {
|
allIssue : $scope.vm.allIssue,
|
keyWord : $scope.vm.search.keyWord,
|
title : $scope.vm.search.title,
|
description : $scope.vm.search.description,
|
issueNumber : $scope.vm.search.issueNumber,
|
projectType : $scope.vm.search.projectType,
|
combinationIssueNumber : $scope.vm.search.combinationIssueNumber.trim(),
|
beginRegisterDate : "",
|
endRegisterDate : "",
|
beginStartDate : "",
|
endStartDate : "",
|
beginCompleteDate : "",
|
endCompleteDate : "",
|
dateRange: "",
|
hideCompleteIssue: $scope.vm.hideCompleteIssue,
|
hideDownIssue : $scope.vm.hideDownIssue,
|
isTree : $scope.vm.listMode === 1,
|
projectIds : (function () {
|
var projectIds = [];
|
|
if (!$scope.vm.allIssue) { //전체 키워드 검색이 아닐 경우에만 프로젝트ID push
|
angular.forEach($scope.vm.projects, function (project) {
|
projectIds.push(project.id);
|
});
|
}
|
|
return projectIds;
|
})(),
|
issueStatusIds : (function () {
|
var issueStatusIds = [];
|
|
angular.forEach($scope.vm.search.issueStatusIds, function (issueStatusId) {
|
issueStatusIds.push(issueStatusId.fieldKey);
|
});
|
|
return issueStatusIds;
|
})(),
|
issueTypeIds : (function () {
|
var issueTypeIds = [];
|
|
if (!$scope.vm.allIssue) { //전체 키워드 검색이 아닐 경우에만 이슈유형ID push
|
angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) {
|
issueTypeIds.push(issueTypeId.fieldKey);
|
});
|
}
|
|
return issueTypeIds;
|
})(),
|
priorityIds : (function () {
|
var priorityIds = [];
|
|
angular.forEach($scope.vm.search.priorityIds, function (priorityId) {
|
priorityIds.push(priorityId.fieldKey);
|
});
|
|
return priorityIds;
|
})(),
|
severityIds : (function () {
|
var severityIds = [];
|
|
angular.forEach($scope.vm.search.severityIds, function (severityId) {
|
severityIds.push(severityId.fieldKey);
|
});
|
|
return severityIds;
|
})(),
|
userIds : (function () {
|
var userIds = [];
|
|
angular.forEach($scope.vm.users, function (user) {
|
userIds.push(user.id);
|
});
|
|
return userIds;
|
})(),
|
departmentIds : (function () {
|
var departmentIds = [];
|
|
angular.forEach($scope.vm.departments, function (department) {
|
departmentIds.push(department.id);
|
});
|
|
return departmentIds;
|
})(),
|
registerIds : (function () {
|
var registerIds = [];
|
|
angular.forEach($scope.vm.registers, function (register) {
|
registerIds.push(register.id);
|
});
|
|
return registerIds;
|
})(),
|
issueCustomFields : (function () {
|
var issueCustomFields = [];
|
|
angular.forEach($scope.vm.customFields, function (customField) {
|
var useValues = [];
|
|
if (angular.isArray(customField.useValues)) {
|
angular.forEach(customField.useValues, function (useValue) {
|
useValues.push(useValue.value);
|
});
|
}
|
else {
|
useValues.push(customField.useValues);
|
}
|
|
// useValues 를 배열로 변환한다.
|
var temp = angular.copy(customField);
|
temp.useValues = useValues;
|
issueCustomFields.push(temp);
|
});
|
|
return issueCustomFields;
|
})()
|
};
|
|
// 등록일
|
if ($rootScope.isDefined($scope.vm.search.registerDateRange)) {
|
var registerDateRange = $scope.vm.search.registerDateRange.split("~");
|
conditions.beginRegisterDate = registerDateRange[0].trim();
|
conditions.endRegisterDate = registerDateRange[1].trim();
|
}
|
|
// 시작일
|
if ($rootScope.isDefined($scope.vm.search.startDateRange)) {
|
var startDateRange = $scope.vm.search.startDateRange.split("~");
|
conditions.beginStartDate = startDateRange[0].trim();
|
conditions.endStartDate = startDateRange[1].trim();
|
}
|
// 종료일
|
if ($rootScope.isDefined($scope.vm.search.completeDateRange)) {
|
var completeDateRange = $scope.vm.search.completeDateRange.split("~");
|
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() {
|
|
}
|
|
// 이슈 목록을 조회한다.
|
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 != 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) {
|
$scope.vm.hideCompleteIssue = true;
|
}
|
|
if ($scope.vm.hideDownIssue) {
|
$scope.vm.hideDownIssue = true;
|
}
|
// 현재 페이지 정보
|
var currentPage = 0;
|
|
// 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장
|
if (angular.isUndefined(selectedPage) || selectedPage === "") {
|
currentPage = $scope.vm.page.selectedPage;
|
}
|
else {
|
currentPage = selectedPage;
|
}
|
|
// 검색 기본값 세팅
|
$scope.vm.search.issueTypeIds = [];
|
$scope.vm.projects = [];
|
if (!$scope.vm.allIssue && keyWord == null || keyWord === '') {
|
// 메뉴에서 선택된 이슈 유형을 기본으로 추가
|
if ($rootScope.issueTypeMenu != null) {
|
$scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
|
|
$scope.vm.search.issueTypeIds.push({
|
fieldKey: $rootScope.issueTypeMenu.id,
|
fieldValue: $rootScope.issueTypeMenu.name
|
});
|
}
|
|
// 검색 조건을 저장한다.
|
//$scope.fn.makeVmSearchObject();
|
|
// 현재 선택된 프로젝트를 검색 기본으로 추가
|
if ($rootScope.workProject != null && $rootScope.workProject.id > -1) {
|
var find = findProjectSearch($rootScope.workProject.id);
|
if (!find) {
|
$scope.vm.projects.push($rootScope.workProject);
|
}
|
}
|
//$scope.vm.searchAll.keyWord = "";
|
}
|
|
// 이슈 검색 조건을 만든다.
|
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++) {
|
/*if (result.data.data[i].parentIssueId != null) {//하위이슈는 리스트에서 삭제
|
result.data.data.splice(i, 1);
|
i--;
|
}else*/
|
if ($scope.vm.search.issueTypeIds !== null && $scope.vm.search.issueTypeIds.length > 0
|
&& result.data.data[i].issueTypeId !== $scope.vm.search.issueTypeIds[0].fieldKey) { //이슈타입 체크
|
result.data.data.splice(i, 1);
|
i--;
|
}
|
}
|
}
|
|
if (result.data.data != null && result.data.data.length > 0) {
|
$scope.vm.issueTypeId = result.data.data[0].issueTypeId;
|
$scope.vm.projectKey = result.data.data[0].projectKey;
|
$scope.vm.issueNumber = result.data.data[0].issueNumber;
|
$scope.vm.projectName = result.data.data[0].projectName;
|
|
if (detail) {
|
changeDetailView(result.data.data[0].id);
|
}
|
} else {
|
// 값이 없을때 값을 넣어주려고 하는 의도
|
// $scope.vm.responseData = result.data;
|
result.data = $scope.vm.responseData;
|
}
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // 이슈 조회 실패
|
}
|
$rootScope.spinner = false; // 프로그래스 바
|
|
});
|
}
|
|
function getResponseData() {
|
return $scope.data;
|
}
|
|
// 이메일 프로젝트 경로로 이동 후 상세 진입시 조회
|
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 {
|
SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // 이슈 조회 실패
|
}
|
});
|
}
|
|
// 검색조건에서 해당 프로젝트 찾기
|
function findProjectSearch(projectId) {
|
var projects = $scope.vm.projects;
|
var find = false;
|
|
for (let i = 0; i < projects.length; i++) {
|
if (projects[i].id == projectId) {
|
find = true;
|
break;
|
}
|
}
|
return find;
|
}
|
|
// 페이지 변경
|
function changePageRowCount() {
|
$scope.fn.getPageList(0);
|
}
|
|
// 엑셀 import 팝업 호출
|
function importExcel() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueExcelImport.html',
|
size : "lg",
|
controller : 'issueImportExcelController',
|
backdrop : 'static'
|
});
|
}
|
|
// 이슈 생성 팝업 호출
|
function add() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAdd.html',
|
size : "lg",
|
controller : 'issueAddController',
|
backdrop : 'static'
|
});
|
}
|
|
// 이슈 다중 상태 변경
|
function modifyMultiIssueStatus() {
|
var issueIds = [];
|
|
angular.forEach($scope.vm.responseData.data, 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/issueModifyStatus.html',
|
size : "md",
|
controller : 'issueModifyStatusController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueIds : issueIds,
|
projectId : $scope.vm.projectId
|
};
|
}
|
}
|
});
|
}
|
|
// 이슈 수정 팝업 호출
|
function modify(id, downTotalCount) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueModify.html',
|
size : "lg",
|
controller : 'issueModifyController',
|
backdrop : 'static',
|
resolve : {
|
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, project, issueTypeId) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAddRelation.html',
|
size : "lg",
|
controller : 'issueAddRelationController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
id : id,
|
project : project,
|
issueTypeId : issueTypeId
|
};
|
}
|
}
|
});
|
}
|
|
function addDownIssueForm(id, project, issueTypeId) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAddDown.html',
|
size : "lg",
|
controller : 'issueAddDownController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
id : id,
|
project : project,
|
issueTypeId : issueTypeId
|
};
|
}
|
}
|
});
|
}
|
|
// 이슈 삭제
|
function removes() {
|
var removeIds = [];
|
var removePermission = true;
|
var downIssueIds = false;
|
|
angular.forEach($scope.vm.responseData.data, function (data) {
|
if (data.checked && data.modifyPermissionCheck) {
|
removeIds.push(data.id);
|
}
|
|
if (data.checked && !data.modifyPermissionCheck) {
|
removePermission = false;
|
}
|
|
if (data.downIssueAllCount > 0){
|
downIssueIds = true;
|
}
|
});
|
|
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;
|
}
|
|
if (downIssueIds) {
|
SweetAlert.swal({
|
title : $filter("translate")("common.deleteIssue"), // 이슈 삭제
|
text : $filter("translate")("issue.wantToDeleteSelectDownIssue"), // 하위 이슈가 존재 합니다. 선택한 이슈와 하위 이슈 모두 삭제하겠습니까? 삭제된 이슈는 복구할 수 없습니다.
|
type : "warning",
|
showCancelButton : true,
|
confirmButtonColor : "#DD6B55",
|
confirmButtonText : $filter("translate")("common.delete"), // 삭제
|
cancelButtonText : $filter("translate")("common.cancel"), // 취소
|
closeOnConfirm : false,
|
closeOnCancel : false
|
},
|
function (isConfirm) {
|
if (isConfirm) { //이슈 + 하위 삭제
|
$rootScope.spinner = true;
|
|
Issue.removeAllIssues($resourceProvider.getContent(
|
{ removeIds : removeIds },
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$timeout(function () {
|
SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공
|
}, 100);
|
$scope.fn.listView();
|
$scope.fn.getPageList(0);
|
}
|
else {
|
$timeout(function () {
|
SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패
|
}, 100);
|
}
|
$rootScope.spinner = false;
|
});
|
|
} else {// 선택 한 이슈만 삭제
|
// 삭제 알림
|
SweetAlert.swal({
|
title : $filter("translate")("issue.deleteIssue"), // 이슈 삭제
|
text : $filter("translate")("issue.wantToDeleteOnlySelectIssue"), // 선택한 이슈만 삭제하겠습니까? 삭제된 이슈은 복구할 수 없습니다.
|
type : "warning",
|
showCancelButton : true,
|
confirmButtonColor : "#DD6B55",
|
confirmButtonText : $filter("translate")("common.delete"), // 삭제
|
cancelButtonText : $filter("translate")("common.cancel"), // 취소
|
closeOnConfirm : false,
|
closeOnCancel : true
|
},
|
function (isConfirm) {
|
SweetAlert.close();
|
|
if (isConfirm) {
|
$rootScope.spinner = true;
|
|
Issue.remove($resourceProvider.getContent(
|
{ removeIds : removeIds },
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$timeout(function () {
|
SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공
|
}, 100);
|
|
$scope.fn.listView();
|
|
$scope.fn.getPageList(0);
|
}
|
else {
|
$timeout(function () {
|
SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패
|
}, 100);
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
});
|
}
|
});
|
} else {
|
// 삭제 알림
|
SweetAlert.swal({
|
title : $filter("translate")("issue.deleteIssue"), // 이슈 삭제
|
text : $filter("translate")("issue.wantToDeleteSelectIssue"), // 선택한 이슈을 삭제하겠습니까? 삭제된 이슈은 복구할 수 없습니다.
|
type : "warning",
|
showCancelButton : true,
|
confirmButtonColor : "#DD6B55",
|
confirmButtonText : $filter("translate")("common.delete"), // 삭제
|
cancelButtonText : $filter("translate")("common.cancel"), // 취소
|
closeOnConfirm : false,
|
closeOnCancel : true
|
},
|
function (isConfirm) {
|
SweetAlert.close();
|
|
if (isConfirm) {
|
$rootScope.spinner = true;
|
|
Issue.remove($resourceProvider.getContent(
|
{ removeIds : removeIds },
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$timeout(function () {
|
SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공
|
}, 100);
|
|
$scope.fn.listView();
|
|
$scope.fn.getPageList(0);
|
}
|
else {
|
$timeout(function () {
|
SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패
|
}, 100);
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
});
|
}
|
}
|
|
// 이슈 목록 테이블 설정
|
function addIssueTableConfig() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAddTableConfig.html',
|
size : "lg",
|
controller : 'issueAddTableConfigController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueTypeId : $scope.vm.issueTypeId,
|
allIssue : $scope.vm.allIssue
|
};
|
}
|
}
|
});
|
}
|
|
// 이슈 상태 목록
|
function getIssueStatuses() {
|
var deferred = $q.defer();
|
$scope.vm.issueStatuses = [];
|
|
IssueStatus.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status === "success") {
|
angular.forEach(result.data.data, function (issueType) {
|
$scope.vm.issueStatuses.push({
|
fieldKey : issueType.id,
|
fieldValue : issueType.name
|
});
|
});
|
}
|
else {
|
SweetAlert.swal($filter("translate")("common.failedToIssueStatusListLookup"), result.data.message.message, "error"); // 이슈 상태 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 이슈 유형 목록
|
function getIssueTypes() {
|
var deferred = $q.defer();
|
$scope.vm.issueTypes = [];
|
|
IssueType.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status === "success") {
|
angular.forEach(result.data.data, function (issueType) {
|
$scope.vm.issueTypes.push({
|
fieldKey : issueType.id,
|
fieldValue : issueType.name
|
});
|
});
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 유형 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 이슈유형 별 파트너 목록
|
function getUsePartner() {
|
var deferred = $q.defer();
|
$scope.vm.partners = [];
|
|
Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()},
|
$resourceProvider.getPageContent(0, 1))).then(function (result) {
|
if (result.data.message.status === "success") {
|
angular.forEach(result.data.data, function (partner) {
|
$scope.vm.partners.push(partner);
|
});
|
//$scope.vm.partnerVos = result.data.data;
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // 파트너 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 우선순위 목록
|
function getPriorities() {
|
var deferred = $q.defer();
|
$scope.vm.priorities = [];
|
|
Priority.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status === "success") {
|
angular.forEach(result.data.data, function (prioritiy) {
|
$scope.vm.priorities.push({
|
fieldKey : prioritiy.id,
|
fieldValue : prioritiy.name
|
});
|
});
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // 우선순위 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 중요도 목록
|
function getSeverities() {
|
var deferred = $q.defer();
|
$scope.vm.severities = [];
|
|
Severity.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status === "success") {
|
angular.forEach(result.data.data, function (severity) {
|
$scope.vm.severities.push({
|
fieldKey : severity.id,
|
fieldValue : severity.name
|
});
|
});
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 중요도 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 사용자 정의 필드 목록
|
function getCustomFields() {
|
var deferred = $q.defer();
|
$scope.vm.customFields = [];
|
|
CustomField.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status === "success") {
|
|
angular.forEach(result.data.data, function (customField) {
|
switch (customField.customFieldType) {
|
case "INPUT" :
|
case "NUMBER" :
|
case "DATETIME" :
|
case "IP_ADDRESS" :
|
case "EMAIL" :
|
case "SITE" :
|
case "TEL" :
|
customField.useValues = "";
|
break;
|
|
case "MULTI_SELECT" :
|
case "SINGLE_SELECT" :
|
customField.useValues = [];
|
break;
|
|
}
|
$scope.vm.customFields.push(customField);
|
});
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // 사용자 정의 필드 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 사용자 이슈 목록 테이블 설정 값을 가져와서 적용한다.
|
|
function getIssueTableConfigs() {
|
var deferred = $q.defer();
|
|
var content = {
|
issueTypeId : (function () {
|
var id = "";
|
if ($rootScope.allIssueList) {
|
id = -1;
|
} else {
|
id = $rootScope.getCurrentIssueTypeId();
|
}
|
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;
|
}
|
|
// 리스트 모드 변경시 실행
|
function onClickListMode(listMode) {
|
if ($scope.vm.listMode !== listMode) {
|
$scope.vm.listMode = listMode;
|
|
if ($scope.vm.listMode === 0) {
|
$scope.fn.getPageList(0);
|
} else {
|
$scope.fn.getPageList(0);
|
}
|
}
|
}
|
|
function setDefaultTableConfig() {
|
// 최초 업무 공간에 들어왔을 경우
|
$scope.vm.issueTableConfigs = [{
|
name : $filter("translate")("issue.issueTitle"), // 이슈 제목
|
key : "ISSUE_TITLE",
|
width : "width-140-p",
|
position : 1,
|
display : true
|
}, {
|
name : $filter("translate")("common.priority"), // 우선순위
|
key : "PRIORITY",
|
width : "width-80-p",
|
position : 2,
|
display : true
|
}, {
|
name : $filter("translate")("common.importance"), // 중요도
|
key : "SEVERITY",
|
width : "width-80-p",
|
position : 3,
|
display : true
|
}, {
|
name : $filter("translate")("issue.issueType"), // 이슈 타입
|
key : "ISSUE_TYPE",
|
width : "width-140-p",
|
position : 4,
|
display : true
|
}, {
|
name : $filter("translate")("common.assigneeTeam"), // 담당부서
|
key : "ASSIGNEE_TEAM",
|
width : "width-140-p",
|
position : 5,
|
display : true
|
}];
|
}
|
|
// 최초 실행
|
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) {
|
paramKeyWord = params.keyWord;
|
}else {
|
getDetailList(params.projectKey, params.issueNumber);
|
return;
|
}
|
// $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(),
|
};
|
|
$q.all(promises).then(function (results){
|
$log.debug("promises 결과 " , results);
|
// 이슈 테이블 설정 조회 및 적용 후
|
// 이슈 검색 조건 가져오기 후
|
// 이슈 조회
|
|
// 사용자 이슈 목록 테이블 설정 값을 가져와서 적용한다.
|
$scope.fn.getIssueTableConfigs().then(function (issueTableConfigs) {
|
if ($rootScope.isDefined(issueTableConfigs)) {
|
// 이슈 테이블 설정 정보를 저장 한다.
|
$scope.vm.issueTableConfigs = JSON.parse(issueTableConfigs);
|
$scope.vm.issueTableConfigs.sort(function (a, b) {
|
return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0;
|
});
|
}
|
else {
|
$scope.fn.setDefaultTableConfig();
|
}
|
|
// 이슈 테이블 설정
|
$scope.fn.makeTableConfigs();
|
});
|
// 서버에 저장한 이슈 검색 조건을 가져와서 이슈 목록 검색을 진행한다.
|
$scope.fn.getVmSearchObject(paramKeyWord, allIssue);
|
});
|
}
|
|
// this.router.navigate(['path/to'])
|
// .then(() => {
|
// window.location.reload();
|
// });
|
|
|
$scope.fn.startExecute();
|
}
|
|
]);
|
}
|
);
|