| | |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('issueAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$uibModal', '$injector', |
| | | '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'Issue', 'User', 'AttachedFile', 'IssueType', 'Priority', 'Severity', 'IssueTypeCustomField', '$filter', '$state', |
| | | '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'Issue', 'User', 'AttachedFile', 'Project', 'IssueType', 'Priority', 'Severity', 'IssueTypeCustomField', '$filter', '$state', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $uibModal, $injector, $controller, $tableProvider, SweetAlert, $timeout, |
| | | $stateParams, $q, Issue, User, AttachedFile, IssueType, Priority, Severity, IssueTypeCustomField, $filter, $state) { |
| | | $stateParams, $q, Issue, User, AttachedFile, Project, IssueType, Priority, Severity, IssueTypeCustomField, $filter, $state) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | |
| | | onFileSelect : onFileSelect, // 파일 첨부 |
| | | infiniteAddForm : infiniteAddForm, // 계속 생성 |
| | | imageUpload : imageUpload, // 섬머노트 이미지 업로드 |
| | | getProject : getProject, //프로젝트 가져오기(전체 프로젝트 일 경우 사용) |
| | | getIssueTypes : getIssueTypes, // 이슈 타입 목록 가져오기 |
| | | getPriorities : getPriorities, // 우선순위 목록 가져오기 |
| | | getSeverities : getSeverities, // 중요도 목록 가져오기 |
| | |
| | | setIssueTypeTemplate : setIssueTypeTemplate, // 이슈 유형 템플릿 적용하기 |
| | | startExecute : startExecute, // 컨트롤 로딩시 처음으로 시작되는 함수 |
| | | containsPartner : containsPartner, |
| | | getPartners : getPartners |
| | | getPartners : getPartners, |
| | | getDepartments : getDepartments, |
| | | getCompanyTypeListCallBack : getCompanyTypeListCallBack, |
| | | getParentSectorListCallBack : getParentSectorListCallBack, |
| | | getChildSectorListCallBack : getChildSectorListCallBack, |
| | | getRegionListCallBack : getRegionListCallBack, |
| | | getStatusListCallBack : getStatusListCallBack, |
| | | getIssueTypeOfProject : getIssueTypeOfProject |
| | | }; |
| | | |
| | | $scope.vm = { |
| | |
| | | attachedFiles : [], // 섬머노트로 파일 업로드를 할 경우 서버에서 pk를 따고 issue id와 연동 작업이 필요하다. |
| | | startCompleteDateRange : "", // 시작일 ~ 종료일 |
| | | detectingDateRange : "", // 탐지일 |
| | | issueCustomFields : [] // 이슈에서 사용되는 사용자 정의 필드 |
| | | issueCustomFields : [], // 이슈에서 사용되는 사용자 정의 필드 |
| | | issueStatusId: "", |
| | | companyTypeId : "", |
| | | companyType : "", //기업구분 |
| | | parentSectorId : "", |
| | | parentSector : "", //업종(대분류) |
| | | childSectorId : "", |
| | | childSector : "", //업종(중분류) |
| | | regionId : "", |
| | | region : "", //지역 |
| | | statusId : "", |
| | | status : "", //상태 |
| | | }, |
| | | infiniteAdd : false, // 연속 생성 |
| | | projectName : "", // 프로젝트 명 검색 |
| | |
| | | companyManager : "", // 업체 담당자 |
| | | companyTel : "", // 업체 전화번호 |
| | | companyEmail : "", // 업체 이메일 |
| | | companyUrl : "", // 업체 url |
| | | companyMemo : "", // 업체 비고 |
| | | ispId : -1, // ISP ID |
| | | ispName : "", // ISP 명 |
| | |
| | | ispManager : "", // ISP 담당자 |
| | | ispTel : "", // ISP 전화번호 |
| | | ispEmail : "", // ISP 이메일 |
| | | ispUrl : "", // url |
| | | ispMemo : "", // ISP 비고 |
| | | hostingId : -1, // 호스팅 ID |
| | | hostingName : "", // 호스팅명 검색 |
| | | hostingManager : "", // 호스팅 담당자 |
| | | hostingTel : "", // 호스팅 전화번호 |
| | | hostingEmail : "", // 호스팅 이메일 |
| | | hostingUrl : "", // url |
| | | hostingMemo :"", // 호스팅 비고 |
| | | |
| | | autoCompletePage : { |
| | |
| | | hostingField : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | }, |
| | | companyType : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | }, |
| | | parentSector : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | }, |
| | | childSector : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | }, |
| | | region : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | }, |
| | | status : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | } |
| | | }, |
| | | summerNote : { |
| | |
| | | priorities : [], // 우선순위 정보 |
| | | severities : [], // 중요도 정보 |
| | | fileTableConfigs : [], // 파일 업로드 정보 테이블 |
| | | |
| | | typeCategory : { |
| | | companyType : "COMPANYTYPE", |
| | | parentSector : "PARENTSECTOR", |
| | | childSector : "CHILDSECTOR", |
| | | region : "REGION", |
| | | status : "STATUS" |
| | | }, |
| | | }; |
| | | |
| | | // 연관 일감 관련 |
| | | $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]; |
| | | |
| | | angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); |
| | | |
| | |
| | | if (angular.isDefined(newValue)) { |
| | | if (newValue.length < 1) { |
| | | $scope.vm.form.users = []; |
| | | } else { |
| | | // 이슈 유형에 연결된 사용자 정의 필드 가져오기 |
| | | $scope.fn.getIssueTypeCustomFields(); |
| | | // 선택한 프로젝트에 속해있는 이슈유형만 보여주기 |
| | | $scope.fn.getIssueTypeOfProject(); |
| | | } |
| | | |
| | | // 이슈 유형에 연결된 사용자 정의 필드 가져오기 |
| | | $scope.fn.getIssueTypeCustomFields(); |
| | | } |
| | | }); |
| | | |
| | |
| | | $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 기업구분 autocomplete page 업데이트 |
| | | function getCompanyTypeListCallBack(result) { |
| | | $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 업종(대분류) autocomplete page 업데이트 |
| | | function getParentSectorListCallBack(result, value) { |
| | | if (value === "") { |
| | | $scope.vm.form.parentSectorId = ""; |
| | | if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) { |
| | | $scope.vm.form.parentSectors[0].id = ""; |
| | | } |
| | | $scope.vm.form.childSectorId = ""; |
| | | $scope.vm.form.childSector = ""; |
| | | $scope.vm.form.childSectors = []; |
| | | } |
| | | $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 업종(중분류) 카테고리 autocomplete page 업데이트 |
| | | function getChildSectorListCallBack(result) { |
| | | $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 지역 카테고리 autocomplete page 업데이트 |
| | | function getRegionListCallBack(result) { |
| | | $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 상태 카테고리 autocomplete page 업데이트 |
| | | function getStatusListCallBack(result) { |
| | | $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage; |
| | | } |
| | | |
| | | // 폼 체크 |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | |
| | | |
| | | // 업체정보 결과 값 Event 처리(set) |
| | | $scope.$on("companyFieldEvent", function (event, result) { |
| | | $scope.vm.companyId = result[0].id; |
| | | $scope.vm.companyName = result[0].name; |
| | | $scope.vm.companyManager = result[0].manager; |
| | | $scope.vm.companyTel = result[0].tel; |
| | | $scope.vm.companyEmail = result[0].email; |
| | | $scope.vm.companyMemo = result[0].memo; |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | var ispFieldVo = result[0].ispFieldVo; |
| | | var hostingFieldVo = result[0].hostingFieldVo; |
| | | |
| | | $scope.vm.companyId = result[0].id; |
| | | $scope.vm.companyName = result[0].name; |
| | | $scope.vm.companyManager = result[0].manager; |
| | | $scope.vm.companyTel = result[0].tel; |
| | | $scope.vm.companyEmail = result[0].email; |
| | | $scope.vm.companyUrl = result[0].url; |
| | | $scope.vm.companyMemo = result[0].memo; |
| | | $scope.vm.form.companyTypeId = result[0].companyTypeId; |
| | | $scope.vm.form.parentSectorId = result[0].parentSectorId; |
| | | $scope.vm.form.childSectorId = result[0].childSectorId; |
| | | $scope.vm.form.regionId = result[0].regionId; |
| | | $scope.vm.form.statusId = result[0].statusId; |
| | | $scope.vm.form.companyType = result[0].companyTypeName; |
| | | $scope.vm.form.parentSector = result[0].parentSectorName; |
| | | $scope.vm.form.childSector = result[0].childSectorName; |
| | | $scope.vm.form.region = result[0].regionName; |
| | | $scope.vm.form.status = result[0].statusName; |
| | | |
| | | $scope.vm.ispId = ""; |
| | | $scope.vm.ispName = ""; |
| | | $scope.vm.ispCode = ""; |
| | | $scope.vm.ispManager = ""; |
| | | $scope.vm.ispTel = ""; |
| | | $scope.vm.ispEmail = ""; |
| | | $scope.vm.ispUrl = ""; |
| | | $scope.vm.ispMemo = ""; |
| | | |
| | | $scope.vm.hostingId = ""; |
| | | $scope.vm.hostingName = ""; |
| | | $scope.vm.hostingCode = ""; |
| | | $scope.vm.hostingManager = ""; |
| | | $scope.vm.hostingTel = ""; |
| | | $scope.vm.hostingEmail = ""; |
| | | $scope.vm.hostingUrl = ""; |
| | | $scope.vm.hostingMemo = ""; |
| | | |
| | | if (ispFieldVo != null) { |
| | | $scope.vm.ispId = ispFieldVo.id; |
| | | $scope.vm.ispName = ispFieldVo.name; |
| | | $scope.vm.ispCode = ispFieldVo.code; |
| | | $scope.vm.ispManager = ispFieldVo.manager; |
| | | $scope.vm.ispTel = ispFieldVo.tel; |
| | | $scope.vm.ispEmail = ispFieldVo.email; |
| | | $scope.vm.ispUrl = ispFieldVo.url; |
| | | $scope.vm.ispMemo = ispFieldVo.memo; |
| | | } |
| | | if (hostingFieldVo != null) { |
| | | $scope.vm.hostingId = hostingFieldVo.id; |
| | | $scope.vm.hostingName = hostingFieldVo.name; |
| | | $scope.vm.hostingCode = hostingFieldVo.code; |
| | | $scope.vm.hostingManager = hostingFieldVo.manager; |
| | | $scope.vm.hostingTel = hostingFieldVo.tel; |
| | | $scope.vm.hostingEmail = hostingFieldVo.email; |
| | | $scope.vm.hostingUrl = hostingFieldVo.url; |
| | | $scope.vm.hostingMemo = hostingFieldVo.memo; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // ISP정보 결과 값 Event 처리(set) |
| | | //ISP정보 결과 값 Event 처리(set) |
| | | $scope.$on("ispFieldEvent", function (event, result) { |
| | | $scope.vm.ispId = result[0].id; |
| | | $scope.vm.ispName = result[0].name; |
| | | $scope.vm.ispCode = result[0].code; |
| | | $scope.vm.ispManager = result[0].manager; |
| | | $scope.vm.ispTel = result[0].tel; |
| | | $scope.vm.ispEmail = result[0].email; |
| | | $scope.vm.ispMemo = result[0].memo; |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.ispId = result[0].id; |
| | | $scope.vm.ispName = result[0].name; |
| | | $scope.vm.ispCode = result[0].code; |
| | | $scope.vm.ispManager = result[0].manager; |
| | | $scope.vm.ispTel = result[0].tel; |
| | | $scope.vm.ispEmail = result[0].email; |
| | | $scope.vm.ispUrl = result[0].url; |
| | | $scope.vm.ispMemo = result[0].memo; |
| | | } |
| | | }); |
| | | |
| | | // 호스팅정보 결과 값 Event 처리(set) |
| | | $scope.$on("hostingFieldEvent", function (event, result) { |
| | | $scope.vm.hostingId = result[0].id; |
| | | $scope.vm.hostingName = result[0].name; |
| | | $scope.vm.hostingCode = result[0].code; |
| | | $scope.vm.hostingManager = result[0].manager; |
| | | $scope.vm.hostingTel = result[0].tel; |
| | | $scope.vm.hostingEmail = result[0].email; |
| | | $scope.vm.hostingMemo = result[0].memo; |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.hostingId = result[0].id; |
| | | $scope.vm.hostingName = result[0].name; |
| | | $scope.vm.hostingCode = result[0].code; |
| | | $scope.vm.hostingManager = result[0].manager; |
| | | $scope.vm.hostingTel = result[0].tel; |
| | | $scope.vm.hostingEmail = result[0].email; |
| | | $scope.vm.hostingUrl = result[0].url; |
| | | $scope.vm.hostingMemo = result[0].memo; |
| | | } |
| | | }); |
| | | |
| | | $scope.$on("companyTypeEvent", function (event, result) { |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.form.companyTypeId = result[0].id; |
| | | } |
| | | }); |
| | | $scope.$on("parentSectorEvent", function (event, result) { |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.form.parentSectorId = result[0].id; |
| | | } else { |
| | | $scope.vm.form.parentSectorId = ""; |
| | | if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) { |
| | | $scope.vm.form.parentSectors[0].id = ""; |
| | | } |
| | | } |
| | | $scope.vm.form.childSectorId = ""; |
| | | $scope.vm.form.childSector = ""; |
| | | $scope.vm.form.childSectors = []; |
| | | }); |
| | | $scope.$on("childSectorEvent", function (event, result) { |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.form.childSectorId = result[0].id; |
| | | } |
| | | }); |
| | | $scope.$on("regionEvent", function (event, result) { |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.form.regionId = result[0].id; |
| | | } |
| | | }); |
| | | $scope.$on("statusEvent", function (event, result) { |
| | | if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { |
| | | $scope.vm.form.statusId = result[0].id; |
| | | } |
| | | }); |
| | | |
| | | // 폼 전송 |
| | |
| | | severityId : $scope.vm.form.severityId, // 중요도 아이디 |
| | | |
| | | companyId : (function () { // 업체 아이디 |
| | | var companyId = -1; |
| | | if ($scope.vm.form.issueCompanyFields.length > 0) { |
| | | var companyId = null; |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0) { |
| | | companyId = $scope.vm.form.issueCompanyFields[0].id; |
| | | } |
| | | return companyId; |
| | | })(), |
| | | |
| | | ispId : (function () { // ISP 아이디 |
| | | var ispId = -1; |
| | | if ($scope.vm.form.issueIspFields.length > 0) { |
| | | var ispId = null; |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0) { |
| | | if ($scope.vm.form.issueCompanyFields[0].ispId != null){ |
| | | ispId = $scope.vm.form.issueCompanyFields[0].ispId; |
| | | } |
| | | }else if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0) { |
| | | ispId = $scope.vm.form.issueIspFields[0].id; |
| | | } |
| | | return ispId; |
| | | })(), |
| | | |
| | | hostingId : (function () { // Hosting 아이디 |
| | | var hostingId = -1; |
| | | if ($scope.vm.form.issueHostingFields.length > 0) { |
| | | var hostingId = null; |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0) { |
| | | if ($scope.vm.form.issueCompanyFields[0].hostingId != null){ |
| | | hostingId = $scope.vm.form.issueCompanyFields[0].hostingId; |
| | | } |
| | | }else if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0) { |
| | | hostingId = $scope.vm.form.issueHostingFields[0].id; |
| | | } |
| | | return hostingId; |
| | |
| | | |
| | | return attachedFileIds; |
| | | })(), |
| | | |
| | | issueCompanyFields : (function () { |
| | | var issueCompanyFields = []; |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){ |
| | | var companyField = $scope.vm.form.issueCompanyFields[0]; |
| | | |
| | | issueCompanyFields.push({ |
| | | id : companyField.id, |
| | | companyId : $scope.vm.companyId, |
| | | name : $scope.vm.companyName, |
| | | manager : $scope.vm.companyManager, |
| | | tel : $scope.vm.companyTel, |
| | | email :$scope.vm.companyEmail, |
| | | memo : $scope.vm.companyMemo |
| | | url :$scope.vm.companyUrl, |
| | | memo : $scope.vm.companyMemo, |
| | | companyTypeId : $scope.vm.form.companyTypeId, |
| | | parentSectorId : $scope.vm.form.parentSectorId, |
| | | childSectorId : $scope.vm.form.childSectorId, |
| | | regionId : $scope.vm.form.regionId, |
| | | statusId : $scope.vm.form.statusId, |
| | | statusName : $scope.vm.form.status |
| | | }); |
| | | } |
| | | |
| | | return issueCompanyFields; |
| | | })(), |
| | | companyName : $scope.vm.companyName, |
| | | companyManager : $scope.vm.companyManager, |
| | | companyTel : $scope.vm.companyTel, |
| | | companyEmail :$scope.vm.companyEmail, |
| | | companyUrl :$scope.vm.companyUrl, |
| | | companyMemo : $scope.vm.companyMemo, |
| | | companyTypeId : (function () { |
| | | var companyTypeId = null; |
| | | if ($scope.vm.form.companyTypes != null && $scope.vm.form.companyTypes.length > 0) { |
| | | companyTypeId = $scope.vm.form.companyTypes[0].id; |
| | | } |
| | | return companyTypeId; |
| | | })(), |
| | | parentSectorId : (function () { |
| | | var parentSectorId = null; |
| | | if ($scope.vm.form.parentSectors != null && $scope.vm.form.parentSectors.length > 0) { |
| | | parentSectorId = $scope.vm.form.parentSectors[0].id; |
| | | } |
| | | return parentSectorId; |
| | | })(), |
| | | childSectorId : (function () { |
| | | var childSectorId = null; |
| | | if ($scope.vm.form.childSectors != null && $scope.vm.form.childSectors.length > 0) { |
| | | childSectorId = $scope.vm.form.childSectors[0].id; |
| | | } |
| | | return childSectorId; |
| | | })(), |
| | | regionId : (function () { |
| | | var regionId = null; |
| | | if ($scope.vm.form.regions != null && $scope.vm.form.regions.length > 0) { |
| | | regionId = $scope.vm.form.regions[0].id; |
| | | } |
| | | return regionId; |
| | | })(), |
| | | statusId : (function () { |
| | | var statusId = null; |
| | | if ($scope.vm.form.statuses != null && $scope.vm.form.statuses.length > 0) { |
| | | statusId = $scope.vm.form.statuses[0].id; |
| | | } else if ($scope.vm.form.status !== ""){ |
| | | statusId = 120; //직접입력 일 경우 |
| | | } |
| | | return statusId; |
| | | })(), |
| | | statusName : $scope.vm.form.status, |
| | | |
| | | issueIspFields : (function () { |
| | | var issueIspFields = []; |
| | | if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){ |
| | | var ispField = $scope.vm.form.issueIspFields[0]; |
| | | |
| | | issueIspFields[0] = { |
| | | id : ispField.id, |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 |
| | | && $scope.vm.form.issueCompanyFields[0].ispFieldVo != null |
| | | || $scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){ |
| | | issueIspFields.push({ |
| | | ispId : $scope.vm.ispId, |
| | | name : $scope.vm.ispName, |
| | | code : $scope.vm.ispCode, |
| | | manager : $scope.vm.ispManager, |
| | | tel : $scope.vm.ispTel, |
| | | email :$scope.vm.ispEmail, |
| | | url :$scope.vm.ispUrl, |
| | | memo : $scope.vm.ispMemo |
| | | }; |
| | | |
| | | }); |
| | | } |
| | | |
| | | return issueIspFields; |
| | | })(), |
| | | ispName : $scope.vm.ispName, |
| | | ispCode : $scope.vm.ispCode, |
| | | ispManager : $scope.vm.ispManager, |
| | | ispTel : $scope.vm.ispTel, |
| | | ispEmail :$scope.vm.ispEmail, |
| | | ispUrl :$scope.vm.ispUrl, |
| | | ispMemo : $scope.vm.ispMemo, |
| | | |
| | | issueHostingFields : (function () { |
| | | var issueHostingFields = []; |
| | | if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){ |
| | | |
| | | var hostingField = $scope.vm.form.issueHostingFields[0]; |
| | | |
| | | if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 |
| | | && $scope.vm.form.issueCompanyFields[0].hostingFieldVo != null |
| | | || $scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){ |
| | | issueHostingFields[0] = { |
| | | id : hostingField.id, |
| | | hostingId : $scope.vm.hostingId, |
| | | name : $scope.vm.hostingName, |
| | | code : $scope.vm.hostingCode, |
| | | manager : $scope.vm.hostingManager, |
| | | tel : $scope.vm.hostingTel, |
| | | email :$scope.vm.hostingEmail, |
| | | url :$scope.vm.hostingUrl, |
| | | memo : $scope.vm.hostingMemo |
| | | }; |
| | | } |
| | | |
| | | return issueHostingFields; |
| | | })(), |
| | | hostingName : $scope.vm.hostingName, |
| | | hostingCode : $scope.vm.hostingCode, |
| | | hostingManager : $scope.vm.hostingManager, |
| | | hostingTel : $scope.vm.hostingTel, |
| | | hostingEmail :$scope.vm.hostingEmail, |
| | | hostingUrl :$scope.vm.hostingUrl, |
| | | hostingMemo : $scope.vm.hostingMemo, |
| | | |
| | | startCompleteDateRange : $scope.vm.form.startCompleteDateRange, |
| | | detectingDateRange : $scope.vm.form.detectingDateRange, |
| | |
| | | }, |
| | | fileFormDataName : "file" |
| | | }).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | // 연속 등록 체크시 이동하지 않음. |
| | | if ($scope.vm.infiniteAdd) { |
| | | $scope.fn.infiniteAddForm(); |
| | | } |
| | | else { |
| | | $scope.fn.cancel(); |
| | | if (result.data.message.status === "success") { |
| | | |
| | | if ($state.current.name !== "issues.list" || $state.current.name === "issues.list") { |
| | | $state.go("issues.list"); |
| | | } |
| | | } |
| | | |
| | | $rootScope.$broadcast("getIssueList", {}); |
| | | // 연속 등록 체크시 이동하지 않음. |
| | | if ($scope.vm.infiniteAdd) { |
| | | $scope.fn.infiniteAddForm(); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("issue.failedIssueRegistration"), result.data.message.message); // 이슈 등록 실패 |
| | | $scope.fn.cancel(); |
| | | |
| | | if ($state.current.name !== "issues.list" || $state.current.name === "issues.list") { |
| | | $state.go($state.current, {}, {reload : true}); |
| | | // $state.go("issues.list"); |
| | | // $state.go("dashboards.dashboard") |
| | | } |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | $rootScope.$broadcast("getIssueList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("issue.failedIssueRegistration"), result.data.message.message); // 이슈 등록 실패 |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | // 프로젝트 가져오기(전체 프로젝트 일 경우 사용) |
| | | function getProject() { |
| | | var deferred = $q.defer(); |
| | | |
| | | Project.findIssueType($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()}, |
| | | $resourceProvider.getPageContent(0, 1000))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | if ($rootScope.isDefined(result.data.data)) { |
| | | $scope.vm.form.projects.push(result.data.data); |
| | | $scope.vm.projectName = result.data.data.name; |
| | | $scope.fn.getIssueTypeOfProject(); |
| | | $scope.fn.getIssueTypeCustomFields(); |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패 |
| | | } |
| | | |
| | | deferred.resolve(result.data.data); |
| | | }); |
| | | |
| | | return deferred.promise; |
| | | } |
| | | |
| | | // 이슈 유형 목록 |
| | | function getIssueTypes() { |
| | | var deferred = $q.defer(); |
| | | |
| | | if (!$rootScope.isDefined($scope.vm.form.projects) || !$rootScope.isDefined($scope.vm.form.projects[0])) { |
| | | return; |
| | | } |
| | | |
| | | IssueType.find($resourceProvider.getContent({}, |
| | | $resourceProvider.getPageContent(0, 1000))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.issueTypes = result.data.data; |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패 |
| | | } |
| | | |
| | | deferred.resolve(result.data.data); |
| | | }); |
| | | |
| | | return deferred.promise; |
| | | } |
| | | |
| | | // 선택한 프로젝트에 속해있는 이슈유형만 보여주기 (전체 프로젝트 일 경우) |
| | | function getIssueTypeOfProject() { |
| | | var deferred = $q.defer(); |
| | | |
| | | IssueType.find($resourceProvider.getContent({projectId : $scope.vm.form.projects[0].id}, |
| | | $resourceProvider.getPageContent(0, 1000))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.issueTypes = result.data.data; |
| | | |
| | | // option 빈값 방지 |
| | | if ($rootScope.isDefined($scope.vm.issueTypes) && $scope.vm.issueTypes.length > 0) { |
| | | let chk = 0; |
| | | angular.forEach($scope.vm.issueTypes, function (issueType) { |
| | | if (issueType.id.toString() === $scope.vm.form.issueTypeId.toString()) { |
| | | chk ++; |
| | | } |
| | | }); |
| | | if (chk === 0) { |
| | | $scope.vm.form.issueTypeId = null; |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패 |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.priorities = result.data.data; |
| | | $scope.vm.form.priorityId = $scope.vm.priorities[2].id.toString(); |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // 우선순위 목록 조회 실패 |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.severities = result.data.data; |
| | | $scope.vm.form.severityId = $scope.vm.severities[2].id.toString(); |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 중요도 목록 조회 실패 |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | |
| | | $scope.vm.form.issueCustomFields = []; |
| | | angular.forEach(result.data.data, function (issueTypeCustomField) { |
| | | switch (issueTypeCustomField.customFieldVo.customFieldType) { |
| | | case "INPUT" : |
| | | case "NUMBER" : |
| | | case "DATETIME" : |
| | | case "IP_ADDRESS" : |
| | | case "EMAIL" : |
| | | case "SITE" : |
| | | case "TEL" : |
| | | issueTypeCustomField.useValues = issueTypeCustomField.customFieldVo.defaultValue; |
| | | break; |
| | | case "SINGLE_SELECT" : |
| | |
| | | }); |
| | | break; |
| | | } |
| | | |
| | | $scope.vm.form.issueCustomFields.push(issueTypeCustomField); |
| | | }); |
| | | } |
| | |
| | | } |
| | | |
| | | function getPartners() { |
| | | if($scope.vm.form.issueTypeId === "" && $rootScope.issueTypeMenu != null){ |
| | | $scope.vm.form.issueTypeId = $rootScope.issueTypeMenu.id |
| | | } |
| | | var content = { |
| | | issueTypeId : $scope.vm.form.issueTypeId |
| | | issueTypeId : $scope.vm.form.issueTypeId, |
| | | }; |
| | | Issue.findPartners($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.partnerVos = result.data.data; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function getDepartments() { |
| | | if($scope.vm.form.issueTypeId === "" && $rootScope.issueTypeMenu != null){ |
| | | $scope.vm.form.issueTypeId = $rootScope.issueTypeMenu.id |
| | | } |
| | | var content = { |
| | | issueTypeId : $scope.vm.form.issueTypeId, |
| | | }; |
| | | Issue.findReadyDepartments($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | angular.forEach(result.data.data, function (department) { |
| | | department.byName = department.departmentName; |
| | | $scope.vm.form.departments.push(department); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | |
| | | function startExecute() { |
| | | |
| | | var promises = { |
| | | getProject : $scope.fn.getProject(), |
| | | getIssueTypes : $scope.fn.getIssueTypes(), |
| | | getPriorities : $scope.fn.getPriorities(), |
| | | getSeverities : $scope.fn.getSeverities(), |
| | | getPartners : $scope.fn.getPartners() |
| | | getPartners : $scope.fn.getPartners(), |
| | | getDepartments : $scope.fn.getDepartments() |
| | | }; |
| | | $q.all(promises).then(function (results) { |
| | | // 현재 프로젝트 설정 |
| | | if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { |
| | | $scope.vm.projectName = $rootScope.workProject.name; |
| | | $scope.fn.projects = []; |
| | | $scope.fn.projects.push($rootScope.workProject); |
| | | $scope.fn.getProjectList($scope.vm.projectName, $scope.vm.form.projects, $scope.vm.autoCompletePage.project.page, getStartProjectListCallback); |
| | | $scope.vm.form.projects = []; |
| | | $scope.vm.form.projects.push($rootScope.workProject); |
| | | } |
| | | |
| | | // 현재 이슈타입 유형 설정 |
| | | var id = $rootScope.getCurrentIssueTypeId(); |
| | | if (id != null) { |
| | | $scope.vm.form.issueTypeId = id.toString(); |
| | | } |
| | | $log.debug("promises 결과 ", results); |
| | | }); |
| | | } |
| | | |
| | | $scope.fn.startExecute(); |
| | | }]); |
| | | }); |
| | | }); |