/** * Created by Maprex on 2021-06-08 */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('issueModifyDepartmentController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance','$injector', '$controller', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', 'IssueDepartment', '$filter', function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, SweetAlert, $timeout, $stateParams, $q, parameter, IssueDepartment, $filter) { // 함수 모음 $scope.fn = { cancel: cancel, // 팝업 창 닫기 formSubmit: formSubmit, // 폼 전송 formCheck: formCheck, // 폼 체크 removeDepartment : removeDepartment, // 담당부서 삭제 load : load, // 현재 담당자 가져오기 startExecute : startExecute // 시작시 실행 }; // 변수 모음 $scope.vm = { form : { departments : [], // 담당부서 projects : [], issueTypeId : "" }, departmentName : "", // 부서 검색 autoCompletePage : { department : { page : 0, totalPage : 0 } }, }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); // 담당부서 삭제 function removeDepartment(index) { $scope.vm.form.departments.splice(index, 1); } // 담당부서 autocomplete page 업데이트트 function getDepartmentListCallBack(result) { $scope.vm.autoCompletePage.department.totalPage = result.data.page.totalPage; } // 폼 전송 function formCheck(formInvalid) { if (formInvalid) { return true; } return false; } // 폼 전송 function formSubmit() { $rootScope.spinner = true; var content = { id : parameter.id[0], projectId : parameter.projectId[0], departmentIds : (function () { var departmentIds = []; angular.forEach($scope.vm.form.departments, function (department) { departmentIds.push(department.id); }); return departmentIds; })(), }; IssueDepartment.modify($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { $scope.fn.cancel(); $rootScope.$broadcast("getIssueList", {}); if ($rootScope.isDefined($rootScope.currentDetailIssueId)) { $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); } } else { SweetAlert.error($filter("translate")("issue.failedToChangeMultipleIssueStatus"), result.data.message.message); // 다중 이슈 상태 변경 실패 } $rootScope.spinner = false; }); } // 팝업 창 닫기 function cancel() { $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 $uibModalInstance.dismiss('cancel'); $(document).unbind("keydown"); // 단축키 이벤트 제거 } // 최초 실행 function startExecute() { var promises = { users : $scope.fn.load() }; $q.all(promises).then(function (results) { $log.debug("promises 결과 ", results); }); } function load() { $scope.vm.form.projects = []; $scope.vm.form.projects.push(parameter.project[0]); var departmentVos = parameter.departmentVos[0]; if (departmentVos.length > 0 && departmentVos[0] != undefined) { $scope.vm.form.departments = departmentVos; } else { $scope.vm.form.departments = []; } } $scope.fn.startExecute(); }]); });