/** * Created by wisestone on 2018-12-10. */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('workspaceUserLevelController', ['$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.getUserLevelList = getUserLevelList; // 사용자 등급 관리 리스트 $scope.fn.makeTableConfigs = makeTableConfigs; // 사용자 등급 관리 목록 테이블 설정 $scope.fn.initSearchUserLevel = initSearchUserLevel; // 검색 조건 초기화 $scope.fn.changePageRowCount = changePageRowCount; // 업무 공간 참여 사용자 목록 보기 개수 변경 $scope.fn.levelAdd = levelAdd; // 등급 추가 $scope.fn.removeLevels = removeLevels; // 사용자 등급 삭제 $scope.fn.makeSearchConditions = makeSearchConditions; /* $scope.vm 상속 중 */ $scope.vm.search = { levelName : "", // 등급명 }; $scope.vm.page = { selectedPage : 0, selectedPageRowCount : String(10) }; $scope.vm.tableConfigs1 = []; $scope.vm.responseData = { data : [] }; // 테이블 이벤트 $scope.tableEvent1 = { modifyLevelPermission : modifyLevelPermission, // 권한 변경 modifyLevel : modifyLevel // 사용자 등급명 변경 }; function modifyLevelPermission(userPermission) { UserWorkspace.modifyLevelPermission($resourceProvider.getContent( userPermission, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { } else { SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "권한 변경 실패" } }); } // 사용자 등급 리스트 불러오기 $scope.$on("getUserLevelList", function () { $scope.fn.getUserLevelList(0); }); function makeSearchConditions() { var conditions = { levelName: $scope.vm.search.levelName } return conditions; } // 사용자 등급 수정 function modifyLevel(id) { $uibModal.open({ templateUrl : 'views/workspace/workspaceLevelModify.html', size : "md", controller : 'workspaceLevelModifyController', backdrop : 'static', resolve : { parameter : function () { return { id : id }; } } }); } // 사용자 등급 삭제 function removeLevels() { var removeIds = []; var removePermission = true; angular.forEach($scope.vm.responseData.data, function (data) { if (data.checked && data.modifyPermissionCheck) { removeIds.push(data.id); } if (data.checked && !data.modifyPermissionCheck) { removePermission = false; } }); if (!removePermission) { SweetAlert.swal({ html : true, title : $filter("translate")("common.deleteFailed"), // 삭제 실패 text : $filter("translate")("managementWorkspace.notHaveDeletePermissionExistsAnLevel"), // 삭제 권한이 없는 등급이 존재 합니다. type : "error" }); return; } if (removeIds.length < 1) { SweetAlert.swal({ title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인 text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요. type : "warning" }); return; } // 삭제 알림 SweetAlert.swal({ title : $filter("translate")("managementWorkspace.deleteLevel"), // 등급 삭제 text : $filter("translate")("managementWorkspace.wantToDeleteSelectLevel"), // 선택한 등급을 삭제하겠습니까? 사용자가 직접 삭제한 등급은 어떠한 경우에도 복구가 불가능합니다. 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.levelRemove($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.getUserLevelList(0); } else { $timeout(function () { SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패 }, 100); } $rootScope.spinner = false; }); } }); } // 검색 조건 초기화 function initSearchUserLevel() { $scope.vm.search.levelName = ""; $scope.fn.getUserLevelList(0); } // 등급 목록 보기 개수 변경 function changePageRowCount() { $scope.fn.getUserLevelList(0); } // 사용자 등급 관리 테이블 설정 function makeTableConfigs() { $scope.vm.tableConfigs1 = []; $scope.vm.tableConfigs1.push($tableProvider.config() .setDType("checkbox") .setHWidth("width-20-p") .setDAlign("text-center")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("managementWorkspace.levelName") .setHWidth("width-120-p") .setDAlign("text-center") .setDType("renderer") .setDRenderer("USER_LEVEL_MODIFY")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageProjectPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("manageProject") .setDRenderer("PROJECT_SETTING_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageIssuePerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("ViewAllIssueAndProject") .setDRenderer("ISSUE_SETTING_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageWorkspacePerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("manageWorkspace") .setDRenderer("WORKSPACE_SETTING_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageIssueSystemPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("IssueSystem") .setDRenderer("ISSUE_SYSTEM_SETTING_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.managePartnerPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("managePartner") .setDRenderer("PARTNER_SETTING_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageApiPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center") .setDName("User") .setDRenderer("API_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageNoticePerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") .setDName("Notice") .setDRenderer("NOTICE_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageFAQPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") .setDName("FAQ") .setDRenderer("FAQ_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageQnAPerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") .setDName("QnA") .setDRenderer("QNA_PERM_YN")); $scope.vm.tableConfigs1.push($tableProvider.config() .setHName("manageUser.manageGuidePerm") .setHWidth("width-120-p") .setDType("renderer") .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") .setDName("Guide") .setDRenderer("GUIDE_PERM_YN")); } // 사용자 등급 관리 목록 조회 function getUserLevelList(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 = { levelName : $scope.vm.search.levelName //등급명 }; //테이블 리스트 데이터 컨트롤러 요청 UserWorkspace.levelFind($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.failedToSelectWorkspaceFullLevelList"), result.data.message.message); // "사용자 등급 목록 조회 실패" } }); } // 등급 추가 function levelAdd() { $uibModal.open({ templateUrl : 'views/workspace/workspaceLevelAdd.html', size : "md", controller : 'workspaceLevelAddController', backdrop : 'static', resolve : { parameter : function () { return { // workspaceId : $scope.vm.workspaceVo.id, // usdKrw : $scope.vm.workspaceVo.usdKrw, // maxUser : $scope.vm.workspaceVo.maxUser }; } } }); } $scope.fn.makeTableConfigs(); $scope.fn.getUserLevelList(); } ]); } );