/**
|
* Created by wisestone on 2019-02-07.
|
*/
|
'use strict';
|
|
define([
|
'app',
|
'angular'
|
],
|
function (app, angular) {
|
app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'CustomField', '$q', '$filter', 'parameter',
|
function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, CustomField, $q, $filter, parameter) {
|
|
// 함수 모음
|
$scope.fn = {
|
cancel : cancel, // 팝업 창 닫기
|
formSubmit : formSubmit, // 폼 전송
|
formCheck : formCheck, // 폼 체크
|
getCustomFields : getCustomFields, // 사용자 정의 필드 목록을 가져온다.
|
getIssueAddTableConfigs : getIssueAddTableConfigs // 이슈 목록 테이블 설정 정보를 가져온다.
|
};
|
|
// 변수 모음
|
$scope.vm = {
|
issueTableConfigs : [{
|
name : $filter("translate")("common.priority"), // 우선순위
|
key : "PRIORITY",
|
width : "width-80-p",
|
position : 1,
|
display : true
|
}, {
|
name : $filter("translate")("common.importance"), // 중요도
|
key : "SEVERITY",
|
width : "width-80-p",
|
position : 2,
|
display : true
|
}, {
|
name : $filter("translate")("issue.issueType"), // 이슈 타입
|
key : "ISSUE_TYPE",
|
width : "width-140-p",
|
position : 3,
|
display : true
|
}, {
|
name : $filter("translate")("common.assigneeTeam"), // 담당부서
|
key : "ASSIGNEE_TEAM",
|
width : "width-100-p",
|
position : 4,
|
display : true
|
}, {
|
name : $filter("translate")("common.countDownIssue"), // 하위이슈 카운트
|
key : "COUNT_DOWN_ISSUE",
|
width : "width-100-p",
|
position : 5,
|
display : false
|
}, {
|
name : $filter("translate")("common.register"), // 등록자
|
key : "REGISTER",
|
width : "width-100-p",
|
position : 6,
|
display : false
|
}, {
|
name : $filter("translate")("common.period"), // 기간
|
key : "PERIOD",
|
width : "width-140-p",
|
position : 7,
|
display : false
|
}, {
|
name : $filter("translate")("common.lastChangeDate"), // 최근 변경일
|
key : "MODIFY_DATE",
|
width : "width-100-p",
|
position : 8,
|
display : false
|
}, {
|
}]
|
};
|
|
|
// 폼 전송
|
function formCheck(formInvalid) {
|
if (formInvalid) {
|
return true;
|
}
|
|
return false;
|
}
|
|
// 폼 전송
|
function formSubmit() {
|
$rootScope.spinner = true;
|
|
var content = {
|
issueTypeId : $rootScope.getCurrentIssueTypeId(),
|
issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
|
};
|
|
IssueTableConfig.add($resourceProvider.getContent(content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
SweetAlert.success($filter("translate")("issue.completedSavingIssueTable"), $filter("translate")("issue.saveIssueTableSettingsInformation")); // "이슈 테이블 설정 저장 완료", "이슈 테이블 설정 정보가 저장되었습니다."
|
|
// 변경된 이슈 테이블 정보를 이슈 목록 테이블에 갱신한다.
|
swal.close();
|
$scope.fn.cancel();
|
$rootScope.$broadcast("getIssueTableConfigs", {});
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToSaveIssueTableSetting"), result.data.message.message); // 이슈 테이블 설정 저장 실패
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
|
|
// 팝업 창 닫기
|
function cancel() {
|
$rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정
|
$uibModalInstance.dismiss('cancel');
|
$(document).unbind("keydown"); // 단축키 이벤트 제거
|
}
|
|
// 사용자 정의 필드 목록을 가져온다.
|
function getCustomFields() {
|
var deferred = $q.defer();
|
|
CustomField.find($resourceProvider.getContent({},
|
$resourceProvider.getPageContent(0, 1000))).then(function (result) {
|
if (result.data.message.status !== "success") {
|
SweetAlert.error($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message); // 사용자 정의 필드 목록 조회 실패
|
}
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
var content = {
|
delValue : $scope.vm.issueTableConfigs.splice(8,1),
|
issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs),
|
issueTypeId : $rootScope.getCurrentIssueTypeId()
|
};
|
// 이슈 목록 테이블 설정 정보를 가져온다.
|
function getIssueAddTableConfigs() {
|
var deferred = $q.defer();
|
|
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); // 이슈 테이블 컬럼 조회 실패
|
}
|
|
// for (var i = 0; i < result.data.name; i++) {
|
// if (result.data.name === '') {
|
// result.splice(i,1);
|
// i--;
|
// }
|
// }
|
|
deferred.resolve(result.data.data);
|
});
|
|
return deferred.promise;
|
}
|
|
// 사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
|
$scope.fn.getCustomFields().then(function (result) {
|
var count = 7;
|
angular.forEach(result, function (customField) {
|
$scope.vm.issueTableConfigs.push({
|
name : customField.name,
|
key : "CUSTOM_FIELD_" + customField.id,
|
width : "width-100-p",
|
display : false,
|
position : count
|
});
|
|
count++;
|
});
|
|
// 이슈 목록 테이블 설정 정보를 가져온다.
|
$scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
|
if ($rootScope.isDefined(issueTableConfigs)) {
|
$rootScope.spinner = true;
|
|
var saveTableConfigs = JSON.parse(issueTableConfigs);
|
|
angular.forEach(saveTableConfigs, function (saveTableConfig) {
|
|
for (var count in $scope.vm.issueTableConfigs) {
|
var issueTableConfig = $scope.vm.issueTableConfigs[count];
|
|
if (issueTableConfig.key === saveTableConfig.key) {
|
issueTableConfig.display = saveTableConfig.display;
|
issueTableConfig.width = saveTableConfig.width;
|
issueTableConfig.position = saveTableConfig.position;
|
break;
|
}
|
}
|
});
|
|
$rootScope.spinner = false;
|
}
|
});
|
});
|
|
}]);
|
});
|