/**
|
* Created by wisestone on 2018-01-03.
|
*/
|
'use strict';
|
|
define([
|
'app',
|
'angular'
|
],
|
function (app, angular) {
|
app.controller('issueDetailController', ['$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, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) {
|
|
// IssueListController vm, fn 변수 상속.
|
|
$scope.fn.getIssueDetail = getIssueDetail; // 이슈 상세 정보 가져오기
|
$scope.fn.setRelTableColumn = setRelTableColumn;
|
$scope.fn.setDownTableColumn = setDownTableColumn;
|
$scope.fn.addComment = addComment; // 댓글 등록
|
$scope.fn.removeComment = removeComment; // 댓글 삭제
|
$scope.fn.getCommentList = getCommentList; // 댓글 목록 가져오기
|
$scope.fn.getAttachedFiles = getAttachedFiles; // 첨부 파일 목록
|
$scope.fn.makePreviewImages = makePreviewImages; // 이슈 이미지 미리보기 만들기
|
$scope.fn.makeActiveHistory = makeActiveHistory; // 활동 이력 만들기
|
$scope.fn.setFormByIssueTypeCustomFields = setFormByIssueTypeCustomFields; // 이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다.
|
$scope.fn.setUseValueByIssueTypeCustomFields = setUseValueByIssueTypeCustomFields; // 이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
|
$scope.fn.updateActiveHistory = updateActiveHistory; // 활동 내역에서 전체 보기 탭을 눌렀을 때 댓글, 기록 정보를 업데이트 한다.
|
$scope.fn.getChangeIssueStatusList = getChangeIssueStatusList; // 이슈의 현재 상태에서 변경 가능한 이슈 샅태 목록 가져오기
|
$scope.fn.modifyIssueStatus = modifyIssueStatus; // 이슈 상태 변경
|
$scope.fn.modifyDownIssueStatus = modifyDownIssueStatus; //하위 이슈 상태 변경
|
$scope.fn.modifyIssueUser = modifyIssueUser; // 이슈 담당자 변경
|
$scope.fn.modifyIssueDepartment = modifyIssueDepartment; // 이슈 담당부서 변경
|
$scope.fn.initReload = initReload; // 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다.
|
$scope.fn.sendMail = sendMail;
|
$scope.fn.sendMailAll = sendMailAll;
|
$scope.fn.sendMailVo = sendMailVo;
|
$scope.fn.getParameters = getParameters;
|
$scope.fn.getParametersAll = getParametersAll;
|
// 특정 사용자에게 이슈 정보를 메일로 발송
|
$scope.fn.versionView = versionView; // 버전 정보를 표시한다.
|
$scope.fn.reservation = reservation; // 예약 정보를 확인 및 변경 한다.
|
$scope.fn.getIssueListCallBack = getIssueListCallBack;
|
$scope.fn.getDownIssueListCallBack = getDownIssueListCallBack;
|
$scope.fn.addRelationIssue = addRelationIssue; // 연관 이슈 추가
|
$scope.fn.addDownIssue = addDownIssue; // 하위 이슈 추가
|
$scope.fn.addRelationIssueTableConfig = addRelationIssueTableConfig; // 연관 이슈 목록 테이블 설정
|
$scope.fn.addDownIssueTableConfig = addDownIssueTableConfig; // 하위 이슈 목록 테이블 설정
|
$scope.fn.setRelTableConfigs = setRelTableConfigs;
|
$scope.fn.setDownTableConfigs = setDownTableConfigs;
|
$scope.fn.containsPartner = containsPartner;
|
$scope.fn.onActivate = onActivate;
|
$scope.fn.issueBack = issueBack;
|
|
// 이슈 목록 컨트롤러 vm, fn 상속 중
|
$scope.vm.viewer = {}; // 현재 이슈
|
$scope.vm.images = []; // 첨부된 파일 중 이미지 파일
|
$scope.vm.activeTab = "RECODE"; // 활동 내역 탭
|
// 이슈 상태 변경 표시 여부
|
$scope.vm.editor = {
|
issueStatus : false
|
};
|
// 변경 가능한 이슈 상태 목록
|
$scope.vm.issueForm = {
|
issueStatusList : [],
|
issueStatusId : ""
|
};
|
|
// 연관 일감 관련
|
$scope.vm.relationIssueTypes =
|
[
|
{ id: 0, name: $filter("translate")("issue.relationIssueType1") },
|
{ id: 1, name: $filter("translate")("issue.relationIssueType2") },
|
{ id: 2, name: $filter("translate")("issue.relationIssueType3") },
|
{ id: 3, name: $filter("translate")("issue.relationIssueType4") },
|
{ id: 4, name: $filter("translate")("issue.relationIssueType5") },
|
{ id: 5, name: $filter("translate")("issue.relationIssueType6") }
|
];
|
$scope.vm.relationIssueType = $scope.vm.relationIssueTypes[0];
|
|
$scope.vm.form = {
|
issues : [], //연관 일감
|
issuesDown : [], // 하위 일감
|
issuesDownStatus : [], //하위 이슈 상태
|
issueCompanyVos : [],
|
issueIspVos : [],
|
issueHostingVos : []
|
};
|
|
|
$scope.vm.issueNameDown = ""; // 선택된 하위 일감 이름
|
$scope.vm.autoCompletePageDown = {
|
issue : {
|
page : 0,
|
totalPage : 0
|
},
|
};
|
|
$scope.vm.issueName = ""; // 선택된 연관 일감 이름
|
$scope.vm.issueId = ""; //
|
$scope.vm.issueTypeId = "";
|
$scope.vm.autoCompletePage = {
|
issue : {
|
page : 0,
|
totalPage : 0
|
},
|
};
|
|
$scope.vm.relResponseData = [];
|
$scope.vm.relTableConfigs = [];
|
// 테이블 이벤트
|
$scope.relTableEvent = {
|
removeRelationIssue : removeRelationIssue, // 연관 일감 삭제
|
changeDetailView : changeDetailView
|
};
|
|
$scope.vm.downResponseData = [];
|
$scope.vm.downTableConfigs = [];
|
// 테이블 이벤트
|
$scope.downTableEvent = {
|
removeDownIssue : removeDownIssue, // 연관 일감 삭제
|
changeDetailView : changeDetailView
|
};
|
|
function changeDetailView(issue) {
|
// 이슈 번호를 저장한 후 이슈 목록으로 이동한다.
|
//$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});
|
}
|
|
function onActivate() {
|
window.scroll(0,240);
|
}
|
|
angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
|
|
// 이슈 목록 데이터 갱신
|
$scope.$on("getIssueList", function () {
|
$scope.fn.getIssueDetail();
|
});
|
|
// 하위 이슈 삭제
|
function removeDownIssue(id) {
|
// 삭제 알림
|
SweetAlert.swal({
|
title : $filter("translate")("issue.downIssueRemove"), // 하위 이슈 삭제
|
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;
|
|
var contents = {
|
id : id
|
};
|
|
Issue.modifyParentIssue($resourceProvider.getContent(
|
contents,
|
$resourceProvider.getPageContent(0, 10))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.fn.getIssueDetail();
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueDown"), result.data.message.message); // "연관일감 삭제 실패"
|
}
|
$rootScope.spinner = false;
|
});
|
}
|
});
|
|
|
}
|
|
// 연관 이슈 삭제
|
function removeRelationIssue(id) {
|
// 삭제 알림
|
SweetAlert.swal({
|
title : $filter("translate")("issue.relationIssueRemove"), // 연관 이슈 삭제
|
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;
|
|
var contents = {
|
id : id
|
};
|
|
IssueRelation.delete($resourceProvider.getContent(
|
contents,
|
$resourceProvider.getPageContent(0, 10))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.fn.getIssueDetail();
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueRelation"), result.data.message.message); // "연관일감 삭제 실패"
|
}
|
$rootScope.spinner = false;
|
});
|
}
|
});
|
|
|
}
|
|
// 프로젝트 autocomplete page 업데이트
|
function getIssueListCallBack(result) {
|
$scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage;
|
}
|
|
function getDownIssueListCallBack(result) {
|
$scope.vm.autoCompletePageDown.issue.totalPage = result.data.page.totalPage;
|
}
|
|
// 테이블의 연관 이슈 컬럼을 만들어준다.
|
function setRelTableColumn(Rel_issueTableConfig) {
|
|
// 연관 이슈 컬럼
|
switch(Rel_issueTableConfig.key) {
|
// 연관 이슈 구분
|
case "RELATION_ISSUE_TYPE" :
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueType")
|
.setDType("renderer")
|
.setHWidth("width-30 bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_TYPE"))
|
break;
|
// 연관 이슈 제목
|
case "RELATION_ISSUE_TITLE" :
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueTitle")
|
.setDType("renderer")
|
.setHWidth("width-60 bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_MOVE"))
|
break;
|
case "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" : // 연관 이슈 중요도
|
$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" : // 연관 이슈 담당부서
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("common.assigneeTeam")
|
.setDType("renderer")
|
.setHWidth("bold " + Rel_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("REL_ISSUE_DEPARTMENT"));
|
break;
|
|
case "REGISTER" : // 연관 이슈 등록자
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("common.register")
|
.setDType("renderer")
|
.setHWidth("bold " + Rel_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("REL_REGISTER"));
|
break;
|
case "PERIOD" : // 연관 이슈 기간
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("common.period")
|
.setDType("renderer")
|
.setHWidth("bold " + Rel_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("REL_ISSUE_DUE_DATE"));
|
break;
|
case "MODIFY_DATE" : // 연관 이슈 최근 변경일
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("common.lastChangeDate")
|
.setHWidth("bold " + Rel_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDName("modifyDate"));
|
break;
|
}
|
|
// 사용자 정의 필드 컬럼
|
if (Rel_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()
|
.setHName(customField.name)
|
.setDType("renderer")
|
.setHWidth("bold " + Rel_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setColumnHint(customField)
|
.setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
|
break;
|
}
|
}
|
}
|
}
|
|
|
// 테이블의 하위 이슈 컬럼을 만들어준다.
|
function setDownTableColumn(Down_issueTableConfig) {
|
// if (issueTableConfig == null) return;
|
|
// 하위 이슈 컬럼
|
switch(Down_issueTableConfig.key) {
|
// 하위 이슈 제목
|
case "DOWN_ISSUE_TITLE" :
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.downIssueTitle")
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("ISSUE_DOWN_MOVE"));
|
break;
|
|
case "ISSUE_DOWN_STATUS_TYPE" : // 이슈 상태
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.issueStatus")
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("ISSUE_DOWN_STATUS_TYPE"));
|
break;
|
|
case "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" : // 중요도
|
$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" : // 담당부서
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("common.assigneeTeam")
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("DOWN_ISSUE_DEPARTMENT"));
|
break;
|
case "REGISTER" : // 등록자
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("common.register")
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("DOWN_REGISTER"));
|
break;
|
case "PERIOD" : // 기간
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("common.period")
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDRenderer("DOWN_ISSUE_DUE_DATE"));
|
break;
|
case "MODIFY_DATE" : // 최근 변경일
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("common.lastChangeDate")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setDName("modifyDate"));
|
break;
|
}
|
|
// 사용자 정의 필드 컬럼
|
if (Down_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()
|
.setHName(customField.name)
|
.setDType("renderer")
|
.setHWidth("bold " + Down_issueTableConfig.width)
|
.setDAlign("text-center")
|
.setColumnHint(customField)
|
.setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
|
break;
|
}
|
}
|
}
|
}
|
|
|
// 연관 이슈 테이블 설정
|
function makeRelTableConfigs() {
|
$scope.vm.relTableConfigs = [];
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueType")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-30-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_TYPE"))
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueTitle")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-60-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_MOVE"))
|
$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"))
|
|
angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
|
// 표시 대상인 컬럼만 화면에 그려준다.
|
if (Rel_issueTableConfig.display) {
|
// 테이블의 컬럼을 만들어준다.
|
$scope.fn.setRelTableColumn(Rel_issueTableConfig);
|
}
|
});
|
}
|
|
// 하위 이슈 테이블 설정
|
function makeDownTableConfigs() {
|
$scope.vm.downTableConfigs = [];
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.downIssueTitle")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-60-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_DOWN_MOVE"))
|
if($scope.vm.viewer.modifyPermissionCheck){
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueDelete")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-20-p bold")
|
.setDRenderer("ISSUE_DOWN_DELETE")
|
.setHSort(false)
|
.setDAlign("text-center"))
|
}
|
|
angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
|
// 표시 대상인 컬럼만 화면에 그려준다.
|
if (Down_issueTableConfig.display) {
|
// 테이블의 컬럼을 만들어준다.
|
$scope.fn.setDownTableColumn(Down_issueTableConfig);
|
}
|
});
|
}
|
|
// 연관 이슈 테이블 설정
|
function setRelTableConfigs(issueTableConfigVo) {
|
if (issueTableConfigVo == null) {
|
makeRelTableConfigs();
|
return;
|
}
|
var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
|
|
// 연관 슈 목록 테이블 설정 값을 가져와서 적용한다.
|
if ($rootScope.isDefined(issueTableConfigs)) {
|
// 이슈 테이블 설정 정보를 저장 한다.
|
|
$scope.vm.issueRelTableConfigs = [];
|
$scope.vm.issueRelTableConfigs = JSON.parse(issueTableConfigs);
|
$scope.vm.issueRelTableConfigs.sort(function (a, b) {
|
return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
|
});
|
|
$scope.vm.relTableConfigs = [];
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueType")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-30-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_TYPE"))
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueTitle")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-60-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_RELATION_MOVE"))
|
angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) {
|
// 표시 대상인 컬럼만 화면에 그려준다.
|
if (Rel_issueTableConfig.display) {
|
// 테이블의 컬럼을 만들어준다.
|
$scope.fn.setRelTableColumn(Rel_issueTableConfig);
|
|
}
|
});
|
$scope.vm.relTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueDelete")
|
.setDType("renderer")
|
.setHWidth("width-20-p bold")
|
.setDRenderer("ISSUE_RELATION_DELETE")
|
.setHSort(false)
|
.setDAlign("text-center"))
|
|
} else {
|
makeRelTableConfigs();
|
}
|
|
}
|
|
// 하위 이슈 상세 조회 결과 설정
|
function setDownTableConfigs(issueTableConfigVo) {
|
if (issueTableConfigVo == null) return;
|
var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
|
|
// 연관 슈 목록 테이블 설정 값을 가져와서 적용한다.
|
if ($rootScope.isDefined(issueTableConfigs)) {
|
// 이슈 테이블 설정 정보를 저장 한다.
|
$scope.vm.issueDownTableConfigs = [];
|
$scope.vm.issueDownTableConfigs = JSON.parse(issueTableConfigs);
|
$scope.vm.issueDownTableConfigs.sort(function (a, b) {
|
return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
|
});
|
$scope.vm.downTableConfigs = [];
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.downIssueTitle")
|
.setDType("renderer")
|
.setDAlign("text-center")
|
.setHWidth("width-60-p bold")
|
.setHSort(false)
|
.setDRenderer("ISSUE_DOWN_MOVE"))
|
angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
|
// 표시 대상인 컬럼만 화면에 그려준다.
|
if (Down_issueTableConfig.display) {
|
// 테이블의 컬럼을 만들어준다.
|
$scope.fn.setDownTableColumn(Down_issueTableConfig);
|
}
|
});
|
$scope.vm.downTableConfigs.push($tableProvider.config()
|
.setHName("issue.relationIssueDelete")
|
.setDType("renderer")
|
.setHWidth("width-20-p bold")
|
.setDRenderer("ISSUE_DOWN_DELETE")
|
.setHSort(false)
|
.setDAlign("text-center"))
|
|
} else {
|
makeDownTableConfigs();
|
}
|
}
|
|
// 연관 이슈 추가
|
function addRelationIssue() {
|
if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0
|
|| $scope.vm.issueName != $scope.vm.form.issues[0].title) {
|
SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), "");
|
return;
|
}
|
|
var contents = {
|
relationIssueType : $scope.vm.relationIssueType.id,
|
issueId : $rootScope.currentDetailIssueId,
|
relationIssueId : $scope.vm.form.issues[0].id,
|
priorityName : $scope.vm.priorityName
|
};
|
|
$rootScope.spinner = true;
|
IssueRelation.add($resourceProvider.getContent(
|
contents,
|
$resourceProvider.getPageContent(0, 10))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.fn.getIssueDetail();
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "연관일감 생성 실패"
|
}
|
$rootScope.spinner = false;
|
});
|
}
|
|
// 하위 이슈 추가
|
function addDownIssue() {
|
if ($scope.vm.issueNameDown.length == 0 || $scope.vm.form.issuesDown.length == 0
|
|| $scope.vm.issueNameDown != $scope.vm.form.issuesDown[0].title) {
|
SweetAlert.error($filter("translate")("issue.errorSelectDownIssue"), "");
|
return;
|
}
|
|
var contents = {
|
issueId : $rootScope.currentDetailIssueId,
|
id : $scope.vm.form.issuesDown[0].id,
|
parentIssueId : $rootScope.currentDetailIssueId
|
};
|
|
Issue.modifyParentIssue($resourceProvider.getContent(
|
contents,
|
$resourceProvider.getPageContent(0, 10))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.fn.getIssueDetail();
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "연관일감 생성 실패"
|
}
|
});
|
}
|
|
// 이슈명을 클릭하면 이슈 상세 정보를 조회한다.
|
// $rootScope.$on("getIssueDetail", function (event, args) {
|
// $scope.vm.viewer.id = args["id"];
|
// $scope.fn.getIssueDetail();
|
// });
|
|
// 이슈명을 클릭하면 이슈 상세 정보를 조회한다.
|
// $scope.$on("getIssueDetail", function (event, args) {
|
// $scope.vm.viewer.id = args["id"];
|
// $scope.fn.getIssueDetail();
|
// });
|
|
// 이메일 보낸후 상세화면 갱신
|
// $rootScope.$on("getIssueDetail", function (event, args) {
|
// $scope.fn.getIssueDetail();
|
// });
|
|
$scope.$on("getIssueDetail", function (event, args) {
|
$scope.fn.getIssueDetail();
|
});
|
|
$scope.$watch(function() {
|
return $rootScope.currentDetailIssueId;
|
}, function() {
|
if ($rootScope.currentDetailIssueId != null) {
|
$scope.vm.viewer.id = $rootScope.currentDetailIssueId;
|
$scope.fn.getIssueDetail();
|
}
|
}, true);
|
|
// 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다.
|
function initReload() {
|
$scope.vm.editor.issueStatus = false;
|
$scope.vm.issueForm.issueStatusList = [];
|
$scope.vm.issueForm.issueStatusId = "";
|
$scope.vm.issueTypeId = $rootScope.getCurrentIssueTypeId();
|
// if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') {
|
// $scope.$apply();
|
// }
|
}
|
|
// 이슈 상태 변경
|
function modifyIssueStatus() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueModifyStatus.html',
|
size : "md",
|
controller : 'issueModifyStatusController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueIds : [$scope.vm.viewer.id],
|
projectId : $scope.vm.viewer.projectVo.id,
|
downIssuesStatus : $scope.vm.form.issuesDownStatus
|
};
|
}
|
}
|
});
|
}
|
|
function modifyDownIssueStatus() {
|
$uibModal.open({
|
templateUrl : 'views/issue/downIssueModifyStatus.html',
|
size : "md",
|
controller : 'downIssueModifyStatusController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueTypeId : $scope.vm.viewer.issueTypeVo.id,
|
issueIds : [$scope.vm.viewer.id],
|
downIssues : $scope.vm.viewer.issueDownVos,
|
projectId : $scope.vm.viewer.projectVo.id
|
};
|
}
|
}
|
});
|
}
|
|
// 담당자 변경
|
function modifyIssueUser() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueModifyUser.html',
|
size : "md",
|
controller : 'issueModifyUserController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
userVos : [$scope.vm.form.issues[0].userVos],
|
id : [$scope.vm.form.issues[0].id],
|
projectId : [$scope.vm.form.issues[0].projectVo.id],
|
project : [$scope.vm.form.issues[0].projectVo]
|
};
|
}
|
}
|
});
|
}
|
|
// 담당부서 변경
|
function modifyIssueDepartment() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueModifyDepartment.html',
|
size : "md",
|
controller : 'issueModifyDepartmentController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
departmentVos : $scope.vm.form.issues[0].departmentVos,
|
id : $scope.vm.form.issues[0].id,
|
projectId : $scope.vm.form.issues[0].projectVo.id,
|
project : $scope.vm.form.issues[0].projectVo,
|
issueTypeId : $scope.vm.form.issues[0].issueTypeVo.id
|
};
|
}
|
}
|
});
|
}
|
|
// 연관 이슈 목록 테이블 설정
|
function addRelationIssueTableConfig() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAddRelationTableConfig.html',
|
size : "lg",
|
controller : 'issueAddRelationTableConfigController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueTypeId : $scope.vm.viewer.issueTypeVo.id
|
|
};
|
}
|
}
|
});
|
}
|
|
|
// 하위 이슈 목록 테이블 설정
|
function addDownIssueTableConfig() {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueAddDownTableConfig.html',
|
size : "lg",
|
controller : 'issueAddDownTableConfigController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueTypeId : $scope.vm.viewer.issueTypeVo.id
|
};
|
|
}
|
}
|
});
|
}
|
|
// 변경 가능한 이슈 상태 목록을 조회하고 수정 모드로 화면을 변경한다.
|
function getChangeIssueStatusList(checkPermission) {
|
// 수정 권한이 없으면 이슈 상태 변경 불가
|
if (!checkPermission) {
|
return;
|
}
|
|
// 수정 모드로 변경
|
$scope.vm.editor.issueStatus = true;
|
|
var content = {
|
id : $scope.vm.viewer.issueStatusVo.id,
|
issueTypeId : $scope.vm.viewer.issueTypeVo.id
|
};
|
|
IssueStatus.findNextIssueStatus($resourceProvider.getContent(
|
content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.issueForm.issueStatusList = result.data.data;
|
}
|
else {
|
SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "이동 가능한 이슈 상태 목록 조회 오류"
|
}
|
});
|
}
|
|
// 업체/ISP/호스팅 이름이 포함 여부 확인
|
function containsPartner(name) {
|
var result = false;
|
|
if ($scope.vm.viewer.usePartnerVos != null) {
|
$scope.vm.viewer.usePartnerVos.forEach(function (partnerVo) {
|
if (name === partnerVo.name) {
|
result = true;
|
}
|
});
|
}
|
return result;
|
|
}
|
|
// 이슈 상세 정보 조회
|
function getIssueDetail() {
|
// 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다.
|
$scope.fn.initReload();
|
|
// $scope.fn.getRelTableConfigs();
|
// $scope.fn.getDownTableConfigs();
|
$rootScope.spinner = true;
|
Issue.detail($resourceProvider.getContent(
|
{id : $scope.vm.viewer.id, deep : "02"},
|
$resourceProvider.getPageContent(0, 1))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
if (angular.isDefined(result.data.data)) {
|
|
$scope.vm.viewer = angular.copy(result.data.data);
|
// 이슈 이미지 미리 보기 만들기
|
$scope.fn.makePreviewImages(result.data.data.attachedFileVos);
|
// 활동 이력 만들기
|
$scope.fn.makeActiveHistory();
|
|
$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.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos);
|
// 이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
|
$scope.fn.setUseValueByIssueTypeCustomFields(result.data.data.issueCustomFieldValueVos);
|
|
// 연관 일감
|
$scope.vm.issueName = "";
|
$scope.vm.form.issues = [];
|
$scope.vm.form.issues.push(result.data.data);
|
$scope.vm.form.issuesDown = [];
|
$scope.vm.form.issuesDownStatus = [];// 하위이슈 상태
|
$scope.vm.form.issuesDown.push(result.data.data);
|
|
var issueTableConfigVos = result.data.data.issueTableConfigVos;
|
$scope.fn.setRelTableConfigs(issueTableConfigVos[0]);
|
$scope.fn.setDownTableConfigs(issueTableConfigVos[1]);
|
|
// 연관 이슈 반복문
|
if (result.data.data.issueRelationVos !== null) {
|
angular.forEach(result.data.data.issueRelationVos, function (issueRelationVo){
|
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;
|
});
|
}
|
|
// 하위 이슈 반목문
|
if (result.data.data.issueDownVos !== null){
|
angular.forEach(result.data.data.issueDownVos, function (issueDownVo){
|
//$scope.vm.form.issuesDown.push(issueDownVo.issueDown);
|
$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 makePreviewImages(attachedFileVos) {
|
// 미리보기 이미지 초기화
|
$scope.vm.images = [];
|
|
angular.forEach(attachedFileVos, function (attachedFileVo, $index) {
|
if (attachedFileVo.contentType.indexOf("image") !== -1) {
|
$scope.vm.images.push({
|
id : $index,
|
title : attachedFileVo.name,
|
alt : attachedFileVo.name,
|
thumbUrl : attachedFileVo.path.replace(/\\/gi, "/"),
|
url : attachedFileVo.path.replace(/\\/gi, "/")
|
});
|
}
|
});
|
}
|
|
// 이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다.
|
function setFormByIssueTypeCustomFields(issueTypeCustomFields) {
|
$scope.vm.viewer.issueCustomFields = [];
|
|
angular.forEach(issueTypeCustomFields, function (issueTypeCustomField) {
|
switch (issueTypeCustomField.customFieldVo.customFieldType) {
|
case "INPUT" :
|
case "SINGLE_SELECT" :
|
case "NUMBER" :
|
case "DATETIME" :
|
case "IP_ADDRESS" :
|
case "EMAIL" :
|
case "SITE" :
|
case "TEL" :
|
issueTypeCustomField.useValues = "";
|
break;
|
|
case "MULTI_SELECT" :
|
issueTypeCustomField.useValues = [];
|
break;
|
}
|
|
$scope.vm.viewer.issueCustomFields.push(issueTypeCustomField);
|
});
|
}
|
|
// 이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
|
function setUseValueByIssueTypeCustomFields(issueCustomFieldValues) {
|
angular.forEach(issueCustomFieldValues, function (issueCustomFieldValue) {
|
for (var count in $scope.vm.viewer.issueCustomFields) {
|
var issueCustomField = $scope.vm.viewer.issueCustomFields[count];
|
|
if (issueCustomField.customFieldVo.id === issueCustomFieldValue.customFieldVo.id) {
|
// 멀티셀렉트 일때
|
if (angular.isArray(issueCustomField.useValues)) {
|
issueCustomField.useValues.push({
|
value : issueCustomFieldValue.useValue
|
});
|
}
|
else {
|
issueCustomField.useValues = issueCustomFieldValue.useValue;
|
}
|
|
break;
|
}
|
}
|
});
|
}
|
``
|
function updateActiveHistory() {
|
$scope.vm.activeTab = 'ALL';
|
$scope.fn.makeActiveHistory();
|
}
|
|
// 활동 이력 만들기
|
function makeActiveHistory() {
|
$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;
|
});
|
}
|
|
// 댓글 등록하기
|
function addComment() {
|
var content = {
|
issueId : $scope.vm.viewer.id,
|
description : $rootScope.preventXss($scope.vm.viewer.comment)
|
};
|
|
IssueComment.add($resourceProvider.getContent(
|
content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.viewer.comment = "";
|
$scope.fn.getCommentList();
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToRegisterComments"), result.data.message.message); // 댓글 등록 실패
|
}
|
});
|
}
|
|
// 댓글 삭제
|
function removeComment(comment) {
|
// 삭제 알림
|
SweetAlert.swal({
|
title : $filter("translate")("issue.deleteComments"), // "댓글 삭제"
|
text : $filter("translate")("issue.wantToDeleteTheSelectedComments"), // "선택한 댓글을 삭제하겠습니까? 삭제된 댓글은 복구할 수 없습니다."
|
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;
|
|
IssueComment.remove($resourceProvider.getContent(
|
{removeIds : [comment.id]},
|
$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.getCommentList();
|
}
|
else {
|
$timeout(function () {
|
SweetAlert.error($filter("translate")("issue.failedToDeleteComments"), result.data.message.message); // "댓글 삭제 실패"
|
}, 100);
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
});
|
}
|
|
// 댓글 목록 가져오기
|
function getCommentList() {
|
IssueComment.find($resourceProvider.getContent(
|
{issueId : $scope.vm.viewer.id},
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.viewer.issueCommentVos = result.data.data;
|
$scope.fn.updateActiveHistory();
|
}
|
else {
|
SweetAlert.swal({
|
title : $filter("translate")("issue.failedToGetCommentListData"), // "댓글 목록 데이터 가져오기 실패"
|
text : result.message.message,
|
type : "error"
|
});
|
}
|
});
|
}
|
|
// 첨부 파일 목록
|
function getAttachedFiles() {
|
var content = {
|
issueId : $scope.vm.viewer.id
|
};
|
|
AttachedFile.find($resourceProvider.getContent(
|
content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.viewer.attachedFileVos = result.data.data;
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToAttachmentList"), result.message.message); // "첨부 파일 목록 조회 실패"
|
}
|
});
|
}
|
|
function sendMailVo(partnerVos) {
|
$scope.fn.sendMail($scope.fn.getParametersAll(), $scope.fn.getParameters(null, partnerVos));
|
}
|
|
function sendMailAll() {
|
var param = $scope.fn.getParametersAll();
|
$scope.fn.sendMail(param, param);
|
}
|
|
// 특정 사용자에게 이슈를 메일로 발송
|
function sendMail(partnersAll, partners) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueSendMailPartners.html',
|
size : "md",
|
controller : 'issueSendMailPartnersController',
|
backdrop : 'static',
|
resolve : {
|
parameter : {
|
partnersAll : partnersAll,
|
partners : partners,
|
issueId : $scope.vm.viewer.id,
|
projectId : $scope.vm.viewer.projectVo.id,
|
}
|
}
|
});
|
}
|
|
function getParametersAll() {
|
var params = $scope.fn.getParameters(null, $scope.vm.viewer.issueCompanyVos);
|
params = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos);
|
params = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
|
|
if (params != null && params.length > 0) {
|
for (let i = 0; i < params.length; i++) {
|
params[i].id = i;
|
}
|
}
|
return params;
|
}
|
|
function getParameters(sourceArr, partnerVos) {
|
var excludeVos = sourceArr != null ? sourceArr.slice() : [];
|
|
angular.forEach(partnerVos, function (vo) {
|
var account = {
|
account : vo.email
|
}
|
Object.assign(vo, account)
|
|
excludeVos.push(vo);
|
});
|
|
return excludeVos;
|
}
|
|
// 변경 정보를 확인한다.
|
function versionView(issueId) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueVersionView.html',
|
size : "lg",
|
controller : 'issueVersionViewController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueId : issueId
|
};
|
}
|
}
|
});
|
}
|
|
// 예약 정보를 확인 및 변경 한다.
|
function reservation(issueId) {
|
$uibModal.open({
|
templateUrl : 'views/issue/issueReservation.html',
|
size : "sm",
|
controller : 'issueReservationController',
|
backdrop : 'static',
|
resolve : {
|
parameter : function () {
|
return {
|
issueId : issueId
|
};
|
}
|
}
|
});
|
}
|
}
|
]);
|
}
|
);
|