| | |
| | | public static final String PAGE_NEGATIVE_OR_NULL = "PAGE_NEGATIVE_OR_NULL"; // 요청한 페이지 정보가 잘못되었습니다. |
| | | public static final String PAGE_SIZE_NEGATIVE_OR_NULL = "PAGE_SIZE_NEGATIVE_OR_NULL"; // 요청한 페이지 크기가 잘못되었습니다. |
| | | |
| | | public static final String USER_LEVEL_ALREADY = "USER_LEVEL_ALREADY"; // 사용자 등급을 사용하고 있는 사용자가 있습니다. |
| | | public static final String USER_LEVEL_ALREADY_IN_USE = "USER_LEVEL_ALREADY_IN_USE"; // 사용자 등급을 사용하고 있는 사용자가 있습니다. |
| | | |
| | | } |
| | |
| | | public void modifyUserPermission(ManageUserForm manageUserForm) { |
| | | int newPermission = MngPermission.USER_PERMISSION_MNG_NONE; |
| | | |
| | | newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpace(), MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | newPermission |= MngPermission.makePermission(manageUserForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT); |
| | | newPermission |= MngPermission.makePermission(manageUserForm.getPermIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); |
| | | newPermission |= MngPermission.makePermission(manageUserForm.getPermUser(), MngPermission.USER_PERMISSION_MNG_USER); |
| | |
| | | this.userLevelRepository.deleteById(id); |
| | | } else { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_ALREADY)); |
| | | this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_ALREADY_IN_USE)); |
| | | } |
| | | } |
| | | |
| | |
| | | this.userRepository.saveAndFlush(user); |
| | | } |
| | | |
| | | // 삭제 할 등급명을 유저가 사용하고 있는지 확인 |
| | | @Override |
| | | public boolean useUserLevel(Long levelId) { |
| | | return this.userMapper.findByLevelId(levelId) > 0; |
| | |
| | | public List<UserWorkspaceVo> findUserWorkspace(Map<String, Object> resJsonData, |
| | | UserWorkspaceCondition condition, Pageable pageable) { |
| | | |
| | | UserWorkspace userWorkspace = this.findMyWorkspace(this.webAppUtil.getLoginId()); //로그인한 아이디 |
| | | UserWorkspace userWorkspace = this.findMyWorkspace(this.webAppUtil.getLoginId()); |
| | | Workspace myWorkspace = userWorkspace.getWorkspace(); |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | condition.setWorkspaceId(myWorkspace.getId()); |
| | | condition.setAccount(CommonUtil.encryptAES128(condition.getAccount())); |
| | | condition.setAccount(CommonUtil.encryptAES128(condition.getAccount())); //계정 암호화(필수 동작) |
| | | |
| | | List<Map<String, Object>> results = this.userWorkspaceMapper.find(condition); |
| | | Long totalCount = this.userWorkspaceMapper.count(condition); |
| | | int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; |
| | | List<UserWorkspaceVo> userWorkspaceVos = ConvertUtil.convertListToListClass(results, UserWorkspaceVo.class); |
| | | List<UserWorkspaceVo> userWorkspaceVos = ConvertUtil.convertListToListClass(results, UserWorkspaceVo.class); //UserWorkspace의 데이터를 리스트 형식으로 복사해서 UserWorkspaceVo에 담기 |
| | | |
| | | for (UserWorkspaceVo userWorkspaceVo : userWorkspaceVos) { |
| | | userWorkspaceVo.setAccount(CommonUtil.decryptAES128(userWorkspaceVo.getAccount())); |
| | |
| | | private Boolean useYn; |
| | | private Integer permission; |
| | | private Long userId; |
| | | public Boolean permWorkSpace; |
| | | public Boolean permWorkSpaceSetting; |
| | | public Boolean permProjectSetting; |
| | | public Boolean permIssueSetting; |
| | | public Boolean permUser; |
| | |
| | | } |
| | | |
| | | private void makePermission() { |
| | | this.permWorkSpace = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT); |
| | | this.permIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); |
| | | this.permUser = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_USER); |
| | |
| | | private String levelName; |
| | | private Integer permission; |
| | | |
| | | public Boolean permWorkSpace; |
| | | public Boolean permWorkSpaceSetting; |
| | | public Boolean permProjectSetting; |
| | | public Boolean permIssueSetting; |
| | | public Boolean permUser; |
| | |
| | | } |
| | | |
| | | public void toPermissionValues() { |
| | | this.permWorkSpace = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE); |
| | | this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT); |
| | | this.permIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); |
| | | this.permUser = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_USER); |
| | |
| | | private Long id; |
| | | private Boolean useYn; |
| | | private Long userId; |
| | | private Boolean permWorkSpace; |
| | | private Boolean permWorkSpaceSetting; |
| | | private Boolean permProjectSetting; |
| | | private Boolean permIssueSetting; |
| | | private Boolean permUser; |
| | |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Boolean getPermWorkSpace() { |
| | | return permWorkSpace; |
| | | public Boolean getPermWorkSpaceSetting() { |
| | | return permWorkSpaceSetting; |
| | | } |
| | | |
| | | public void setPermWorkSpace(Boolean permWorkSpace) { |
| | | this.permWorkSpace = permWorkSpace; |
| | | public void setPermWorkSpaceSetting(Boolean permWorkSpaceSetting) { |
| | | this.permWorkSpaceSetting = permWorkSpaceSetting; |
| | | } |
| | | |
| | | public Boolean getPermProjectSetting() { |
| | |
| | | return form; |
| | | |
| | | } |
| | | public Boolean getPermWorkspaceSetting() { |
| | | return permWorkspaceSetting; |
| | | } |
| | | |
| | | public void setPermWorkspaceSetting(Boolean permWorkspaceSetting) { |
| | | this.permWorkspaceSetting = permWorkspaceSetting; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | |
| | | this.permission = permission; |
| | | } |
| | | |
| | | public Boolean getPermWorkspaceSetting() { |
| | | return permWorkspaceSetting; |
| | | } |
| | | |
| | | public void setPermWorkspaceSetting(Boolean permWorkspaceSetting) { |
| | | this.permWorkspaceSetting = permWorkspaceSetting; |
| | | } |
| | | |
| | | public Boolean getPermProjectSetting() { |
| | | return permProjectSetting; |
| | |
| | | GROUP BY u.id ORDER BY issueCount desc, loginCount DESC; |
| | | </select> |
| | | |
| | | <select id="findByLevelId" resultType="java.util.HashMap" parameterType="java.lang.Long"> |
| | | <select id="findByLevelId" resultType="java.lang.Long" parameterType="java.lang.Long"> |
| | | SELECT count(u.id) |
| | | FROM user u |
| | | WHERE u.level_id = #{id} |
| | | WHERE u.level_id = #{levelId} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | ul.permission as permission |
| | | FROM |
| | | user_level ul |
| | | WHERE 1=1 |
| | | WHERE id != 1 AND 1=1 |
| | | <if test="levelName != '' and levelName != null"> |
| | | AND ul.level_name like CONCAT('%',#{levelName},'%') |
| | | </if> |
| | |
| | | USER_EXPIRED_PASSWORD = \uBE44\uBC00\uBC88\uD638\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. |
| | | USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30 \uAE30\uB2A5\uC744 \uC18C\uC15C \uACC4\uC815 \uAC00\uC785 \uC0AC\uC6A9\uC790\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. |
| | | USER_NOT_USE_ACTIVE_STATUS = \uC0AC\uC6A9\uC790\uB294 \uD65C\uC131 \uC0C1\uD0DC\uAC00 \uC544\uB2C8\uBA74 \uB85C\uADF8\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. |
| | | USER_LEVEL_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC744 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC0AC\uC6A9\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4. |
| | | |
| | | EXCEL_NOT_EXTENSION = \uC5D1\uC140 \uD30C\uC77C \uD655\uC7A5\uC790 (xlsx)\uB9CC \uC5C5\uB85C\uB4DC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4. |
| | | EXCEL_DOWNLOAD_MAX_ROWS_OVER = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uB294 1.000 \uAC74 \uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC80\uC0C9 \uC870\uAC74\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC870\uD68C\uB418\uB294 \uBAA9\uB85D\uC744 1,000 \uAC74 \uC774\uD558\uB85C \uBCC0\uACBD\uD558\uC5EC \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC9C4\uD589\uD574\uC8FC\uC138\uC694. |
| | |
| | | makeTag += "<a ng-click='event.fileRemove(data.index)'><i class='fa fa-trash fa-lg' uib-tooltip='제거'></i></a>"; |
| | | break; |
| | | |
| | | case "WORKSPACE_USE_YN" : |
| | | makeTag += "<label class='switch'><input type='checkbox' ng-model='data.useYn' ng-click='event.modifyUserWorkspace(data)'><span class='slider round'></span></label>"; |
| | | case "USER_LEVEL_MODIFY": |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')) { |
| | | makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.levelName.replace(/</gi, '<') + "</span>"; |
| | | } |
| | | else { |
| | | makeTag += "<span class='titlename cursor table-word-break-all'>" + scope.data.levelName + "</span>"; |
| | | } |
| | | break; |
| | | |
| | | case "WORKSPACE_SETTING_PERM_YN" : |
| | | makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permWorkSpaceSetting' ng-click='event.modify(data)'><span class='slider round'></span></label>"; |
| | | break; |
| | | |
| | | case "PROJECT_SETTING_PERM_YN" : |
| | |
| | | "failedToModifyWorkspaceName": "업무 공간 명 수정 실패", |
| | | "failedToRegularPaymentChange": "정기 결제 변경 실패", |
| | | "failedToParticipationStatusChange": "참여 상태 변경 실패", |
| | | "failedToSelectWorkspaceFullUserList": "업무 공간 전체 사용자 목록 조회 실패" |
| | | "failedToSelectWorkspaceFullUserList": "업무 공간 전체 사용자 목록 조회 실패", |
| | | "failedToModifyUserLevel": "사용자 등급 상세 정보 조회 실패" |
| | | }, |
| | | "issue": { |
| | | "issueType": "이슈 유형", |
| | |
| | | .setHWidth("width-40-p") |
| | | .setDAlign("text-center") |
| | | .setDName("account")); |
| | | $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.tableConfigs.push($tableProvider.config() |
| | | .setHName("manageUser.manageProjectPerm") |
| | | .setHWidth("width-20-p") |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-05-08. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app', |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('levelModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'UserWorkspace', 'parameter', 'SweetAlert', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, UserWorkspace, parameter, SweetAlert, $filter) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | modifyUserPermission : modifyUserPermission, // 권한 변경 |
| | | //detail : detail // 상세 정보 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | search : { |
| | | id : parameter.id |
| | | }, |
| | | form : { |
| | | levelName : "", |
| | | permWorkspaceSetting : false, |
| | | permProjectSetting : false, |
| | | permIssueSetting : false, |
| | | permUser : false, |
| | | permNotice : false, |
| | | permFAQ : false, |
| | | permQnA : false, |
| | | permGuide : false |
| | | } |
| | | }; |
| | | |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit(condition) { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | id : parameter.id, |
| | | title : $rootScope.preventXss($scope.vm.form.title), |
| | | //description : $rootScope.preventXss($scope.vm.form.description) |
| | | }; |
| | | |
| | | UserWorkspace.modify($resourceProvider.getContent(condition, |
| | | content, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | 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; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | /*// 상세 조회 |
| | | function detail() { |
| | | Notice.detail($resourceProvider.getContent( |
| | | $scope.vm.search, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | if ($rootScope.isDefined(result.data.data)) { |
| | | $scope.vm.form.title = result.data.data.title; |
| | | $scope.vm.form.description = result.data.data.description; |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToModifyUserLevel"), result.data.message.message); //공지사항 상세 정보 조회 실패 |
| | | } |
| | | }); |
| | | } |
| | | // 공지사항 상세 조회 |
| | | $scope.fn.detail();*/ |
| | | |
| | | function modifyUserPermission(userPermission ) { |
| | | UserWorkspace.levelModify($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); // "참여 상태 변경 실패" |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }]); |
| | | }); |
| | |
| | | var deferred = $q.defer(); |
| | | 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 () { |
| | | "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController"], function () { |
| | | deferred.resolve(); |
| | | }); |
| | | |
| | |
| | | return; |
| | | } |
| | | |
| | | Payment.detail($resourceProvider.getContent(content, |
| | | //"사용자 관리" 탭으로 이동 시 Payment/detail 요청이 들어와서 아래내용 주석처리 |
| | | /*Payment.detail($resourceProvider.getContent(content, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | if (result.data.data != null) { |
| | |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToPaymentInformation"), result.data.message.message); // "결제 정보 조회 실패" |
| | | } |
| | | }); |
| | | });*/ |
| | | } |
| | | |
| | | // 업무 공간 명 수정 |
| | |
| | | modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | }; |
| | | |
| | | // 결제 상세 정보 |
| | | // 상세 정보 |
| | | $scope.$on("getUserWorkspaceList", function () { |
| | | $scope.fn.getUserWorkspaceList(0); |
| | | }); |
| | |
| | | $scope.fn.initSearch = initSearch; // 검색 조건 초기화 |
| | | $scope.fn.levelAdd = levelAdd; // 등급 추가 |
| | | $scope.fn.removes = removes; // 사용자 등급 삭제 |
| | | $scope.fn.getPageList = getPageList; // 목록 조회 |
| | | $scope.fn.listView = listView; // 목록 화면으로 변경 |
| | | $scope.fn.modify = modify; // 사용자 등급 수정 |
| | | |
| | | /* $scope.vm 상속 중 */ |
| | | $scope.vm.search = { |
| | |
| | | |
| | | // 테이블 이벤트 |
| | | $scope.vm.tableEvent = { |
| | | // modifyUserWorkspace : modifyUserWorkspace // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | modify : modify // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | }; |
| | | |
| | | // 사용자 등급 리스트 불러오기 |
| | | $scope.$on("getUserLevelList", function () { |
| | | $scope.fn.getUserLevelList(0); |
| | | }); |
| | | |
| | | // 이슈 목록을 조회한다. |
| | | function getPageList(selectedPage, detail = false) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | | // 현재 페이지 정보 |
| | | var currentPage = 0; |
| | | |
| | | // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 |
| | | if (angular.isUndefined(selectedPage) || selectedPage === "") { |
| | | currentPage = $scope.vm.page.selectedPage; |
| | | } |
| | | else { |
| | | currentPage = selectedPage; |
| | | } |
| | | |
| | | |
| | | // 검색 조건을 저장한다. |
| | | //$scope.fn.makeVmSearchObject(); |
| | | |
| | | |
| | | // 현재 선택된 프로젝트를 검색 기본으로 추가 |
| | | if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { |
| | | var find = findProjectSearch($rootScope.workProject.id); |
| | | if (!find) { |
| | | $scope.vm.projects.push($rootScope.workProject); |
| | | } |
| | | } |
| | | |
| | | // 이슈 검색 조건을 만든다. |
| | | var conditions = $scope.fn.makeSearchConditions(); |
| | | |
| | | Issue.find($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; |
| | | if (detail) { |
| | | changeDetailView(result.data.data[0].id); |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // 이슈 조회 실패 |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 목록 화면으로 변경한다. |
| | | function listView() { |
| | |
| | | $scope.vm.responseData.data = angular.copy(temp); |
| | | // 마지막으로 보고있던 이슈 id를 초기화한다. |
| | | $rootScope.currentDetailIssueId = null; |
| | | } |
| | | |
| | | // 사용자 등급 수정 |
| | | function modify(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/workspace/workspaceLevelModify.html', |
| | | size : "md", |
| | | controller : 'levelModifyController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | id : id |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 사용자 등급 삭제 |
| | |
| | | }, 100); |
| | | |
| | | $scope.fn.listView(); |
| | | |
| | | $scope.fn.getPageList(0); |
| | | $scope.fn.getUserLevelList(0); |
| | | } |
| | | else { |
| | | $timeout(function () { |
| | |
| | | .setHName("managementWorkspace.levelName") |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDName("levelName")); |
| | | .setDType("renderer") |
| | | .setDRenderer("USER_LEVEL_MODIFY")); |
| | | $scope.vm.tableConfigs1.push($tableProvider.config() |
| | | .setHName("manageUser.manageWorkspacePerm") |
| | | .setHWidth("width-120-p") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDName("manageProject") |
| | | .setDRenderer("WORKSPACE_USE_YN")); |
| | | .setDName("manageWorkspace") |
| | | .setDRenderer("WORKSPACE_SETTING_PERM_YN")); |
| | | $scope.vm.tableConfigs1.push($tableProvider.config() |
| | | .setHName("manageUser.manageProjectPerm") |
| | | .setHWidth("width-120-p") |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 등급 추가 |
| | | function levelAdd() { |
| | | $uibModal.open({ |
| | |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("userWorkspace/modify", conditions).then(function (response) { |
| | | return $http.post("userLevel/modify", conditions).then(function (response) { |
| | | $log.debug("워크스페이스 참여자 참여 상태 변경 결과 : ", response); |
| | | return response; |
| | | }); |
| | |
| | | 'workspacePaymentAgreeTermController' : 'app/workspace/workspacePaymentAgreeTerm.controller', // 업무 공간 이용 약관 확인 컨트롤러 |
| | | 'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller', // 사용자 관리 컨트롤러 |
| | | 'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller', // 사용자 등급 추가 컨트롤러 |
| | | 'levelModifyController' : 'app/workspace/levelModify.controller', // 사용자 등급 수정 컨트롤러 |
| | | 'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller', // 부서 추가 컨트롤러 |
| | | 'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller', // 사용자 부서 관리 컨트롤러 |
| | | 'workspaceService' : 'components/workspace/workspace.service', // 업무 공간에 관련된 통신을 담당한다. |
| | |
| | | <td> |
| | | <div class="input-group mb-0 mr-sm-0 mb-sm-0"> |
| | | <input id="levelAddForm1" |
| | | class="form-control" placeholder="추가 할 등급명을 입력하세요." |
| | | name="levelName" |
| | | type="text" |
| | | ng-model="vm.form.levelName" |
| | | maxlength="50" |
| | | 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.levelName" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | required> |
| | | </div> |
| | | </td> |
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="levelAddForm"> |
| | | <table class="table table-lightborder"> |
| | | <tr> |
| | | <td> |
| | | <label for="levelAddForm1"><span translate="managementWorkspace.levelName">등급명</span><code class="highlighter-rouge">*</code></label> |
| | | </td> |
| | | <td> |
| | | <div class="input-group mb-0 mr-sm-0 mb-sm-0"> |
| | | <input id="levelAddForm1" |
| | | name="levelName" |
| | | 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.levelName" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | required> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <!--tableColumnGenerator.dirextive.js 파일 참고--> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageWorkspacePerm">워크스페이스 관리</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permWorkspaceSetting'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageProjectPerm">프로젝트 관리</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageIssueSystemPerm">이슈 시스템 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageUserPerm">사용자 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permUser'><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageNoticePerm">공지사항 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageFAQPerm">FAQ 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ><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='vm.form.permQnA' ><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td class="text-left bold"> |
| | | <span translate="manageUser.manageGuidePerm">가이드 관리</span> |
| | | </td> |
| | | <td> |
| | | <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ><span class='slider round'></span></label> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </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(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit(vm.form)" |
| | | ng-disabled="fn.formCheck(paymentAddForm.$invalid)" |
| | | ng-click="fn.formSubmit(vm.form)"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="searchdiv"> |
| | | <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)"> |
| | | <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"> |
| | | </div> |
| | | </div>--> |
| | | |
| | | <div class="col-xl-4"> |
| | | <div class="form-group" style="margin-left: 50px"> |
| | | <label translate="managementWorkspace.levelName">등급명</label> |
| | | <input class="form-control" type="text" ng-model="vm.search.level" maxlength="50"> |
| | | <input class="form-control" type="text" ng-click="" ng-model="vm.search.level" maxlength="50"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | <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" |
| | | class="btn btn-secondary dropdown-toggle" |
| | | data-toggle="dropdown" |
| | | type="button">추가기능 |
| | | </button> |
| | | <div aria-labelledby="dropdownMenuButton2" |
| | | class="dropdown-menu" |
| | | x-placement="bottom-start" |
| | | style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> |
| | | <a class="dropdown-item cursor ng-isolate-scope" form-submit="projectListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item" href="#"> 삭제</a> |
| | | </div> |
| | | </div>--> |
| | | <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/workspace/downloadExcel" name="userLevelListForm"> |
| | | <input type="hidden" name="conditions" autocomplete="off"> |
| | | <div class="btn-group"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--<div class="table-responsive"> |
| | | <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" |
| | | event="vm.tableEvent"></js-table> |
| | | </div>--> |
| | | |
| | | <div class="table-responsive"> |
| | | <js-table data="vm.responseData.data" table-configs="vm.tableConfigs1" |