| | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | // 업무공간 조회 |
| | | // 사용자 등급 조회 |
| | | @RequestMapping(value = "/workspace/levelFind", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> levelFind() { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | this.workspaceService.find(resJsonData); |
| | | //this.workspaceService.levelFind(resJsonData); |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 부서 조회 |
| | | @RequestMapping(value = "/workspace/departmentFind", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> departmentFind() { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | this.workspaceService.find(resJsonData); |
| | | //this.workspaceService.departmentFind(resJsonData); |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 사용자 관리 조회 |
| | | @RequestMapping(value = "/workspace/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | |
| | | "workspaceUserLevelManagement" : "사용자 등급 관리", |
| | | "addLevel" : "등급 추가", |
| | | "levelName" : "등급명", |
| | | "failedLevelRegistration" : "사용자 등급 등록 실패", |
| | | "read" : "읽기", |
| | | "write" : "쓰기", |
| | | "departmentManagement" : "부서 관리", |
| | | "addDepartment" : "부서 추가", |
| | | "myWorkspace": "OWL 정보", |
| | | "workspaceInformation": "기본 정보", |
| | | "serviceStatus": "서비스 상태", |
| | |
| | | "manageUser": { |
| | | "manageUser": "사용자 권한 관리", |
| | | "manageProjectPerm": "프로젝트 관리", |
| | | "manageIssueSystemPerm": "이슈 시스템", |
| | | "manageUserPerm": "사용자", |
| | | "manageNoticePerm": "공지사항", |
| | | "manageFAQPerm": "FAQ", |
| | | "manageQnAPerm": "QnA", |
| | | "manageEventPerm": "이벤트", |
| | | "manageGuidePerm": "가이드" |
| | | "manageIssueSystemPerm": "이슈 시스템 관리", |
| | | "manageUserPerm": "사용자 관리", |
| | | "manageNoticePerm": "공지사항 관리", |
| | | "manageFAQPerm": "FAQ 관리", |
| | | "manageQnAPerm": "QnA 관리", |
| | | "manageEventPerm": "이벤트 관리", |
| | | "manageGuidePerm": "가이드 관리" |
| | | }, |
| | | "manageDepartment": { |
| | | "manageDepartment": "부서 관리", |
| | | "departmentName": "부서명", |
| | | "departmentEx": "부서설명", |
| | | "departmentCount": "부서인원" |
| | | }, |
| | | "FAQ": { |
| | | "FAQ": "FAQ", |
| | |
| | | "emptyProject": "선택할 수 있는 프로젝트가 없습니다.", |
| | | "emptyIssue": "선택할 수 있는 이슈가 없습니다.", |
| | | "department" : "부서", |
| | | "level" : "사용자 등급" |
| | | "level" : "사용자 등급", |
| | | "manageDepartment": "부서 관리", |
| | | "departmentName": "부서명", |
| | | "departmentEx": "부서설명", |
| | | "departmentCount": "부서인원" |
| | | }, |
| | | "tasks": { |
| | | "agileBoardTitle": "칸반 보드" |
| | |
| | | |
| | | $scope.fn = { |
| | | changeTab : changeTab, // 탭 변경 |
| | | findMyWorkspace : findMyWorkspace // 내가 관리하는 업무 공간 정보 |
| | | findMyWorkspace : findMyWorkspace, // 내가 관리하는 업무 공간 정보 |
| | | findUserLevel : findUserLevel, // 사용자 등급 |
| | | findDepartment : findDepartment // 부서 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | |
| | | $scope.fn.findMyWorkspace(); |
| | | }); |
| | | |
| | | // 사용자 등급 정보 갱신 |
| | | $scope.$on("findUserLevel", function () { |
| | | $scope.fn.findUserLevel(); |
| | | }); |
| | | |
| | | // 부서 정보 갱신 |
| | | $scope.$on("findDepartment", function () { |
| | | $scope.fn.findDepartment(); |
| | | }); |
| | | |
| | | // 탭 변경 |
| | | function changeTab(tab) { |
| | | $scope.vm.tab = tab; |
| | |
| | | if (tab === "USER_CONFIG") { |
| | | $scope.fn.findMyWorkspace(); |
| | | $scope.$broadcast("getUserWorkspaceList"); |
| | | }else if (tab === "USER_LEVEL_CONFIG") { |
| | | //$scope.fn.findMyWorkspace(); |
| | | $scope.fn.findUserLevel(); |
| | | $scope.$broadcast("getUserLevelList"); |
| | | }else if (tab === "DEPARTMENT_CONFIG") { |
| | | //$scope.fn.findMyWorkspace(); |
| | | $scope.fn.findDepartment(); |
| | | $scope.$broadcast("getDepartmentList"); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | $scope.fn.findMyWorkspace(); |
| | | |
| | | // 사용자 등급을 조회한다. |
| | | function findUserLevel() { |
| | | Workspace.findUserLevel($resourceProvider.getContent( |
| | | {}, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | if (result.data.data != null) { |
| | | /*$scope.vm.workspaceVo = result.data.data; |
| | | // 참여 가능 사용자 수 |
| | | $scope.vm.workspaceVo.includeUserCount = $scope.vm.workspaceVo.maxUser - $scope.vm.workspaceVo.activeUser;*/ |
| | | |
| | | /*if ($scope.vm.workspaceVo.includeUserCount < 0) { |
| | | $scope.vm.workspaceVo.includeUserCount = 0; |
| | | }*/ |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceInformation"), result.data.message.message); // "자신이 관리하는 업무 공간 정보 조회 실패" |
| | | } |
| | | }); |
| | | } |
| | | $scope.fn.findUserLevel(); |
| | | |
| | | // 부서를 조회한다. |
| | | function findDepartment() { |
| | | Workspace.findDepartment($resourceProvider.getContent( |
| | | {}, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | if (result.data.data != null) { |
| | | /*$scope.vm.workspaceVo = result.data.data; |
| | | // 참여 가능 사용자 수 |
| | | $scope.vm.workspaceVo.includeUserCount = $scope.vm.workspaceVo.maxUser - $scope.vm.workspaceVo.activeUser;*/ |
| | | |
| | | /*if ($scope.vm.workspaceVo.includeUserCount < 0) { |
| | | $scope.vm.workspaceVo.includeUserCount = 0; |
| | | }*/ |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceInformation"), result.data.message.message); // "자신이 관리하는 업무 공간 정보 조회 실패" |
| | | } |
| | | }); |
| | | } |
| | | $scope.fn.findDepartment(); |
| | | } |
| | | ]); |
| | | } |
| | |
| | | resolve : { |
| | | loadController : ["$q", function ($q) { |
| | | var deferred = $q.defer(); |
| | | require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController", |
| | | "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', |
| | | require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspaceDepartmentAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController", |
| | | "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', 'summerNote', 'summerNote-ko-KR', |
| | | "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController"], function () { |
| | | deferred.resolve(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-02-19. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app' |
| | | ], |
| | | function (app) { |
| | | app.controller('workspaceDepartmentAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | form : { |
| | | title : "", |
| | | description : "" |
| | | }, |
| | | options : { |
| | | callbacks : { |
| | | onImageUpload : function (data) { |
| | | data.pop(); |
| | | } |
| | | }, |
| | | disableDragAndDrop : true, |
| | | shortcuts : true, |
| | | toolbar : [ |
| | | ['headline', ['style']], |
| | | ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], |
| | | ['fontface', ['fontname', 'fontsize']], |
| | | ['insert', ['link', 'video']], |
| | | ['fontclr', ['color']], |
| | | ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], |
| | | ['table', ['table']], |
| | | ['view', ['redo', 'undo']] |
| | | ], |
| | | keyMap : { |
| | | pc : { |
| | | 'ENTER' : 'insertParagraph', |
| | | 'CTRL+Z' : 'undo', |
| | | 'CTRL+Y' : 'redo', |
| | | /*'TAB': 'tab',*/ |
| | | 'SHIFT+TAB' : 'untab', |
| | | 'CTRL+B' : 'bold', |
| | | 'CTRL+I' : 'italic', |
| | | 'CTRL+U' : 'underline', |
| | | 'CTRL+SHIFT+S' : 'strikethrough', |
| | | 'CTRL+BACKSLASH' : 'removeFormat', |
| | | 'CTRL+SHIFT+L' : 'justifyLeft', |
| | | 'CTRL+SHIFT+E' : 'justifyCenter', |
| | | 'CTRL+SHIFT+R' : 'justifyRight', |
| | | 'CTRL+SHIFT+J' : 'justifyFull', |
| | | 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', |
| | | 'CTRL+SHIFT+NUM8' : 'insertOrderedList', |
| | | 'CTRL+LEFTBRACKET' : 'outdent', |
| | | 'CTRL+RIGHTBRACKET' : 'indent', |
| | | 'CTRL+NUM0' : 'formatPara', |
| | | 'CTRL+NUM1' : 'formatH1', |
| | | 'CTRL+NUM2' : 'formatH2', |
| | | 'CTRL+NUM3' : 'formatH3', |
| | | 'CTRL+NUM4' : 'formatH4', |
| | | 'CTRL+NUM5' : 'formatH5', |
| | | 'CTRL+NUM6' : 'formatH6', |
| | | 'CTRL+ENTER' : 'insertHorizontalRule', |
| | | 'CTRL+K' : 'linkDialog.show' |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 폼 체크 |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | title : $rootScope.preventXss($scope.vm.form.title), |
| | | description : $rootScope.preventXss($scope.vm.form.description) |
| | | }; |
| | | |
| | | Workspace.departmentAdd($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getDepartmentList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedLevelRegistration"), result.data.message.message); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | } |
| | | |
| | | ]); |
| | | } |
| | | ); |
| | |
| | | |
| | | |
| | | /* $scope.fn 상속 중 */ |
| | | $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // 업무 공간 전체 사용자 정보 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 업무 공간에 참여하는 전체 사용자 목록 테이블 설정 |
| | | $scope.fn.getDepartmentList = getDepartmentList; // 부서 관리 리스트 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 부서 관리 목록 테이블 설정 |
| | | $scope.fn.initSearch = initSearch; // 검색 조건 초기화 |
| | | $scope.fn.changePageRowCount = changePageRowCount; // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | |
| | | $scope.fn.departmentAdd = departmentAdd; // 부서 추가 |
| | | |
| | | /* $scope.vm 상속 중 */ |
| | | $scope.vm.search = { |
| | | name : "", // 이름 |
| | | account : "", // 이메일 |
| | | statuses : [] // 상태 - Y, N |
| | | }; |
| | | |
| | | $scope.vm.options = { |
| | | statuses : [{ |
| | | fieldKey : "Y", |
| | | fieldValue : $filter("translate")("managementWorkspace.participation") // "참여" |
| | | }, { |
| | | fieldKey : "N", |
| | | //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "참여대기" |
| | | fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴" |
| | | }] |
| | | departmentName : "", // 부서명 |
| | | }; |
| | | |
| | | $scope.vm.page = { |
| | |
| | | |
| | | // 테이블 이벤트 |
| | | $scope.vm.tableEvent = { |
| | | modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | // modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | view : view |
| | | }; |
| | | |
| | | // 결제 상세 정보 |
| | | $scope.$on("getUserWorkspaceList", function () { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | // 부서 관리 리스트 불러오기 |
| | | $scope.$on("getDepartmentList", function () { |
| | | $scope.fn.getDepartmentList(0); |
| | | }); |
| | | |
| | | // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | function modifyUserWorkspace(userWorkspace) { |
| | | UserWorkspace.modify($resourceProvider.getContent( |
| | | userWorkspace, |
| | | $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); // "참여 상태 변경 실패" |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 검색 조건 초기화 |
| | | function initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.vm.search.account = ""; |
| | | $scope.vm.search.statuses = []; |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | } |
| | | |
| | | // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | function changePageRowCount() { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | } |
| | | |
| | | // 업무공간 전체 사용자 목록 테이블 설정 |
| | | // 부서 관리 테이블 설정 |
| | | function makeTableConfigs() { |
| | | $scope.vm.tableConfigs = []; |
| | | |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.name") |
| | | .setDType("checkbox") |
| | | .setHWidth("width-20-p") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("manageDepartment.departmentName") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("userName")); |
| | | .setDName("levelName")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.email") |
| | | .setHName("manageDepartment.departmentEx") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("account")); |
| | | .setDName("manageProject")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.department") |
| | | .setHName("manageDepartment.departmentCount") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("department")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.level") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("level")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("managementWorkspace.joinStatus") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") |
| | | .setDName("userYn") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | .setDName("IssueSystem")); |
| | | } |
| | | |
| | | // 업무 공간 전체 사용자 목록 조회 |
| | | function getUserWorkspaceList(selectedPage) { |
| | | // 부서 관리 목록 조회 |
| | | function getDepartmentList(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; |
| | | })(), |
| | | name : $scope.vm.search.departmentName //부서명 |
| | | }; |
| | | |
| | | UserWorkspace.find($resourceProvider.getContent(conditions, |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | //UserWorkspace.findDepartment($resourceProvider.getContent(conditions, |
| | | UserWorkspace.departmentFind($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 부서 추가 |
| | | 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*/ |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getDepartmentList(); |
| | | |
| | | } |
| | | ]); |
| | | } |
| | |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app', |
| | | 'angular' |
| | | 'app' |
| | | ], |
| | | function (app, angular) { |
| | | function (app) { |
| | | app.controller('workspaceLevelAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Payment, $filter, parameter, $timeout) { |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) { |
| | | |
| | | $scope.fn = { |
| | | //add : add, // 등급 추가 |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | formSubmit : formSubmit |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | form : { |
| | | /*workspaceId : parameter.workspaceId, |
| | | usdKrw : parameter.usdKrw, |
| | | maxUser : parameter.maxUser, |
| | | buyUser : "", |
| | | type : "MONTH", |
| | | cardNumber1 : "", |
| | | cardNumber2 : "", |
| | | cardNumber3 : "", |
| | | cardNumber4 : "", |
| | | expireMonth : "", |
| | | expireYear : "", |
| | | expireYearTmp : "", |
| | | birth : "", |
| | | cardPwd : "", |
| | | paymentAmountTemp : "", // 클라이언트에서 사용자 수를 변경할 때 보여줄 결제 금액 - 금액은 서버에서 다시 계산한다. |
| | | confirm : false // 약관 동의*/ |
| | | }, |
| | | viewAgreeTerm : false |
| | | levelName : "", |
| | | permProjectSetting : "", |
| | | permIssueSetting : "", |
| | | permUser : "", |
| | | permNotice : "", |
| | | permFAQ : "", |
| | | permQnA : "", |
| | | permGuide : "" |
| | | } |
| | | }; |
| | | |
| | | // 사용자 가격 보기 |
| | | /*$scope.$watch("vm.form.buyUser", function (newValue) { |
| | | |
| | | if ($rootScope.isDefined(newValue)) { |
| | | var totalAmount = (BILLING_AMOUNT * $scope.vm.form.usdKrw * newValue); |
| | | var discount = 0; |
| | | |
| | | if (newValue > 99) { |
| | | var sale = newValue * 0.01; |
| | | discount = (totalAmount * (sale/100)); |
| | | } |
| | | |
| | | $scope.vm.form.paymentAmountTemp = Math.floor(totalAmount - discount); |
| | | // 폼 체크 |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | else { |
| | | $scope.vm.form.paymentAmountTemp = 0; |
| | | } |
| | | });*/ |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | /*function formSubmit() { |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | $scope.vm.form.expireYear = "20" + $scope.vm.form.expireYearTmp; |
| | | var content = angular.copy($scope.vm.form); |
| | | var content = { |
| | | title : $rootScope.preventXss($scope.vm.form.levelName), |
| | | description : $rootScope.preventXss($scope.vm.form.description) |
| | | }; |
| | | |
| | | // 암호화 시간동안 프로그래스바 못올리는 현상 수정 |
| | | $timeout(function () { |
| | | content.cardNumber1 = $rootScope.encryption($scope.vm.form.cardNumber1); |
| | | content.cardNumber2 = $rootScope.encryption($scope.vm.form.cardNumber2); |
| | | content.cardNumber3 = $rootScope.encryption($scope.vm.form.cardNumber3); |
| | | content.cardNumber4 = $rootScope.encryption($scope.vm.form.cardNumber4); |
| | | content.expireMonth = $rootScope.encryption($scope.vm.form.expireMonth); |
| | | content.expireYear = $rootScope.encryption($scope.vm.form.expireYear); |
| | | content.cardPwd = $rootScope.encryption($scope.vm.form.cardPwd); |
| | | content.birth = $rootScope.encryption($scope.vm.form.birth); |
| | | Workspace.levelAdd($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | | Payment.immediateAddUser($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | SweetAlert.success($filter("translate")("managementWorkspace.paymentCompleted"), result.data.message.message); // "추가 결제 성공" |
| | | // 결제 및 업무 공간 정보 화면 갱신 |
| | | $rootScope.$broadcast("findMyWorkspace", {}); |
| | | $rootScope.$broadcast("getPaymentDetail", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToRegularPaymentChange"), result.data.message.message); // "추가 결제 실패" |
| | | } |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getUserLevelList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedLevelRegistration"), result.data.message.message); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | }, 100); |
| | | }*/ |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | // 사용자 수 변경 |
| | | /*function changeBuyUser(changeType) { |
| | | if (changeType === "PLUS") { |
| | | if ($scope.vm.form.buyUser < 999) { |
| | | $scope.vm.form.buyUser++; |
| | | } |
| | | } |
| | | else { |
| | | if ($scope.vm.form.buyUser > 1) { |
| | | $scope.vm.form.buyUser--; |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | // 폼 체크 |
| | | /*function formCheck() { |
| | | if (!$scope.vm.form.confirm) { |
| | | return true; |
| | | } |
| | | |
| | | if (!$rootScope.isDefined($scope.vm.form.cardNumber1) || !$rootScope.isDefined($scope.vm.form.cardNumber2) || !$rootScope.isDefined($scope.vm.form.cardNumber3) |
| | | || !$rootScope.isDefined($scope.vm.form.cardNumber4) || !$rootScope.isDefined($scope.vm.form.expireMonth) || !$rootScope.isDefined($scope.vm.form.expireYearTmp) |
| | | || !$rootScope.isDefined($scope.vm.form.birth) || !$rootScope.isDefined($scope.vm.form.cardPwd) || !$rootScope.isDefined($scope.vm.form.type)) { |
| | | return true; |
| | | } |
| | | |
| | | if ($scope.vm.form.cardNumber1.length !== 4 || $scope.vm.form.cardNumber2.length !== 4 || $scope.vm.form.cardNumber3.length !== 4 || $scope.vm.form.cardNumber4.length !== 4 |
| | | || $scope.vm.form.expireMonth.length !== 2 || $scope.vm.form.expireYearTmp.length !== 2 || $scope.vm.form.birth.length < 6 || $scope.vm.form.cardPwd.length !== 2) { |
| | | return true; |
| | | } |
| | | |
| | | // 사용자 수는 1명 이상이어야 한다. |
| | | if ($scope.vm.form.buyUser < 1) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | }*/ |
| | | } |
| | | |
| | | ]); |
| | |
| | | .setHName("common.department") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("department")); |
| | | .setDType("renderer") |
| | | .setDName("department") |
| | | .setDRenderer("DEPARTMENT_OPTION")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.level") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("level")); |
| | | .setDType("renderer") |
| | | .setDName("level") |
| | | .setDRenderer("LEVEL_OPTION")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("managementWorkspace.joinStatus") |
| | | .setHWidth("width-140-p") |
| | |
| | | } |
| | | |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getUserWorkspaceList(); |
| | | } |
| | | ]); |
| | | } |
| | |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', |
| | | 'UserWorkspace', '$filter', |
| | | 'UserWorkspace', 'Workspace', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { |
| | | |
| | | |
| | | /* $scope.fn 상속 중 */ |
| | | $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // 업무 공간 전체 사용자 정보 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 업무 공간에 참여하는 전체 사용자 목록 테이블 설정 |
| | | $scope.fn.getUserLevelList = getUserLevelList; // 사용자 등급 관리 리스트 |
| | | $scope.fn.makeTableConfigs = makeTableConfigs; // 사용자 등급 관리 목록 테이블 설정 |
| | | $scope.fn.initSearch = initSearch; // 검색 조건 초기화 |
| | | $scope.fn.changePageRowCount = changePageRowCount; // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | $scope.fn.add = add; // 등급 추가 |
| | | $scope.fn.levelAdd = levelAdd; // 등급 추가 |
| | | |
| | | /* $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, |
| | |
| | | |
| | | // 테이블 이벤트 |
| | | $scope.vm.tableEvent = { |
| | | modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | // modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | view : view |
| | | }; |
| | | |
| | | // 결제 상세 정보 |
| | | $scope.$on("getUserWorkspaceList", function () { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | // 사용자 등급 리스트 불러오기 |
| | | $scope.$on("getUserLevelList", function () { |
| | | $scope.fn.getUserLevelList(0); |
| | | }); |
| | | |
| | | // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | function modifyUserWorkspace(userWorkspace) { |
| | | UserWorkspace.modify($resourceProvider.getContent( |
| | | userWorkspace, |
| | | $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); // "참여 상태 변경 실패" |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 검색 조건 초기화 |
| | | function initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.vm.search.account = ""; |
| | | $scope.vm.search.statuses = []; |
| | | //$scope.vm.search.name = ""; |
| | | //$scope.vm.search.account = ""; |
| | | //$scope.vm.search.statuses = []; |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | } |
| | | |
| | | // 업무 공간 참여 사용자 목록 보기 개수 변경 |
| | | function changePageRowCount() { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | } |
| | | |
| | | // 업무공간 전체 사용자 목록 테이블 설정 |
| | | // 사용자 등급 관리 테이블 설정 |
| | | function makeTableConfigs() { |
| | | $scope.vm.tableConfigs = []; |
| | | |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.name") |
| | | .setDType("checkbox") |
| | | .setHWidth("width-20-p") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("managementWorkspace.levelName") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("userName")); |
| | | .setDName("levelName")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.email") |
| | | .setHName("manageUser.manageProjectPerm") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("account")); |
| | | .setDName("manageProject") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.department") |
| | | .setHName("manageUser.manageIssueSystemPerm") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("department")); |
| | | .setDName("IssueSystem") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.level") |
| | | .setHName("manageUser.manageUserPerm") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("level")); |
| | | .setDName("User") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("managementWorkspace.joinStatus") |
| | | .setHName("manageUser.manageNoticePerm") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") |
| | | .setDName("userYn") |
| | | .setDName("Notice") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("manageUser.manageFAQPerm") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") |
| | | .setDName("FAQ") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("manageUser.manageQnAPerm") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") |
| | | .setDName("QnA") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("manageUser.manageGuidePerm") |
| | | .setHWidth("width-140-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") |
| | | .setDName("Guide") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | } |
| | | |
| | | // 업무 공간 전체 사용자 목록 조회 |
| | | function getUserWorkspaceList(selectedPage) { |
| | | // 사용자 등급 관리 목록 조회 |
| | | function getUserLevelList(selectedPage) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | |
| | | currentPage = selectedPage; |
| | | } |
| | | |
| | | 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; |
| | | })(), |
| | | var conditions = { |
| | | name : $scope.vm.search.levelName //등급명 |
| | | }; |
| | | |
| | | UserWorkspace.find($resourceProvider.getContent(conditions, |
| | | |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | //UserWorkspace.findLevel($resourceProvider.getContent(conditions, |
| | | Workspace.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.failedToSelectWorkspaceFullUserList"), 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(); |
| | | } |
| | | ]); |
| | | } |
| | |
| | | ], function (app) { |
| | | app.factory("Workspace", ['$http', '$log', function ($http, $log) { |
| | | return { |
| | | levelFind : function (conditions) { |
| | | return $http.post("workspace/levelFind", conditions).then(function (response) { |
| | | $log.debug("사용자 등급 목록 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentFind : function (conditions) { |
| | | return $http.post("workspace/departmentFind", conditions).then(function (response) { |
| | | $log.debug("부서 목록 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | find : function (conditions) { |
| | | return $http.post("workspace/find", conditions).then(function (response) { |
| | | $log.debug("업무공간 목록 데이터 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | levelAdd : function (conditions) { |
| | | return $http.post("workspace/levelAdd", conditions).then(function (response) { |
| | | $log.debug("사용자 등급 생성 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentAdd : function (conditions) { |
| | | return $http.post("workspace/departmentAdd", conditions).then(function (response) { |
| | | $log.debug("부서 생성 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | |
| | | return response; |
| | | }); |
| | | }, |
| | | findUserLevel : function (conditions) { //사용자 등급 |
| | | return $http.post("workspace/levelFind", conditions).then(function (response) { |
| | | $log.debug("사용자 등급 정보 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | findDepartment : function (conditions) { //부서 |
| | | return $http.post("workspace/departmentFind", conditions).then(function (response) { |
| | | $log.debug("사용자 등급 정보 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("workspace/modify", conditions).then(function (response) { |
| | | $log.debug("업무공간 수정 결과 : ", response); |
| | |
| | | 'workspacePaymentAgreeTermController' : 'app/workspace/workspacePaymentAgreeTerm.controller', // 업무 공간 이용 약관 확인 컨트롤러 |
| | | 'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller', // 사용자 관리 컨트롤러 |
| | | 'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller', // 사용자 등급 추가 컨트롤러 |
| | | 'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller', // 부서 추가 컨트롤러 |
| | | 'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller', // 사용자 부서 관리 컨트롤러 |
| | | 'workspaceService' : 'components/workspace/workspace.service', // 업무 공간에 관련된 통신을 담당한다. |
| | | 'paymentService' : 'components/payment/payment.service', // 결재에 관련된 통신을 담당한다. |
| | |
| | | <div class="element-wrapper"> |
| | | <div class="element-actions"> |
| | | <button ng-click="fn.add()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')" |
| | | <div class="element-actions" ng-show="vm.tab == 'USER_LEVEL_CONFIG'"> |
| | | <button ng-click="fn.levelAdd()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')" |
| | | class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span |
| | | translate="managementWorkspace.addLevel">등급 추가</span> |
| | | </button> |
| | | </div> |
| | | <div class="element-actions" ng-show="vm.tab == 'DEPARTMENT_CONFIG'"> |
| | | <button ng-click="fn.departmentAdd()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')" |
| | | class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span |
| | | translate="managementWorkspace.addDepartment">부서 추가</span> |
| | | </button> |
| | | </div> |
| | | <h6 class="element-header" translate="managementWorkspace.myWorkspace"> |
| | | 나의 업무공간 관리 |
| | | </h6> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>새 부서 추가</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="departmentAddForm"> |
| | | <div class="form-group"> |
| | | <label for="departmentAddForm1"> |
| | | <span translate="common.departmentName">부서명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="departmentAddForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.title" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label> |
| | | <span translate="common.departmentEx">부서 설명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <summernote |
| | | class="summernote" |
| | | lang="ko-KR" |
| | | required |
| | | config="vm.options" |
| | | ng-model="vm.form.description" |
| | | target=".note-editable"></summernote> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(departmentAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(departmentAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row" ng-controller="workspaceDepartmentConfigController"> |
| | | <!--<div class="row" ng-controller="workspaceDepartmentConfigController"> |
| | | <div class="col-lg-12"> |
| | | <div class="projects-list"> |
| | | <div class="project-box"> |
| | |
| | | </div> |
| | | <div class="col-lg-3 text-center b-r"> |
| | | <div class="el-tablo highlight"> |
| | | <!-- |
| | | <!– |
| | | <div class="label" translate="managementWorkspace.waitForParticipation"> |
| | | 참여 대기 |
| | | </div> |
| | | --> |
| | | –> |
| | | <div class="label" translate="managementWorkspace.withdrawal"> |
| | | 탈퇴 |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | |
| | | <div class="row"> |
| | | <div class="row" ng-controller="workspaceDepartmentConfigController"> |
| | | <div class="col-lg-12"> |
| | | <div class="element-box"> |
| | | <div class="searchdiv"> |
| | |
| | | <div class="row"> |
| | | <div class="col-xl-2"> |
| | | <div class="form-group"> |
| | | <label translate="common.name">이름</label> |
| | | <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-xl-3"> |
| | | <div class="form-group"> |
| | | <label translate="common.status">상태</label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | | data-input-name="statuses" |
| | | selected-model="vm.search.statuses" |
| | | extra-settings="{ stringTypeOption : true }" |
| | | options="vm.options.statuses"></ng-dropdown-multiselect> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-xl-3"> |
| | | <div class="form-group"> |
| | | <label translate="common.email">이메일</label> |
| | | <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50"> |
| | | <label translate="common.departmentName">부서명</label> |
| | | <input class="form-control" type="text" ng-model="vm.search.DepatmentName" maxlength="10"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="formModal" ng-controller="workspaceLevelAddController"> |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>새 등급 추가</strong> |
| | |
| | | <label for="levelAddForm1"><span translate="managementWorkspace.levelName">등급명</span><code class="highlighter-rouge">*</code></label> |
| | | </td> |
| | | <td> |
| | | <div class="input-group mb-2 mr-sm-2 mb-sm-0" colspan="3"> |
| | | <div class="input-group mb-0 mr-sm-0 mb-sm-0"> |
| | | <input id="levelAddForm1" |
| | | class="form-control" placeholder="추가 할 등급명을 입력하세요." |
| | | type="text" |
| | | ng-model="vm.form.name" |
| | | ng-model="vm.form.levelName" |
| | | maxlength="50" |
| | | autofocus |
| | | required> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <!--tableColumnGenerator.dirextive.js 파일 참고--> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageProjectPerm">프로젝트 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <!--<tr> |
| | | <td> |
| | | <span translate="managementWorkspace.read">읽기</span> |
| | | <span translate="managementWorkspace.write">쓰기</span> |
| | | </td> |
| | | </tr>--> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageIssueSystemPerm">이슈 시스템</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <td colspan="2"> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageUserPerm">사용자</span> |
| | | <span translate="manageUser.manageIssueSystemPerm">이슈 시스템 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageNoticePerm">공지사항</span> |
| | | <span translate="manageUser.manageUserPerm">사용자 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permUser' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageFAQPerm">FAQ</span> |
| | | <span translate="manageUser.manageNoticePerm">공지사항 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageQnAPerm">QnA</span> |
| | | <span translate="manageUser.manageFAQPerm">FAQ 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageQnAPerm">QnA 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permQnA' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageGuidePerm">가이드</span> |
| | | <span translate="manageUser.manageGuidePerm">가이드 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(paymentAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | js-short-cut-action="(fn.formCheck(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(paymentAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-xl-3"> |
| | | <div class="col-xl-2"> |
| | | <div class="form-group"> |
| | | <label translate="common.status">상태</label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-xl-3"> |
| | | <div class="col-xl-2"> |
| | | <div class="form-group"> |
| | | <label>등급</label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-xl-4"> |
| | | <div class="col-xl-11"> |
| | | <div class="form-group form-buttons-w2"> |
| | | <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)"> |
| | | <i class="os-icon os-icon-ui-37"></i> |
| | |
| | | </label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-6 text-right"> |
| | | <div class="col-sm-6 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_USER')"> |
| | | <!--<div class="btn-group"> |
| | | <button aria-expanded="false" |
| | | aria-haspopup="true" |