/** * Created by wisestone on 2018-12-10. */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('workspaceDepartmentConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', 'UserWorkspace', '$filter', '$timeout', function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $timeout) { /* $scope.fn 상속 중 */ $scope.fn.getDepartmentList = getDepartmentList; // 부서 관리 리스트 $scope.fn.makeTableConfigs = makeTableConfigs; // 부서 관리 목록 테이블 설정 $scope.fn.initSearchDepartment = initSearchDepartment; // 검색 조건 초기화 $scope.fn.departmentAdd = departmentAdd; // 부서 추가 $scope.fn.removes = removes; // 부서 삭제 /* $scope.vm 상속 중 */ $scope.vm.search = { departmentName : "", // 부서명 }; $scope.vm.page = { selectedPage : 0, selectedPageRowCount : String(10) }; $scope.vm.tableConfigs2 = []; $scope.vm.responseData = { data : [] }; // 테이블 이벤트 $scope.vm.tableEvent2 = { departmentModify : departmentModify, //부서명 변경 modifyDepartmentCount : modifyDepartmentCount //부서 팀원 변경 }; // 부서 관리 리스트 불러오기 $scope.$on("getDepartmentList", function () { $scope.fn.getDepartmentList(0); }); // 검색 조건 초기화 function initSearchDepartment() { $scope.vm.search.departmentName = ""; $scope.fn.getDepartmentList(0); } // 부서 관리 테이블 설정 function makeTableConfigs() { $scope.vm.tableConfigs2 = []; $scope.vm.tableConfigs2.push($tableProvider.config() .setDType("checkbox") .setHWidth("width-20-p") .setDAlign("text-center")); $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentName") .setHWidth("width-120-p") .setDAlign("text-center") .setDName("departmentName") .setDType("renderer") .setDRenderer("DEPARTMENT_MODIFY")); $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentEx") .setHWidth("width-120-p") .setDAlign("text-center") .setDName("departmentDescription")); $scope.vm.tableConfigs2.push($tableProvider.config() .setHName("manageDepartment.departmentCount") .setHWidth("width-120-p") .setDAlign("text-center") .setDName("departmentCount") .setDType("renderer") .setDRenderer("DEPARTMENT_COUNT")); } // 부서 관리 목록 조회 function getDepartmentList(selectedPage) { if (selectedPage < 0) { selectedPage = 0; } // 현재 페이지 정보 var currentPage = 0; // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 if (angular.isUndefined(selectedPage) || selectedPage === "") { currentPage = $scope.vm.page.selectedPage; } else { currentPage = selectedPage; } var conditions = { departmentName : $scope.vm.search.departmentName //부서명 }; //테이블 리스트 데이터 컨트롤러 요청 UserWorkspace.departmentFind($resourceProvider.getContent(conditions, $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { if (result.data.message.status === "success") { $scope.vm.page.selectedPage = currentPage + 1; $scope.vm.responseData = result.data; } else { SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "업무 공간 전체 사용자 목록 조회 실패" } }); } // 부서 추가 function departmentAdd() { $uibModal.open({ templateUrl : 'views/workspace/workspaceDepartmentAdd.html', size : "md", controller : 'workspaceDepartmentAddController', backdrop : 'static', resolve : { parameter : function () { return { /*workspaceId : $scope.vm.workspaceVo.id, usdKrw : $scope.vm.workspaceVo.usdKrw, maxUser : $scope.vm.workspaceVo.maxUser*/ }; } } }); } // 부서 수정 function departmentModify(id) { $uibModal.open({ templateUrl : 'views/workspace/workspaceDepartmentModify.html', size : "md", controller : 'departmentModifyController', backdrop : 'static', resolve : { parameter : function () { return { id : id }; } } }); } // 부서 인원 수정 function modifyDepartmentCount(id) { $uibModal.open({ templateUrl : 'views/workspace/workspaceDepartmentCountModify.html', size : "md", controller : 'departmentCountModifyController', backdrop : 'static', resolve : { parameter : function () { return { id : id }; } } }); } // 사용자 정의 필드 삭제 팝업 function removes() { var removeIds = []; angular.forEach($scope.vm.responseData.data, function (data) { if (data.checked) { removeIds.push(data.id); } }); if (removeIds.length < 1) { SweetAlert.swal({ title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인 text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요. type : "warning" }); return; } // 삭제 알림 SweetAlert.swal({ title : $filter("translate")("customField.deleteUserDefinedFields"), // "사용자 정의 필드 삭제" text : $filter("translate")("customField.wantToDeleteSelectUserDefinedFields"), // "선택한 사용자 정의 필드를 삭제하겠습니까? 삭제된 사용자 정의 필드는 복구할 수 없습니다." 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; UserWorkspace.departmentRemove($resourceProvider.getContent( { removeIds : removeIds }, $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.getDepartmentList(0); } else { $timeout(function () { SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패 }, 100); } $rootScope.spinner = false; }); } }); } $scope.fn.makeTableConfigs(); $scope.fn.getDepartmentList(); } ]); } );