From 3ea48103463766aadeaec84ba5dd66073c9e483b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 16 May 2019 13:36:11 +0200 Subject: [PATCH] Finish rename Role to RepositoryRole --- .../packages/ui-types/src/RepositoryRole.js | 3 ++ .../packages/ui-types/src/Role.js | 12 ----- .../packages/ui-types/src/index.js | 1 - .../config/roles/components/AvailableVerbs.js | 11 ++--- .../roles/components/PermissionRoleDetails.js | 4 +- .../components/PermissionRoleDetailsTable.js | 4 +- .../roles/components/PermissionRoleRow.js | 4 +- .../roles/components/PermissionRoleTable.js | 4 +- .../roles/containers/CreateRepositoryRole.js | 10 ++--- .../roles/containers/EditRepositoryRole.js | 16 ++++--- .../roles/containers/RepositoryRoleForm.js | 21 +++++---- .../roles/containers/RepositoryRoles.js | 29 +++++++----- .../roles/containers/SingleRepositoryRole.js | 36 +++++++-------- scm-ui/src/config/roles/modules/roles.js | 45 ++++++++++--------- 14 files changed, 105 insertions(+), 95 deletions(-) delete mode 100644 scm-ui-components/packages/ui-types/src/Role.js diff --git a/scm-ui-components/packages/ui-types/src/RepositoryRole.js b/scm-ui-components/packages/ui-types/src/RepositoryRole.js index 8b8ffc933f..195bdfe05c 100644 --- a/scm-ui-components/packages/ui-types/src/RepositoryRole.js +++ b/scm-ui-components/packages/ui-types/src/RepositoryRole.js @@ -1,10 +1,13 @@ // @flow +import type {Links} from "./hal"; + export type RepositoryRole = { name: string, verbs: string[], type?: string, creationDate?: string, lastModified?: string, + _links: Links }; diff --git a/scm-ui-components/packages/ui-types/src/Role.js b/scm-ui-components/packages/ui-types/src/Role.js deleted file mode 100644 index 00e794b886..0000000000 --- a/scm-ui-components/packages/ui-types/src/Role.js +++ /dev/null @@ -1,12 +0,0 @@ -//@flow - -import type { Links } from "./hal"; - -export type Role = { - name: string, - verbs: string[], - creationDate?: number, - lastModified?: number, - system: boolean, - _links: Links -}; diff --git a/scm-ui-components/packages/ui-types/src/index.js b/scm-ui-components/packages/ui-types/src/index.js index 0272b1e2cb..4024710300 100644 --- a/scm-ui-components/packages/ui-types/src/index.js +++ b/scm-ui-components/packages/ui-types/src/index.js @@ -16,7 +16,6 @@ export type { Changeset } from "./Changesets"; export type { Tag } from "./Tags"; export type { Config } from "./Config"; -export type { Role } from "./Role"; export type { IndexResources } from "./IndexResources"; diff --git a/scm-ui/src/config/roles/components/AvailableVerbs.js b/scm-ui/src/config/roles/components/AvailableVerbs.js index 1b27f95b83..dbe0b50a77 100644 --- a/scm-ui/src/config/roles/components/AvailableVerbs.js +++ b/scm-ui/src/config/roles/components/AvailableVerbs.js @@ -1,12 +1,12 @@ //@flow import React from "react"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import { translate } from "react-i18next"; import { compose } from "redux"; import injectSheet from "react-jss"; type Props = { - role: Role, + role: RepositoryRole, // context props t: string => string }; @@ -18,7 +18,6 @@ const styles = { }; class AvailableVerbs extends React.Component { - render() { const { role, t, classes } = this.props; @@ -29,14 +28,16 @@ class AvailableVerbs extends React.Component {
    {role.verbs.map(verb => { - return
  • {t("verbs.repository." + verb + ".displayName")}
  • ; + return ( +
  • {t("verbs.repository." + verb + ".displayName")}
  • + ); })}
); } - return (verbs); + return verbs; } } diff --git a/scm-ui/src/config/roles/components/PermissionRoleDetails.js b/scm-ui/src/config/roles/components/PermissionRoleDetails.js index fa68a66d25..1977ddde2a 100644 --- a/scm-ui/src/config/roles/components/PermissionRoleDetails.js +++ b/scm-ui/src/config/roles/components/PermissionRoleDetails.js @@ -1,13 +1,13 @@ //@flow import React from "react"; import { translate } from "react-i18next"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import ExtensionPoint from "@scm-manager/ui-extensions/lib/ExtensionPoint"; import PermissionRoleDetailsTable from "./PermissionRoleDetailsTable"; import { Button, Subtitle } from "@scm-manager/ui-components"; type Props = { - role: Role, + role: RepositoryRole, url: string, // context props diff --git a/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js b/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js index f320547237..dd0502cb02 100644 --- a/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js +++ b/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js @@ -1,11 +1,11 @@ //@flow import React from "react"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import { translate } from "react-i18next"; import AvailableVerbs from "./AvailableVerbs"; type Props = { - role: Role, + role: RepositoryRole, // context props t: string => string }; diff --git a/scm-ui/src/config/roles/components/PermissionRoleRow.js b/scm-ui/src/config/roles/components/PermissionRoleRow.js index 9f06eb56de..8a10bf93d0 100644 --- a/scm-ui/src/config/roles/components/PermissionRoleRow.js +++ b/scm-ui/src/config/roles/components/PermissionRoleRow.js @@ -1,12 +1,12 @@ // @flow import React from "react"; import { Link } from "react-router-dom"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import SystemRoleTag from "./SystemRoleTag"; type Props = { baseUrl: string, - role: Role + role: RepositoryRole }; class PermissionRoleRow extends React.Component { diff --git a/scm-ui/src/config/roles/components/PermissionRoleTable.js b/scm-ui/src/config/roles/components/PermissionRoleTable.js index a585a84bca..bb98f7c3e9 100644 --- a/scm-ui/src/config/roles/components/PermissionRoleTable.js +++ b/scm-ui/src/config/roles/components/PermissionRoleTable.js @@ -1,12 +1,12 @@ // @flow import React from "react"; import { translate } from "react-i18next"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import PermissionRoleRow from "./PermissionRoleRow"; type Props = { baseUrl: string, - roles: Role[], + roles: RepositoryRole[], t: string => string }; diff --git a/scm-ui/src/config/roles/containers/CreateRepositoryRole.js b/scm-ui/src/config/roles/containers/CreateRepositoryRole.js index 4a572a3206..88f42f8353 100644 --- a/scm-ui/src/config/roles/containers/CreateRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/CreateRepositoryRole.js @@ -10,7 +10,7 @@ import { getFetchVerbsFailure, isFetchVerbsPending } from "../modules/roles"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import { getRepositoryRolesLink, getRepositoryVerbsLink @@ -22,19 +22,19 @@ type Props = { error?: Error, //dispatch function - addRole: (link: string, role: Role, callback?: () => void) => void, + addRole: (link: string, role: RepositoryRole, callback?: () => void) => void, // context objects t: string => string }; class CreateRepositoryRole extends React.Component { - repositoryRoleCreated = (role: Role) => { + repositoryRoleCreated = (role: RepositoryRole) => { const { history } = this.props; history.push("/config/role/" + role.name + "/info"); }; - createRepositoryRole = (role: Role) => { + createRepositoryRole = (role: RepositoryRole) => { this.props.addRole(this.props.repositoryRolesLink, role, () => this.repositoryRoleCreated(role) ); @@ -75,7 +75,7 @@ const mapStateToProps = (state, ownProps) => { const mapDispatchToProps = dispatch => { return { - addRole: (link: string, role: Role, callback?: () => void) => { + addRole: (link: string, role: RepositoryRole, callback?: () => void) => { dispatch(createRole(link, role, callback)); } }; diff --git a/scm-ui/src/config/roles/containers/EditRepositoryRole.js b/scm-ui/src/config/roles/containers/EditRepositoryRole.js index 1555c63ce8..deb0a77583 100644 --- a/scm-ui/src/config/roles/containers/EditRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/EditRepositoryRole.js @@ -9,25 +9,29 @@ import { modifyRole } from "../modules/roles"; import { ErrorNotification } from "@scm-manager/ui-components"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; type Props = { disabled: boolean, - role: Role, + role: RepositoryRole, repositoryRolesLink: string, error?: Error, //dispatch function - updateRole: (link: string, role: Role, callback?: () => void) => void + updateRole: ( + link: string, + role: RepositoryRole, + callback?: () => void + ) => void }; class EditRepositoryRole extends React.Component { - repositoryRoleUpdated = (role: Role) => { + repositoryRoleUpdated = (role: RepositoryRole) => { const { history } = this.props; history.push("/config/roles/"); }; - updateRepositoryRole = (role: Role) => { + updateRepositoryRole = (role: RepositoryRole) => { this.props.updateRole(role, () => this.repositoryRoleUpdated(role)); }; @@ -62,7 +66,7 @@ const mapStateToProps = (state, ownProps) => { const mapDispatchToProps = dispatch => { return { - updateRole: (role: Role, callback?: () => void) => { + updateRole: (role: RepositoryRole, callback?: () => void) => { dispatch(modifyRole(role, callback)); } }; diff --git a/scm-ui/src/config/roles/containers/RepositoryRoleForm.js b/scm-ui/src/config/roles/containers/RepositoryRoleForm.js index 3515cddcfb..43d901a285 100644 --- a/scm-ui/src/config/roles/containers/RepositoryRoleForm.js +++ b/scm-ui/src/config/roles/containers/RepositoryRoleForm.js @@ -2,7 +2,7 @@ import React from "react"; import { connect } from "react-redux"; import { translate } from "react-i18next"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import { InputField, SubmitButton } from "@scm-manager/ui-components"; import PermissionCheckbox from "../../../repos/permissions/components/PermissionCheckbox"; import { @@ -11,15 +11,18 @@ import { getVerbsFromState, isFetchVerbsPending } from "../modules/roles"; -import {getRepositoryRolesLink, getRepositoryVerbsLink} from "../../../modules/indexResource"; +import { + getRepositoryRolesLink, + getRepositoryVerbsLink +} from "../../../modules/indexResource"; type Props = { - role?: Role, + role?: RepositoryRole, loading?: boolean, nameDisabled: boolean, availableVerbs: string[], verbsLink: string, - submitForm: Role => void, + submitForm: RepositoryRole => void, // context objects t: string => string, @@ -29,7 +32,7 @@ type Props = { }; type State = { - role: Role + role: RepositoryRole }; class RepositoryRoleForm extends React.Component { @@ -47,10 +50,10 @@ class RepositoryRoleForm extends React.Component { } componentDidMount() { - const { fetchAvailableVerbs, verbsLink} = this.props; + const { fetchAvailableVerbs, verbsLink } = this.props; fetchAvailableVerbs(verbsLink); if (this.props.role) { - this.setState({role: this.props.role}) + this.setState({ role: this.props.role }); } } @@ -95,7 +98,7 @@ class RepositoryRoleForm extends React.Component { submit = (event: Event) => { event.preventDefault(); if (this.isValid()) { - this.props.submitForm(this.state.role) + this.props.submitForm(this.state.role); } }; @@ -163,7 +166,7 @@ const mapDispatchToProps = dispatch => { return { fetchAvailableVerbs: (link: string) => { dispatch(fetchAvailableVerbs(link)); - }, + } }; }; diff --git a/scm-ui/src/config/roles/containers/RepositoryRoles.js b/scm-ui/src/config/roles/containers/RepositoryRoles.js index c9c0a5dd49..f148b120e0 100644 --- a/scm-ui/src/config/roles/containers/RepositoryRoles.js +++ b/scm-ui/src/config/roles/containers/RepositoryRoles.js @@ -1,10 +1,10 @@ // @flow import React from "react"; import { connect } from "react-redux"; -import {withRouter} from "react-router-dom"; +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 type { RepositoryRole, PagedCollection } from "@scm-manager/ui-types"; import { Title, Loading, @@ -25,7 +25,7 @@ import PermissionRoleTable from "../components/PermissionRoleTable"; import { getRolesLink } from "../../../modules/indexResource"; type Props = { baseUrl: string, - roles: Role[], + roles: RepositoryRole[], loading: boolean, error: Error, canAddRoles: boolean, @@ -90,19 +90,26 @@ class RepositoryRoles extends React.Component { return ( <> - + ); } return ( - {t("repositoryRole.noPermissionRoles")} + + {t("repositoryRole.noPermissionRoles")} + ); } renderCreateButton() { const { canAddRoles, baseUrl, t } = this.props; if (canAddRoles) { - return ; + return ( + + ); } return null; } @@ -137,7 +144,9 @@ const mapDispatchToProps = dispatch => { }; }; -export default withRouter(connect( - mapStateToProps, - mapDispatchToProps -)(translate("config")(RepositoryRoles))); +export default withRouter( + connect( + mapStateToProps, + mapDispatchToProps + )(translate("config")(RepositoryRoles)) +); diff --git a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js index e234c7c38b..3bb951ac1a 100644 --- a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js @@ -5,7 +5,7 @@ import { Loading, ErrorPage, Title } from "@scm-manager/ui-components"; import { Route } from "react-router"; import type { History } from "history"; import { translate } from "react-i18next"; -import type { Role } from "@scm-manager/ui-types"; +import type { RepositoryRole } from "@scm-manager/ui-types"; import { getRepositoryRolesLink } from "../../../modules/indexResource"; import { ExtensionPoint } from "@scm-manager/ui-extensions"; import { @@ -20,7 +20,7 @@ import EditRepositoryRole from "./EditRepositoryRole"; type Props = { roleName: string, - role: Role, + role: RepositoryRole, loading: boolean, error: Error, repositoryRolesLink: string, @@ -83,22 +83,22 @@ class SingleRepositoryRole extends React.Component { <div className="columns"> <div className="column is-three-quarters"> - <Route - path={`${url}/info`} - component={() => ( - <PermissionRoleDetail role={role} url={url} /> - )} - /> - <Route - path={`${url}/edit`} - exact - component={() => <EditRepositoryRole role={role} history={this.props.history} />} - /> - <ExtensionPoint - name="roles.route" - props={extensionProps} - renderAll={true} - /> + <Route + path={`${url}/info`} + component={() => <PermissionRoleDetail role={role} url={url} />} + /> + <Route + path={`${url}/edit`} + exact + component={() => ( + <EditRepositoryRole role={role} history={this.props.history} /> + )} + /> + <ExtensionPoint + name="roles.route" + props={extensionProps} + renderAll={true} + /> </div> </div> </> diff --git a/scm-ui/src/config/roles/modules/roles.js b/scm-ui/src/config/roles/modules/roles.js index a7a3ce3d93..fffc395e9e 100644 --- a/scm-ui/src/config/roles/modules/roles.js +++ b/scm-ui/src/config/roles/modules/roles.js @@ -4,7 +4,11 @@ import { isPending } from "../../../modules/pending"; import { getFailure } from "../../../modules/failure"; import * as types from "../../../modules/types"; import { combineReducers, Dispatch } from "redux"; -import type {Action, PagedCollection, Repository, Role} from "@scm-manager/ui-types"; +import type { + Action, + PagedCollection, + RepositoryRole +} from "@scm-manager/ui-types"; export const FETCH_ROLES = "scm/roles/FETCH_ROLES"; export const FETCH_ROLES_PENDING = `${FETCH_ROLES}_${types.PENDING_SUFFIX}`; @@ -138,12 +142,12 @@ export function fetchRoleByName(link: string, name: string) { return fetchRole(roleUrl, name); } -export function fetchRoleByLink(role: Role) { +export function fetchRoleByLink(role: RepositoryRole) { return fetchRole(role._links.self.href, role.name); } // create role -export function createRolePending(role: Role): Action { +export function createRolePending(role: RepositoryRole): Action { return { type: CREATE_ROLE_PENDING, role @@ -169,7 +173,11 @@ export function createRoleReset() { }; } -export function createRole(link: string, role: Role, callback?: () => void) { +export function createRole( + link: string, + role: RepositoryRole, + callback?: () => void +) { return function(dispatch: Dispatch) { dispatch(createRolePending(role)); return apiClient @@ -233,7 +241,7 @@ function verbReducer(state: any = {}, action: any = {}) { } // modify role -export function modifyRolePending(role: Role): Action { +export function modifyRolePending(role: RepositoryRole): Action { return { type: MODIFY_ROLE_PENDING, payload: role, @@ -241,7 +249,7 @@ export function modifyRolePending(role: Role): Action { }; } -export function modifyRoleSuccess(role: Role): Action { +export function modifyRoleSuccess(role: RepositoryRole): Action { return { type: MODIFY_ROLE_SUCCESS, payload: role, @@ -249,7 +257,7 @@ export function modifyRoleSuccess(role: Role): Action { }; } -export function modifyRoleFailure(role: Role, error: Error): Action { +export function modifyRoleFailure(role: RepositoryRole, error: Error): Action { return { type: MODIFY_ROLE_FAILURE, payload: { @@ -260,14 +268,14 @@ export function modifyRoleFailure(role: Role, error: Error): Action { }; } -export function modifyRoleReset(role: Role): Action { +export function modifyRoleReset(role: RepositoryRole): Action { return { type: MODIFY_ROLE_RESET, itemId: role.name }; } -export function modifyRole(role: Role, callback?: () => void) { +export function modifyRole(role: RepositoryRole, callback?: () => void) { return function(dispatch: Dispatch) { dispatch(modifyRolePending(role)); return apiClient @@ -288,7 +296,7 @@ export function modifyRole(role: Role, callback?: () => void) { } // delete role -export function deleteRolePending(role: Role): Action { +export function deleteRolePending(role: RepositoryRole): Action { return { type: DELETE_ROLE_PENDING, payload: role, @@ -296,7 +304,7 @@ export function deleteRolePending(role: Role): Action { }; } -export function deleteRoleSuccess(role: Role): Action { +export function deleteRoleSuccess(role: RepositoryRole): Action { return { type: DELETE_ROLE_SUCCESS, payload: role, @@ -304,7 +312,7 @@ export function deleteRoleSuccess(role: Role): Action { }; } -export function deleteRoleFailure(role: Role, error: Error): Action { +export function deleteRoleFailure(role: RepositoryRole, error: Error): Action { return { type: DELETE_ROLE_FAILURE, payload: { @@ -315,7 +323,7 @@ export function deleteRoleFailure(role: Role, error: Error): Action { }; } -export function deleteRole(role: Role, callback?: () => void) { +export function deleteRole(role: RepositoryRole, callback?: () => void) { return function(dispatch: any) { dispatch(deleteRolePending(role)); return apiClient @@ -333,7 +341,7 @@ export function deleteRole(role: Role, callback?: () => void) { } function extractRolesByNames( - roles: Role[], + roles: RepositoryRole[], roleNames: string[], oldRolesByNames: Object ) { @@ -460,7 +468,7 @@ export function getRolesFromState(state: Object) { if (!roleNames) { return null; } - const roleEntries: Role[] = []; + const roleEntries: RepositoryRole[] = []; for (let roleName of roleNames) { roleEntries.push(state.roles.byNames[roleName]); @@ -470,12 +478,7 @@ export function getRolesFromState(state: Object) { } export function getRoleCreateLink(state: Object) { - if ( - state && - state.list && - state.list._links && - state.list._links.create - ) { + if (state && state.list && state.list._links && state.list._links.create) { return state.list._links.create.href; } }