| | |
| | | '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 변수 상속. |
| | | |
| | |
| | | $scope.fn.containsPartner = containsPartner; |
| | | $scope.fn.onActivate = onActivate; |
| | | $scope.fn.issueBack = issueBack; |
| | | $scope.fn.removeRelationIssue = removeRelationIssue; |
| | | $scope.fn.removeDownIssue = removeDownIssue; |
| | | $scope.fn.sendCommonMail = sendCommonMail; |
| | | |
| | | // 이슈 목록 컨트롤러 vm, fn 상속 중 |
| | | $scope.vm.viewer = {}; // 현재 이슈 |
| | |
| | | $scope.vm.relTableConfigs = []; |
| | | // 테이블 이벤트 |
| | | $scope.relTableEvent = { |
| | | removeRelationIssue : removeRelationIssue, // 연관 일감 삭제 |
| | | //removeRelationIssue : removeRelationIssue, // 연관 일감 삭제 |
| | | changeDetailView : changeDetailView |
| | | }; |
| | | |
| | |
| | | $scope.vm.downTableConfigs = []; |
| | | // 테이블 이벤트 |
| | | $scope.downTableEvent = { |
| | | removeDownIssue : removeDownIssue, // 연관 일감 삭제 |
| | | //removeDownIssue : removeDownIssue, // 연관 일감 삭제 |
| | | changeDetailView : changeDetailView |
| | | }; |
| | | |
| | |
| | | // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. |
| | | //$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 onActivate() { |
| | |
| | | }); |
| | | |
| | | // 하위 이슈 삭제 |
| | | 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", |
| | |
| | | $rootScope.spinner = true; |
| | | |
| | | var contents = { |
| | | id : id |
| | | ids : removeIds |
| | | }; |
| | | |
| | | Issue.modifyParentIssue($resourceProvider.getContent( |
| | |
| | | } |
| | | |
| | | // 연관 이슈 삭제 |
| | | 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"), // 연관 이슈 삭제 |
| | |
| | | $rootScope.spinner = true; |
| | | |
| | | var contents = { |
| | | id : id |
| | | removeIds : removeIds |
| | | }; |
| | | |
| | | IssueRelation.delete($resourceProvider.getContent( |
| | |
| | | } |
| | | |
| | | // 테이블의 연관 이슈 컬럼을 만들어준다. |
| | | function setRelTableColumn(Rel_issueTableConfig) { |
| | | function setRelTableColumn(issueTableConfig) { |
| | | |
| | | // 연관 이슈 컬럼 |
| | | switch(Rel_issueTableConfig.key) { |
| | | switch(issueTableConfig.key) { |
| | | case "RELATION_ISSUE_TYPE" : // 연관 이슈 구분 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("issue.relationIssueType") |
| | | .setDName("relationIssueType") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .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() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("issue.relationIssueTitle") |
| | | .setDName("relationIssueTitle") |
| | | .setDName("title") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDRenderer("ISSUE_RELATION_MOVE")) |
| | | /*.setHWidth("width-60 bold")*/ |
| | | /*.setHSort(true)*/ |
| | | break; |
| | | case "RELATION_PRIORITY" : // 연관 이슈 우선순위 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("common.priority") |
| | | .setDName("relPriority") |
| | | .setDName("priorityVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_COMMON_PRIORITY")); |
| | | break; |
| | | case "RELATION_SEVERITY" : // 연관 이슈 중요도 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("common.importance") |
| | | .setDName("relSeverity") |
| | | .setDName("severityVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_COMMON_SEVERITY")); |
| | | break; |
| | | case "RELATION_ASSIGNEE_TEAM" : // 연관 이슈 담당부서 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("common.assigneeTeam") |
| | | .setDName("relAssigneeTeam") |
| | | .setDName("departmentVos.departmentName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_ISSUE_DEPARTMENT")); |
| | | break; |
| | | |
| | | case "RELATION_REGISTER" : // 연관 이슈 등록자 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | case "RELATION_REGISTER" : // 연관 이슈 등록자 |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("common.register") |
| | | .setDName("relRegister") |
| | | .setDName("registerVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_REGISTER")); |
| | | break; |
| | | case "RELATION_PERIOD" : // 연관 이슈 기간 |
| | | $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | $scope.vm.relTableConfigs.push($relProvider.config() |
| | | .setHName("common.period") |
| | | .setDName("relPeriod") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("REL_ISSUE_DUE_DATE")); |
| | | break; |
| | | case "RELATION_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("relModifyDate")); |
| | | .setDName("modifyDate")); |
| | | 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) |
| | | .setDType("renderer") |
| | | .setDName("relCustomFieldName" + [count]) |
| | | .setHWidth("bold " + Rel_issueTableConfig.width) |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setColumnHint(customField) |
| | | .setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW")); |
| | |
| | | |
| | | |
| | | // 테이블의 하위 이슈 컬럼을 만들어준다. |
| | | function setDownTableColumn(Down_issueTableConfig) { |
| | | function setDownTableColumn(issueTableConfig) { |
| | | // if (issueTableConfig == null) return; |
| | | |
| | | // 하위 이슈 컬럼 |
| | | switch(Down_issueTableConfig.key) { |
| | | switch(issueTableConfig.key) { |
| | | case "DOWN_ISSUE_TITLE" : // 하위 이슈 제목 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("issue.downIssueTitle") |
| | | .setDName("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("downIssueStatus") |
| | | .setDName("issueStatusVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("ISSUE_DOWN_STATUS_TYPE")); |
| | | break; |
| | | |
| | | case "DOWN_PRIORITY" : // 하위 이슈 우선순위 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("common.priority") |
| | | .setDName("downPriority") |
| | | .setDName("priorityVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_COMMON_PRIORITY")); |
| | | break; |
| | | case "DOWN_SEVERITY" : // 중요도 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | case "DOWN_SEVERITY" : // 하위 이슈 중요도 |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("common.importance") |
| | | .setDName("downSeverity") |
| | | .setDName("severityVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_COMMON_SEVERITY")); |
| | | break; |
| | | case "DOWN_ASSIGNEE_TEAM" : // 담당부서 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | case "DOWN_ASSIGNEE_TEAM" : // 하위 이슈 담당부서 |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("common.assigneeTeam") |
| | | .setDName("downAssigneeTeam") |
| | | .setDName("departmentVos.departmentName") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_ISSUE_DEPARTMENT")); |
| | | break; |
| | | case "DOWN_REGISTER" : // 등록자 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | case "DOWN_REGISTER" : // 하위 이슈 등록자 |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("common.register") |
| | | .setDName("downRegister") |
| | | .setDName("registerVo.id") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_REGISTER")); |
| | | break; |
| | | case "DOWN_PERIOD" : // 기간 |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | case "DOWN_PERIOD" : // 하위 이슈 기간 |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("common.period") |
| | | .setDName("downPeriod") |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setDRenderer("DOWN_ISSUE_DUE_DATE")); |
| | | break; |
| | | case "DOWN_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("downModifyDate")); |
| | | .setDName("modifyDate")); |
| | | 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) |
| | | .setDType("renderer") |
| | | .setDName("downCustomFieldName" + [count]) |
| | | .setHWidth("bold " + Down_issueTableConfig.width) |
| | | .setDType("renderer") |
| | | .setHWidth("bold " + issueTableConfig.width) |
| | | .setDAlign("text-center") |
| | | .setColumnHint(customField) |
| | | .setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW")); |
| | |
| | | // 연관 이슈 테이블 설정 |
| | | 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-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-40-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); |
| | | } |
| | | }); |
| | | } |
| | |
| | | // 하위 이슈 테이블 설정 |
| | | 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")) |
| | | if($scope.vm.viewer.modifyPermissionCheck){ |
| | | $scope.vm.downTableConfigs.push($tableProvider.config() |
| | | /*if($scope.vm.viewer.modifyPermissionCheck){ |
| | | $scope.vm.downTableConfigs.push($downProvider.config() |
| | | .setHName("issue.relationIssueDelete") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | |
| | | .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); |
| | | } |
| | | }); |
| | | } |
| | |
| | | } |
| | | var issueTableConfigs = issueTableConfigVo.issueTableConfigs; |
| | | |
| | | // 연관 슈 목록 테이블 설정 값을 가져와서 적용한다. |
| | | // 연관 이슈 목록 테이블 설정 값을 가져와서 적용한다. |
| | | if ($rootScope.isDefined(issueTableConfigs)) { |
| | | // 이슈 테이블 설정 정보를 저장 한다. |
| | | |
| | |
| | | }); |
| | | |
| | | $scope.vm.relTableConfigs = []; |
| | | /* $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | /* $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($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"))*/ |
| | | angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) { |
| | | $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-40-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(); |
| | | } |
| | |
| | | if (issueTableConfigVo == null) return; |
| | | var issueTableConfigs = issueTableConfigVo.issueTableConfigs; |
| | | |
| | | // 연관 슈 목록 테이블 설정 값을 가져와서 적용한다. |
| | | // 연관 이슈 목록 테이블 설정 값을 가져와서 적용한다. |
| | | if ($rootScope.isDefined(issueTableConfigs)) { |
| | | // 이슈 테이블 설정 정보를 저장 한다. |
| | | $scope.vm.issueDownTableConfigs = []; |
| | |
| | | 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($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) { |
| | | $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-40-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(); |
| | | } |
| | |
| | | return; |
| | | } |
| | | |
| | | var ids = []; |
| | | if ($scope.vm.form.issuesDown[0].id != null) { |
| | | ids.push($scope.vm.form.issuesDown[0].id); |
| | | } |
| | | |
| | | var contents = { |
| | | issueId : $rootScope.currentDetailIssueId, |
| | | id : $scope.vm.form.issuesDown[0].id, |
| | | ids : ids, |
| | | parentIssueId : $rootScope.currentDetailIssueId |
| | | }; |
| | | |
| | |
| | | } |
| | | |
| | | 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", |
| | |
| | | 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 |
| | | }; |
| | | } |
| | |
| | | |
| | | $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); |
| | |
| | | }); |
| | | } |
| | | |
| | | // 일반 메일 발송 (사용자 직접 작성) |
| | | function sendCommonMail() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/issue/issueCommonSendMail.html', |
| | | size : "md", |
| | | controller : 'issueCommonSendMailController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : { |
| | | issueId : $scope.vm.viewer.id, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function getParametersAll() { |
| | | var params = $scope.fn.getParameters(null, $scope.vm.viewer.issueCompanyVos); |
| | | params = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos); |