| | |
| | | // 이슈 목록 컨트롤러 vm, fn 상속 중 |
| | | $scope.vm.viewer = {}; // 현재 이슈 |
| | | $scope.vm.images = []; // 첨부된 파일 중 이미지 파일 |
| | | $scope.vm.activeTab = "ALL"; // 활동 내역 탭 |
| | | $scope.vm.activeTab = "RECODE"; // 활동 내역 탭 |
| | | // 이슈 상태 변경 표시 여부 |
| | | $scope.vm.editor = { |
| | | issueStatus : false |
| | |
| | | // 삭제 알림 |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("issue.downIssueRemove"), // 하위 이슈 삭제 |
| | | text : $filter("translate")("issue.wantToDeleteSelectIssue"), |
| | | text : $filter("translate")("issue.wantToDeleteSelectDownIssueInList"), |
| | | type : "warning", |
| | | showCancelButton : true, |
| | | confirmButtonColor : "#DD6B55", |
| | |
| | | } |
| | | |
| | | function getDownIssueListCallBack(result) { |
| | | $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage; |
| | | $scope.vm.autoCompletePageDown.issue.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 테이블의 연관 이슈 컬럼을 만들어준다. |
| | |
| | | |
| | | // 연관 이슈 컬럼 |
| | | switch(Rel_issueTableConfig.key) { |
| | | |
| | | // 연관 이슈 구분 |
| | | case "RELATION_ISSUE_TYPE" : |
| | | case "RELATION_ISSUE_TYPE" : // 연관 이슈 구분 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("issue.relationIssueType") |
| | | .setDType("renderer") |
| | | .setHWidth("width-30 bold") |
| | | .setHSort(false) |
| | | .setDAlign("text-center") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDRenderer("ISSUE_RELATION_TYPE")) |
| | | /*.setHWidth("width-30 bold")*/ |
| | | /*.setHSort(false)*/ |
| | | break; |
| | | // 연관 이슈 제목 |
| | | case "RELATION_ISSUE_TITLE" : |
| | | case "RELATION_ISSUE_TITLE" : // 연관 이슈 제목 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("issue.relationIssueTitle") |
| | | .setDType("renderer") |
| | | .setHWidth("width-60 bold") |
| | | .setHSort(false) |
| | | .setDAlign("text-center") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDRenderer("ISSUE_RELATION_MOVE")) |
| | | /*.setHWidth("width-60 bold")*/ |
| | | /*.setHSort(true)*/ |
| | | break; |
| | | case "PRIORITY" : // 연관 이슈 우선순위 |
| | | case "RELATION_PRIORITY" : // 연관 이슈 우선순위 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.priority") |
| | | .setDName("priorityName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_COMMON_PRIORITY")); |
| | | break; |
| | | case "SEVERITY" : // 연관 이슈 중요도 |
| | | case "RELATION_SEVERITY" : // 연관 이슈 중요도 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.importance") |
| | | .setDName("severityName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_COMMON_SEVERITY")); |
| | | break; |
| | | case "ASSIGNEE_TEAM" : // 연관 이슈 담당부서 |
| | | case "RELATION_ASSIGNEE_TEAM" : // 연관 이슈 담당부서 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.assigneeTeam") |
| | | .setDType("renderer") |
| | |
| | | .setDRenderer("REL_ISSUE_DEPARTMENT")); |
| | | break; |
| | | |
| | | case "REGISTER" : // 연관 이슈 등록자 |
| | | case "RELATION_REGISTER" : // 연관 이슈 등록자 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.register") |
| | | .setDType("renderer") |
| | |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_REGISTER")); |
| | | break; |
| | | case "PERIOD" : // 연관 이슈 기간 |
| | | case "RELATION_PERIOD" : // 연관 이슈 기간 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.period") |
| | | .setDType("renderer") |
| | |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_ISSUE_DUE_DATE")); |
| | | break; |
| | | case "MODIFY_DATE" : // 연관 이슈 최근 변경일 |
| | | case "RELATION_MODIFY_DATE" : // 연관 이슈 최근 변경일 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | .setHName("common.lastChangeDate") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDName("modifyDate")); |
| | | .setDAlign("text-center")); |
| | | break; |
| | | } |
| | | |
| | |
| | | |
| | | // 하위 이슈 컬럼 |
| | | switch(Down_issueTableConfig.key) { |
| | | // 하위 이슈 제목 |
| | | case "DOWN_ISSUE_TITLE" : |
| | | case "DOWN_ISSUE_TITLE" : // 하위 이슈 제목 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("issue.downIssueTitle") |
| | | .setDType("renderer") |
| | |
| | | .setDRenderer("ISSUE_DOWN_STATUS_TYPE")); |
| | | break; |
| | | |
| | | case "PRIORITY" : // 하위 이슈 우선순위 |
| | | case "DOWN_PRIORITY" : // 하위 이슈 우선순위 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.priority") |
| | | .setDName("priorityName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_COMMON_PRIORITY")); |
| | | break; |
| | | case "SEVERITY" : // 중요도 |
| | | case "DOWN_SEVERITY" : // 중요도 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.importance") |
| | | .setDName("severityName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_COMMON_SEVERITY")); |
| | | break; |
| | | case "ASSIGNEE_TEAM" : // 담당부서 |
| | | case "DOWN_ASSIGNEE_TEAM" : // 담당부서 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.assigneeTeam") |
| | | .setDType("renderer") |
| | |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_ISSUE_DEPARTMENT")); |
| | | break; |
| | | case "REGISTER" : // 등록자 |
| | | case "DOWN_REGISTER" : // 등록자 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.register") |
| | | .setDType("renderer") |
| | |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_REGISTER")); |
| | | break; |
| | | case "PERIOD" : // 기간 |
| | | case "DOWN_PERIOD" : // 기간 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.period") |
| | | .setDType("renderer") |
| | |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_ISSUE_DUE_DATE")); |
| | | break; |
| | | case "MODIFY_DATE" : // 최근 변경일 |
| | | case "DOWN_MODIFY_DATE" : // 최근 변경일 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("common.lastChangeDate") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDName("modifyDate")); |
| | | .setDAlign("text-center")); |
| | | break; |
| | | } |
| | | |
| | |
| | | .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() |
| | |
| | | .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")) |
| | | |
| | | if($scope.vm.viewer.modifyPermissionCheck) { |
| | | $scope.vm.relTableConfigs.push($tableProvider.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 (Rel_issueTableConfig) { |
| | | // 표시 대상인 컬럼만 화면에 그려준다. |
| | | if (Rel_issueTableConfig.display) { |
| | |
| | | .setHName("issue.relationIssueDelete") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setHWidth("width-20-p bold") |
| | | .setHWidth("width-40-p bold") |
| | | .setDRenderer("ISSUE_DOWN_DELETE") |
| | | .setHSort(false) |
| | | .setDAlign("text-center")) |
| | |
| | | }); |
| | | |
| | | $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.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")) |
| | | .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.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($tableProvider.config() |
| | | .setHName("issue.relationIssueDelete") |
| | | .setDType("renderer") |
| | | .setHWidth("width-40-p bold") |
| | | .setDRenderer("ISSUE_RELATION_DELETE") |
| | | .setHSort(false) |
| | | .setDAlign("text-center")) |
| | | } |
| | | } else { |
| | | makeRelTableConfigs(); |
| | | } |
| | |
| | | return a.position < b.position ? -1 : a.position > b.position ? 1 : 0; |
| | | }); |
| | | $scope.vm.downTableConfigs = []; |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | /* $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")) |
| | | .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")) |
| | | |
| | | if($scope.vm.viewer.modifyPermissionCheck) { |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | .setHName("issue.relationIssueDelete") |
| | | .setDType("renderer") |
| | | .setHWidth("width-40-p bold") |
| | | .setDRenderer("ISSUE_DOWN_DELETE") |
| | | .setHSort(false) |
| | | .setDAlign("text-center")) |
| | | } |
| | | } else { |
| | | makeDownTableConfigs(); |
| | | } |
| | |
| | | |
| | | // 이슈 상세 정보 조회 |
| | | function getIssueDetail() { |
| | | $rootScope.spinner = true; |
| | | // 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다. |
| | | $scope.fn.initReload(); |
| | | |
| | | // $scope.fn.getRelTableConfigs(); |
| | | // $scope.fn.getDownTableConfigs(); |
| | | |
| | | Issue.detail($resourceProvider.getContent( |
| | | Issue.detail($resourceProvider.getContent( |
| | | {id : $scope.vm.viewer.id, deep : "02"}, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | |
| | |
| | | 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; |
| | | }); |
| | | } |
| | | |
| | | // 하위 이슈 반목문 |
| | |
| | | $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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.errorIssueDetails"), result.data.message.message, "error"); // 이슈 상세 정보 조회 오류 |
| | | } |
| | | $rootScope.spinner = false; |
| | | }); |
| | | } |
| | | |
| | |
| | | |
| | | // 활동 이력 만들기 |
| | | 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 = ""; |
| | | if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) { |
| | | $scope.vm.viewer.activeDownHistory = ""; //하위이슈 히스토리만 |
| | | $scope.vm.viewer.downComment = ""; //하위이슈 댓글만 |
| | | $scope.vm.viewer.activeDownAllHistory = ""; //하위이슈 히스토리+댓글 |
| | | var downTitle = ""; |
| | | var oriDownHistory = []; |
| | | var oriDownCommentHistory = []; |
| | | |
| | | // 하위이슈 히스토리 |
| | | for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){ |
| | | oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos); |
| | | oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos); |
| | | } |
| | | 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.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.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.activeParentHistory.sort(function (a, b) { //내림차순 |
| | | return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; |
| | | }); |
| | | $scope.vm.viewer.activeHistory.sort(function (a, b) { //내림차순 |
| | | return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; |
| | | }); |
| | | } |
| | |
| | | $timeout(function () { |
| | | SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공 |
| | | }, 100); |
| | | |
| | | $scope.fn.getCommentList(); |
| | | } |
| | | else { |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.viewer.issueCommentVos = result.data.data; |
| | | $scope.fn.updateActiveHistory(); |
| | | } |
| | | else { |
| | | SweetAlert.swal({ |