From 6969003a4cc57bc9e6bb3fa900538b064292adc9 Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Wed, 15 May 2019 02:04:54 +0200 Subject: [PATCH] refactor --- .../containers/GlobalPermissionRoleForm.js | 109 +++++++++--------- .../containers/GlobalPermissionRoles.js | 16 +-- scm-ui/src/config/modules/roles.js | 4 +- 3 files changed, 65 insertions(+), 64 deletions(-) diff --git a/scm-ui/src/config/containers/GlobalPermissionRoleForm.js b/scm-ui/src/config/containers/GlobalPermissionRoleForm.js index 3fb7d539f7..f92a212d20 100644 --- a/scm-ui/src/config/containers/GlobalPermissionRoleForm.js +++ b/scm-ui/src/config/containers/GlobalPermissionRoleForm.js @@ -1,7 +1,9 @@ // @flow import React from "react"; -import { InputField, SubmitButton } from "@scm-manager/ui-components"; +import { connect } from "react-redux"; import { translate } from "react-i18next"; +import type { Role } from "@scm-manager/ui-types"; +import { InputField, SubmitButton } from "@scm-manager/ui-components"; import PermissionCheckbox from "../../repos/permissions/components/PermissionCheckbox"; import { fetchAvailableVerbs, @@ -10,15 +12,16 @@ import { isFetchVerbsPending } from "../modules/roles"; import { getRepositoryVerbsLink } from "../../modules/indexResource"; -import { connect } from "react-redux"; type Props = { submitForm: CustomRoleRequest => void, - transmittedName?: string, + role?: Role, loading?: boolean, availableVerbs: string[], selectedVerbs: string[], verbsLink: string, + + // context objects t: string => string, // dispatch functions @@ -26,7 +29,7 @@ type Props = { }; type State = { - name?: string, + role: Role, verbs: string[] }; @@ -35,56 +38,56 @@ class GlobalPermissionRoleForm extends React.Component { super(props); this.state = { - name: props.transmittedName ? props.transmittedName : "", + role: { + name: "", + verbs: [], + system: false, + _links: {} + }, verbs: props.availableVerbs }; } - componentWillMount() { - const { fetchAvailableVerbs, verbsLink } = this.props; - fetchAvailableVerbs(verbsLink); - } - componentDidMount() { - const { - fetchAvailableVerbs, - verbsLink, - } = this.props; + const { fetchAvailableVerbs, verbsLink, role } = this.props; fetchAvailableVerbs(verbsLink); + if (role) { + this.setState({ role: { ...role } }); + } } - isValid = () => { - const { name, verbs } = this.state; - return !(this.isFalsy(name) || this.isFalsy(verbs) || verbs.isEmpty()); - }; - isFalsy(value) { return !value; } + isValid = () => { + const { role } = this.state; + return !( + this.isFalsy(role) || + this.isFalsy(role.name) || + this.isFalsy(role.verbs) + ); + }; + handleNameChange = (name: string) => { this.setState({ - ...this.state, - name + role: { + ...this.state.role, + name + } }); }; handleVerbChange = (value: boolean, name: string) => { - const { selectedVerbs } = this.state; + const { selectedVerbs } = this.props; const newVerbs = { ...selectedVerbs, [name]: value }; - this.setState({ selectedVerbs: newVerbs }); + this.setState({ verbs: newVerbs }); }; render() { - const { - t, - transmittedName, - loading, - disabled, - availableVerbs - } = this.props; - const { verbs } = this.state; + const { loading, availableVerbs, t } = this.props; + const { role, verbs } = this.state; const verbSelectBoxes = !!availableVerbs && @@ -99,31 +102,29 @@ class GlobalPermissionRoleForm extends React.Component { )); return ( -
-
-
-
- -
+ +
+
+
- <>{verbSelectBoxes} -
-
- -
+
+ <>{verbSelectBoxes} +
+
+
- -
+
+ ); } } diff --git a/scm-ui/src/config/containers/GlobalPermissionRoles.js b/scm-ui/src/config/containers/GlobalPermissionRoles.js index eb579f6e69..2691bf3988 100644 --- a/scm-ui/src/config/containers/GlobalPermissionRoles.js +++ b/scm-ui/src/config/containers/GlobalPermissionRoles.js @@ -5,14 +5,6 @@ import {withRouter} from "react-router-dom"; import { translate } from "react-i18next"; import type { History } from "history"; import type { Role, PagedCollection } from "@scm-manager/ui-types"; -import { - fetchRolesByPage, - getRolesFromState, - selectListAsCollection, - isPermittedToCreateRoles, - isFetchRolesPending, - getFetchRolesFailure -} from "../modules/roles"; import { Title, Loading, @@ -21,6 +13,14 @@ import { urls, CreateButton } from "@scm-manager/ui-components"; +import { + fetchRolesByPage, + getRolesFromState, + selectListAsCollection, + isPermittedToCreateRoles, + isFetchRolesPending, + getFetchRolesFailure +} from "../modules/roles"; import PermissionRoleTable from "../components/table/PermissionRoleTable"; import { getRolesLink } from "../../modules/indexResource"; type Props = { diff --git a/scm-ui/src/config/modules/roles.js b/scm-ui/src/config/modules/roles.js index eea062a6b9..7088d46fb8 100644 --- a/scm-ui/src/config/modules/roles.js +++ b/scm-ui/src/config/modules/roles.js @@ -225,7 +225,7 @@ function verbReducer(state: any = {}, action: any = {}) { return { ...state, verbMap - }; + }; default: return state; } @@ -338,7 +338,7 @@ export function getRolesFromState(state: Object) { } export function getVerbsFromState(state: Object) { - return state.roles.verbs.verbs + return state.roles.verbs.verbs; } export function isFetchRolesPending(state: Object) {