mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 06:55:47 +01:00
Rename type -> role
This commit is contained in:
@@ -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
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
55
scm-ui/src/repos/permissions/components/RoleSelector.js
Normal file
55
scm-ui/src/repos/permissions/components/RoleSelector.js
Normal 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);
|
||||||
@@ -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);
|
|
||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user