(function () { "use strict"; angular .module('codeAPLEBOX.client.user.employee.system.settingauthority') .controller('settingauthorityController', settingauthorityController); /* @ngInject */ function settingauthorityController($state, appConfig, $log, $rootScope, WEB_API_EMPLOYEE, Auth, $cookies) { var vm = this; // ======================================================================= // 초기데이터 // ======================================================================= vm.employeeInfo = $cookies.getObject("employeeInfo"); iniData(); // ======================================================================= // Angularjs Function // ======================================================================= vm.saveChangeAuthority = function(){ $rootScope.checkNotSaveSettingauthority = true; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false vm.checkMoveChange = false; $state.go("employee.settingauthority",{}, {reload:true}) } vm.saveChangeAuthorityAndGo = function(){ $rootScope.checkNotSaveSettingauthority = false; if($rootScope.goState == 'employee.settingauthority'){ $state.go($rootScope.goState, {}, {reload: true}); }else{ $state.go($rootScope.goState); } } /* start dialog */ /*vm.checkFirstChange = function(str, check, index){ if(vm.firstChange){ vm.checkDialogFirstChange = true; vm.checkStr = str; vm.checkButton = check; vm.checkIndex = index; } }*/ vm.checkFirstChange = function(str, check, index){ vm.firstChange = false; vm.checkDialogFirstChange = false; $rootScope.checkNotSaveSettingauthority = false; vm.checkMoveChange = true; } vm.clickDialogFirstChange = function(){ vm.firstChange = false; vm.checkDialogFirstChange = false; $rootScope.checkNotSaveSettingauthority = false; vm.checkMoveChange = true; } vm.clickOpenDialogAuthoritySubmit = function(){ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false; vm.checkDialogAuthoritySubmit = true;// 권한 저장 확인 } vm.clickOpenDialogAuthoritySubmitPassword = function(){ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false; vm.checkDialogAuthoritySubmitPassword = true;// 비밀번호 확인 vm.checkPassword = false; vm.password = ''; } vm.clickOpenDialogAuthoritySubmitComplete = function(){ // 비밀번호 확인 if(vm.password == null || vm.password == ""){ alert("비밀번호를 입력해 주세요.") return; }else{ Auth.certifiedPassword({ accountNumber: vm.employeeInfo.accountNumber, password: vm.password }).then(function (info) { if (info.infoCode == '1' || info.infoCode == '2') { //no register vm.checkPassword = true; }else{ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false; WEB_API_EMPLOYEE.updateAuthority({ employeeList: vm.employeeList }).then(function (info) { for(var i = 0; i < vm.employeeList.length; i++){ if(vm.employeeList[i].id == vm.employeeInfo.id){ vm.employeeInfo = _.cloneDeep(vm.employeeList[i]); $cookies.putObject('employeeInfo', vm.employeeInfo); break; } } vm.checkDialogAuthoritySubmitComplete = true;// 저장 완료 }).catch(function (err) { $log.debug(err); }); } }).catch(function (err) { $log.debug(err); }); } } vm.closeDialog = function(){ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false; vm.checkDialogFirstChange = false; } vm.closeDialog_firstCheck = function(){ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogMoveChange = false; vm.checkDialogFirstChange = false; vm.employeeList[vm.checkIndex][vm.checkStr] = vm.checkButton } /* end dialog */ vm.resetBoard = function () { // board 초기화 vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { checkEnable: true, checkInner: null, nameOrEmployeeNumber: null, } vm.orderInfo = null; getEmployeeList(); } vm.iniBoard = function(){ vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 } vm.searchForBoard = function(){ if(vm.searchNameOrEmployeeNumber == null || vm.searchNameOrEmployeeNumber == ''){ vm.searchNameOrEmployeeNumber = null; } vm.searchInfo = { checkEnable: true, checkInner: vm.searchInner, nameOrEmployeeNumber: vm.searchNameOrEmployeeNumber } vm.iniBoard(); getEmployeeList(); } vm.searchForInner = function(check){ // 0: 전체, 1: 공판장, 2: 외부직원 if(check == 0){ vm.searchInner = null; }else if(check == 1){ vm.searchInner = true; }else if(check == 2){ vm.searchInner = false; } vm.searchForBoard(); } vm.searchForNameOrEmployeeNumber = function(check){ if(check == 0){ vm.searchNameOrEmployeeNumber = null; } vm.searchForBoard(); } vm.selectBoardCnt = function(number){ vm.boardCnt = number; vm.iniBoard(); getEmployeeList(); } // ======================================================================= // Common API // ======================================================================= function iniData(){ vm.checkSearchResult = true; vm.firstChange = true; vm.checkMoveChange = false; $rootScope.checkNotSaveSettingauthority = true; $rootScope.checkDialogNotSaveSettingauthority = false; /* dialog */ vm.checkDialogAuthoritySubmit = false;// 권한 저장 확인 vm.checkDialogAuthoritySubmitPassword = false;// 비밀번호 확인 vm.checkDialogAuthoritySubmitComplete = false;// 저장 완료 vm.checkDialogFirstChange = false; vm.checkDialogMoveChange = false; // board 초기화 vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.boardCnt = 15; // 한페이지에 보여지는 콘텐츠 개수 vm.arrowPageCnt = 5; vm.maxShownPageCnt = 5; // 보여지는 최대 페이지 개수 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { checkEnable: true, checkInner: null, nameOrEmployeeNumber: null, } vm.orderInfo = null; vm.searchInner = null; vm.searchNameOrEmployeeNumber = null; getEmployeeList(); } /*start: employeeList*/ function getEmployeeList() { if( vm.searchInfo.checkEnable == null && vm.searchInfo.checkInner== null && vm.searchInfo.nameOrEmployeeNumber== null ){ vm.checkSearchResult = false; }else{ vm.checkSearchResult = true; } WEB_API_EMPLOYEE.getEmployeeList_authority({ curPage: vm.curPage, boardCnt: vm.boardCnt, searchInfo: vm.searchInfo, orderInfo: vm.orderInfo }).then(function (result) { vm.employeeList = result.data.rows; vm.totalBoardLen = result.data.count; vm.pageCnt = Math.ceil(vm.totalBoardLen / vm.boardCnt); if (vm.flag) { if (vm.pageCnt <= vm.maxShownPageCnt) { vm.endRange = vm.pageCnt; } else { vm.endRange = vm.maxShownPageCnt; } } vm.flag = false; }).catch(function (err) { $log.error(err); }); } // ======================================================================= // 페이지 범위 계산 // ======================================================================= vm.pageRange = function (min, max) { var input = []; for (var i = min; i <= max; i += 1) { input.push(i); } return input; }; // ======================================================================= // 버튼클릭 이벤트 // ======================================================================= // clickFirstArrow 클릭 vm.clickFirstArrow = function () { vm.curPage = 1; vm.startRange = 1; if (vm.pageCnt <= vm.maxShownPageCnt) { vm.endRange = vm.pageCnt; } else { vm.endRange = vm.maxShownPageCnt; } getEmployeeList(); }; // clickLastArrow 클릭 vm.clickLastArrow = function () { vm.curPage = vm.pageCnt; vm.endRange = vm.pageCnt; if (vm.pageCnt <= vm.maxShownPageCnt) { vm.startRange = 1; } else { var remainderValue = vm.pageCnt % vm.maxShownPageCnt; var value = vm.maxShownPageCnt - remainderValue; if (remainderValue != 0) { vm.startRange = vm.pageCnt - remainderValue + 1; } else { vm.startRange = vm.endRange; } } getEmployeeList(); }; // leftArrow 클릭 vm.clickLeftArrow = function () { if (vm.curPage > 1) { vm.curPage -= vm.arrowPageCnt; } if (vm.curPage < vm.startRange) { if ((vm.endRange % vm.maxShownPageCnt) != 0) { vm.endRange += (vm.maxShownPageCnt - (vm.endRange % vm.maxShownPageCnt)); } vm.startRange -= vm.arrowPageCnt; vm.endRange = vm.startRange + (vm.arrowPageCnt - 1); } vm.curPage = vm.endRange; getEmployeeList(); }; // rightArrow 클릭 vm.clickRightArrow = function () { if (vm.curPage < vm.pageCnt) { vm.curPage += vm.arrowPageCnt; } if (vm.curPage > vm.endRange) { vm.startRange += vm.arrowPageCnt; vm.endRange += vm.arrowPageCnt; if (vm.endRange >= vm.pageCnt) { vm.endRange = vm.pageCnt; } } vm.curPage = vm.startRange; getEmployeeList(); }; // 페이지 직접 클릭 vm.clickPage = function (index) { vm.curPage = index; getEmployeeList(); }; vm.clickMovepage = function(clickIndex, pageNum){ // checkIndex: 1-> clickLeftArrow, 2 --> clickPage, 3 --> clickRightArrow vm.clickIndex = clickIndex; vm.movePageNum = pageNum; vm.firstChange = true; vm.checkDialogFirstChange = false; $rootScope.checkNotSaveSettingauthority = true; $rootScope.checkDialogNotSaveSettingauthority = false; if(vm.checkMoveChange){ vm.checkDialogMoveChange = true; }else{ vm.checkDialogMoveChange = false; if(clickIndex == 1){ vm.clickLeftArrow(); }else if(clickIndex == 2){ vm.clickPage(pageNum); }else if(clickIndex == 3){ vm.clickRightArrow(); } } } vm.saveChangeAuthorityAndMovePage = function(){ $rootScope.checkDialogNotSaveSettingauthority = false; vm.checkMoveChange = false; vm.checkDialogMoveChange = false; if(vm.clickIndex == 1){ vm.clickLeftArrow(); }else if(vm.clickIndex == 2){ vm.clickPage(vm.movePageNum); }else if(vm.clickIndex == 3){ vm.clickRightArrow(); } } /* end: employeeList*/ } })();