| | |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', |
| | | 'UserWorkspace', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { |
| | | 'UserWorkspace', '$filter','$timeout', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $timeout) { |
| | | |
| | | |
| | | /* $scope.fn 상속 중 */ |
| | | $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // 업무 공간 전체 사용자 정보 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 업무 공간에 참여하는 전체 사용자 목록 테이블 설정 |
| | | $scope.fn.initSearch = initSearch; // 검색 조건 초기화 |
| | | $scope.fn.getUserLevelList = getUserLevelList; // 사용자 등급 관리 리스트 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 사용자 등급 관리 목록 테이블 설정 |
| | | $scope.fn.initSearchUserLevel = initSearchUserLevel; // 검색 조건 초기화 |
| | | $scope.fn.changePageRowCount = changePageRowCount; // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | $scope.fn.add = add; // 등급 추가 |
| | | $scope.fn.levelAdd = levelAdd; // 등급 추가 |
| | | $scope.fn.removeLevels = removeLevels; // 사용자 등급 삭제 |
| | | $scope.fn.makeSearchConditions = makeSearchConditions; |
| | | |
| | | |
| | | /* $scope.vm 상속 중 */ |
| | | $scope.vm.search = { |
| | | name : "", // 이름 |
| | | account : "", // 이메일 |
| | | statuses : [] // 상태 - Y, N |
| | | levelName : "", // 등급명 |
| | | }; |
| | | |
| | | $scope.vm.options = { |
| | | statuses : [{ |
| | | fieldKey : "Y", |
| | | fieldValue : $filter("translate")("managementWorkspace.participation") // "참여" |
| | | }, { |
| | | fieldKey : "N", |
| | | //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "참여대기" |
| | | fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴" |
| | | }] |
| | | }; |
| | | |
| | | $scope.vm.page = { |
| | | selectedPage : 0, |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.tableConfigs = []; |
| | | $scope.vm.tableConfigs1 = []; |
| | | $scope.vm.responseData = { |
| | | data : [] |
| | | }; |
| | | |
| | | // 테이블 이벤트 |
| | | $scope.vm.tableEvent = { |
| | | modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | $scope.tableEvent1 = { |
| | | modifyLevelPermission : modifyLevelPermission, // 권한 변경 |
| | | modifyLevel : modifyLevel // 사용자 등급명 변경 |
| | | }; |
| | | |
| | | // 결제 상세 정보 |
| | | $scope.$on("getUserWorkspaceList", function () { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | }); |
| | | |
| | | // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | function modifyUserWorkspace(userWorkspace) { |
| | | UserWorkspace.modify($resourceProvider.getContent( |
| | | userWorkspace, |
| | | function modifyLevelPermission(userPermission) { |
| | | UserWorkspace.modifyLevelPermission($resourceProvider.getContent( |
| | | userPermission, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | // 내가 관리하는 업무 공간 정보를 조회한다. |
| | | $scope.fn.findMyWorkspace(); |
| | | |
| | | } |
| | | else { |
| | | userWorkspace.useYn = false; |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "참여 상태 변경 실패" |
| | | 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 initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.vm.search.account = ""; |
| | | $scope.vm.search.statuses = []; |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | function initSearchUserLevel() { |
| | | $scope.vm.search.levelName = ""; |
| | | $scope.fn.getUserLevelList(0); |
| | | } |
| | | |
| | | // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | // 등급 목록 보기 개수 변경 |
| | | function changePageRowCount() { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | $scope.fn.getUserLevelList(0); |
| | | } |
| | | |
| | | // 업무공간 전체 사용자 목록 테이블 설정 |
| | | // 사용자 등급 관리 테이블 설정 |
| | | function makeTableConfigs() { |
| | | $scope.vm.tableConfigs = []; |
| | | $scope.vm.tableConfigs1 = []; |
| | | |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.name") |
| | | $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") |
| | | .setDName("userName")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.email") |
| | | .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("account")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.department") |
| | | .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("department")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.level") |
| | | .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("level")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("managementWorkspace.joinStatus") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .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("userYn") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | .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 getUserWorkspaceList(selectedPage) { |
| | | // 사용자 등급 관리 목록 조회 |
| | | function getUserLevelList(selectedPage) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | |
| | | } |
| | | |
| | | var conditions = { |
| | | name : $scope.vm.search.name, |
| | | account : $scope.vm.search.account, |
| | | statuses : (function () { |
| | | var statuses = []; |
| | | |
| | | angular.forEach($scope.vm.search.statuses, function (status) { |
| | | statuses.push(status.fieldKey); |
| | | }); |
| | | |
| | | return statuses; |
| | | })(), |
| | | levelName : $scope.vm.search.levelName //등급명 |
| | | }; |
| | | |
| | | UserWorkspace.find($resourceProvider.getContent(conditions, |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | UserWorkspace.levelFind($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | |
| | | $scope.vm.responseData = result.data; |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "업무 공간 전체 사용자 목록 조회 실패" |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullLevelList"), result.data.message.message); // "사용자 등급 목록 조회 실패" |
| | | } |
| | | }); |
| | | } |
| | | $scope.fn.makeTableConfigs(); |
| | | |
| | | // 등급 추가 |
| | | function add() { |
| | | function levelAdd() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/workspace/workspaceLevelAdd.html', |
| | | size : "md", |
| | | //controller : 'workspaceLevelAddController', |
| | | backdrop : 'static' |
| | | /*resolve : { |
| | | controller : 'workspaceLevelAddController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | workspaceId : $scope.vm.workspaceVo.id, |
| | | usdKrw : $scope.vm.workspaceVo.usdKrw, |
| | | maxUser : $scope.vm.workspaceVo.maxUser |
| | | // workspaceId : $scope.vm.workspaceVo.id, |
| | | // usdKrw : $scope.vm.workspaceVo.usdKrw, |
| | | // maxUser : $scope.vm.workspaceVo.maxUser |
| | | }; |
| | | } |
| | | }*/ |
| | | } |
| | | }); |
| | | } |
| | | |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getUserLevelList(); |
| | | } |
| | | ]); |
| | | } |