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 { 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<Props, State> {
{this.renderAutocompletionField()}
</div>
<div className="column is-one-quarter">
<TypeSelector
availableTypes={availableRoleNames}
<RoleSelector
availableRoles={availableRoleNames}
label={t("permission.role")}
helpText={t("permission.help.roleHelpText")}
handleTypeChange={this.handleTypeChange}
type={
handleRoleChange={this.handleRoleChange}
role={
matchingRole
? matchingRole
: availablePermissions.availableRoles[0].name
@@ -214,16 +214,16 @@ class CreatePermissionForm extends React.Component<Props, State> {
});
};
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
);
};
}

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 { 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<Props, State> {
const availableRoleNames = availablePermissions.availableRoles.map(
r => r.name
);
const typeSelector =
const roleSelector =
this.props.permission._links && this.props.permission._links.update ? (
<>
<td>
<TypeSelector
handleTypeChange={this.handleTypeChange}
availableTypes={availableRoleNames}
type={role}
<RoleSelector
handleRoleChange={this.handleRoleChange}
availableRoles={availableRoleNames}
role={role}
loading={loading}
/>
</td>
@@ -141,7 +141,7 @@ class SinglePermission extends React.Component<Props, State> {
<td>
<Checkbox checked={permission ? permission.groupPermission : false} />
</td>
{typeSelector}
{roleSelector}
<td>
<DeletePermissionButton
permission={permission}
@@ -180,23 +180,23 @@ class SinglePermission extends React.Component<Props, State> {
);
};
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<Props, State> {
this.props.repoName
);
};
createSelectOptions(types: string[]) {
return types.map(type => {
return {
label: type,
value: type
};
});
}
}
const mapStateToProps = (state, ownProps) => {