From b15cfe74a4974374d2ccfd1ddef32fb95d2a8afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Fri, 25 Jan 2019 08:26:18 +0100 Subject: [PATCH] Rename type -> role --- .../components/CreatePermissionForm.js | 18 +++--- .../permissions/components/RoleSelector.js | 55 +++++++++++++++++++ .../permissions/components/TypeSelector.js | 55 ------------------- .../containers/SinglePermission.js | 33 ++++------- 4 files changed, 76 insertions(+), 85 deletions(-) create mode 100644 scm-ui/src/repos/permissions/components/RoleSelector.js delete mode 100644 scm-ui/src/repos/permissions/components/TypeSelector.js diff --git a/scm-ui/src/repos/permissions/components/CreatePermissionForm.js b/scm-ui/src/repos/permissions/components/CreatePermissionForm.js index 8d0ec6fc8d..ce7a1ee512 100644 --- a/scm-ui/src/repos/permissions/components/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/components/CreatePermissionForm.js @@ -2,7 +2,7 @@ import React from "react"; import { translate } from "react-i18next"; import { Autocomplete, SubmitButton } from "@scm-manager/ui-components"; -import TypeSelector from "./TypeSelector"; +import RoleSelector from "./RoleSelector"; import type { AvailableRepositoryPermissions, PermissionCollection, @@ -168,12 +168,12 @@ class CreatePermissionForm extends React.Component { {this.renderAutocompletionField()}
- { }); }; - handleTypeChange = (type: string) => { - const selectedRole = this.findAvailableRole(type); + handleRoleChange = (role: string) => { + const selectedRole = this.findAvailableRole(role); this.setState({ verbs: selectedRole.verbs }); }; - findAvailableRole = (type: string) => { + findAvailableRole = (roleName: string) => { return this.props.availablePermissions.availableRoles.find( - role => role.name === type + role => role.name === roleName ); }; } diff --git a/scm-ui/src/repos/permissions/components/RoleSelector.js b/scm-ui/src/repos/permissions/components/RoleSelector.js new file mode 100644 index 0000000000..d472f17c4b --- /dev/null +++ b/scm-ui/src/repos/permissions/components/RoleSelector.js @@ -0,0 +1,55 @@ +// @flow +import React from "react"; +import { translate } from "react-i18next"; +import { Select } from "@scm-manager/ui-components"; + +type Props = { + t: string => string, + availableRoles: string[], + handleRoleChange: string => void, + role: string, + label?: string, + helpText?: string, + loading?: boolean +}; + +class RoleSelector extends React.Component { + render() { + const { + availableRoles, + role, + handleRoleChange, + loading, + label, + helpText + } = this.props; + + if (!availableRoles) return null; + + const options = role + ? this.createSelectOptions(availableRoles) + : ["", ...this.createSelectOptions(availableRoles)]; + + return ( + - ); - } - - createSelectOptions(types: string[]) { - return types.map(type => { - return { - label: type, - value: type - }; - }); - } -} - -export default translate("repos")(TypeSelector); diff --git a/scm-ui/src/repos/permissions/containers/SinglePermission.js b/scm-ui/src/repos/permissions/containers/SinglePermission.js index 56b1dbfe3b..ea94612b4d 100644 --- a/scm-ui/src/repos/permissions/containers/SinglePermission.js +++ b/scm-ui/src/repos/permissions/containers/SinglePermission.js @@ -16,7 +16,7 @@ import { connect } from "react-redux"; import type { History } from "history"; import { Button, Checkbox } from "@scm-manager/ui-components"; import DeletePermissionButton from "../components/buttons/DeletePermissionButton"; -import TypeSelector from "../components/TypeSelector"; +import RoleSelector from "../components/RoleSelector"; import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog"; type Props = { @@ -101,14 +101,14 @@ class SinglePermission extends React.Component { const availableRoleNames = availablePermissions.availableRoles.map( r => r.name ); - const typeSelector = + const roleSelector = this.props.permission._links && this.props.permission._links.update ? ( <> - @@ -141,7 +141,7 @@ class SinglePermission extends React.Component { - {typeSelector} + {roleSelector} { ); }; - handleTypeChange = (type: string) => { - const selectedRole = this.findAvailableRole(type); + handleRoleChange = (role: string) => { + const selectedRole = this.findAvailableRole(role); this.setState( { permission: { ...this.state.permission, verbs: selectedRole.verbs }, - role: type + role: role }, () => this.modifyPermission(selectedRole.verbs) ); }; - findAvailableRole = (type: string) => { + findAvailableRole = (roleName: string) => { return this.props.availablePermissions.availableRoles.find( - role => role.name === type + role => role.name === roleName ); }; @@ -209,15 +209,6 @@ class SinglePermission extends React.Component { this.props.repoName ); }; - - createSelectOptions(types: string[]) { - return types.map(type => { - return { - label: type, - value: type - }; - }); - } } const mapStateToProps = (state, ownProps) => {