Rename type -> role

This commit is contained in:
René Pfeuffer
2019-01-25 08:26:18 +01:00
parent 6721ae9bb7
commit b15cfe74a4
4 changed files with 76 additions and 85 deletions

View File

@@ -2,7 +2,7 @@
import React from "react"; import React from "react";
import { translate } from "react-i18next"; import { translate } from "react-i18next";
import { Autocomplete, SubmitButton } from "@scm-manager/ui-components"; import { Autocomplete, SubmitButton } from "@scm-manager/ui-components";
import TypeSelector from "./TypeSelector"; import RoleSelector from "./RoleSelector";
import type { import type {
AvailableRepositoryPermissions, AvailableRepositoryPermissions,
PermissionCollection, PermissionCollection,
@@ -168,12 +168,12 @@ class CreatePermissionForm extends React.Component<Props, State> {
{this.renderAutocompletionField()} {this.renderAutocompletionField()}
</div> </div>
<div className="column is-one-quarter"> <div className="column is-one-quarter">
<TypeSelector <RoleSelector
availableTypes={availableRoleNames} availableRoles={availableRoleNames}
label={t("permission.role")} label={t("permission.role")}
helpText={t("permission.help.roleHelpText")} helpText={t("permission.help.roleHelpText")}
handleTypeChange={this.handleTypeChange} handleRoleChange={this.handleRoleChange}
type={ role={
matchingRole matchingRole
? matchingRole ? matchingRole
: availablePermissions.availableRoles[0].name : availablePermissions.availableRoles[0].name
@@ -214,16 +214,16 @@ class CreatePermissionForm extends React.Component<Props, State> {
}); });
}; };
handleTypeChange = (type: string) => { handleRoleChange = (role: string) => {
const selectedRole = this.findAvailableRole(type); const selectedRole = this.findAvailableRole(role);
this.setState({ this.setState({
verbs: selectedRole.verbs verbs: selectedRole.verbs
}); });
}; };
findAvailableRole = (type: string) => { findAvailableRole = (roleName: string) => {
return this.props.availablePermissions.availableRoles.find( return this.props.availablePermissions.availableRoles.find(
role => role.name === type role => role.name === roleName
); );
}; };
} }

View File

@@ -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<Props> {
render() {
const {
availableRoles,
role,
handleRoleChange,
loading,
label,
helpText
} = this.props;
if (!availableRoles) return null;
const options = role
? this.createSelectOptions(availableRoles)
: ["", ...this.createSelectOptions(availableRoles)];
return (
<Select
onChange={handleRoleChange}
value={role ? role : ""}
options={options}
loading={loading}
label={label}
helpText={helpText}
/>
);
}
createSelectOptions(roles: string[]) {
return roles.map(role => {
return {
label: role,
value: role
};
});
}
}
export default translate("repos")(RoleSelector);

View File

@@ -1,55 +0,0 @@
// @flow
import React from "react";
import { translate } from "react-i18next";
import { Select } from "@scm-manager/ui-components";
type Props = {
t: string => string,
availableTypes: string[],
handleTypeChange: string => void,
type: string,
label?: string,
helpText?: string,
loading?: boolean
};
class TypeSelector extends React.Component<Props> {
render() {
const {
availableTypes,
type,
handleTypeChange,
loading,
label,
helpText
} = this.props;
if (!availableTypes) return null;
const options = type
? this.createSelectOptions(availableTypes)
: ["", ...this.createSelectOptions(availableTypes)];
return (
<Select
onChange={handleTypeChange}
value={type ? type : ""}
options={options}
loading={loading}
label={label}
helpText={helpText}
/>
);
}
createSelectOptions(types: string[]) {
return types.map(type => {
return {
label: type,
value: type
};
});
}
}
export default translate("repos")(TypeSelector);

View File

@@ -16,7 +16,7 @@ import { connect } from "react-redux";
import type { History } from "history"; import type { History } from "history";
import { Button, Checkbox } from "@scm-manager/ui-components"; import { Button, Checkbox } from "@scm-manager/ui-components";
import DeletePermissionButton from "../components/buttons/DeletePermissionButton"; import DeletePermissionButton from "../components/buttons/DeletePermissionButton";
import TypeSelector from "../components/TypeSelector"; import RoleSelector from "../components/RoleSelector";
import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog"; import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog";
type Props = { type Props = {
@@ -101,14 +101,14 @@ class SinglePermission extends React.Component<Props, State> {
const availableRoleNames = availablePermissions.availableRoles.map( const availableRoleNames = availablePermissions.availableRoles.map(
r => r.name r => r.name
); );
const typeSelector = const roleSelector =
this.props.permission._links && this.props.permission._links.update ? ( this.props.permission._links && this.props.permission._links.update ? (
<> <>
<td> <td>
<TypeSelector <RoleSelector
handleTypeChange={this.handleTypeChange} handleRoleChange={this.handleRoleChange}
availableTypes={availableRoleNames} availableRoles={availableRoleNames}
type={role} role={role}
loading={loading} loading={loading}
/> />
</td> </td>
@@ -141,7 +141,7 @@ class SinglePermission extends React.Component<Props, State> {
<td> <td>
<Checkbox checked={permission ? permission.groupPermission : false} /> <Checkbox checked={permission ? permission.groupPermission : false} />
</td> </td>
{typeSelector} {roleSelector}
<td> <td>
<DeletePermissionButton <DeletePermissionButton
permission={permission} permission={permission}
@@ -180,23 +180,23 @@ class SinglePermission extends React.Component<Props, State> {
); );
}; };
handleTypeChange = (type: string) => { handleRoleChange = (role: string) => {
const selectedRole = this.findAvailableRole(type); const selectedRole = this.findAvailableRole(role);
this.setState( this.setState(
{ {
permission: { permission: {
...this.state.permission, ...this.state.permission,
verbs: selectedRole.verbs verbs: selectedRole.verbs
}, },
role: type role: role
}, },
() => this.modifyPermission(selectedRole.verbs) () => this.modifyPermission(selectedRole.verbs)
); );
}; };
findAvailableRole = (type: string) => { findAvailableRole = (roleName: string) => {
return this.props.availablePermissions.availableRoles.find( return this.props.availablePermissions.availableRoles.find(
role => role.name === type role => role.name === roleName
); );
}; };
@@ -209,15 +209,6 @@ class SinglePermission extends React.Component<Props, State> {
this.props.repoName this.props.repoName
); );
}; };
createSelectOptions(types: string[]) {
return types.map(type => {
return {
label: type,
value: type
};
});
}
} }
const mapStateToProps = (state, ownProps) => { const mapStateToProps = (state, ownProps) => {