diff --git a/scm-ui/src/config/containers/Config.js b/scm-ui/src/config/containers/Config.js index 61e5931e24..08ad13b833 100644 --- a/scm-ui/src/config/containers/Config.js +++ b/scm-ui/src/config/containers/Config.js @@ -1,7 +1,7 @@ // @flow import React from "react"; import { translate } from "react-i18next"; -import { Route } from "react-router"; +import { Route, Switch } from "react-router-dom"; import { ExtensionPoint } from "@scm-manager/ui-extensions"; import type { History } from "history"; import { connect } from "react-redux"; @@ -54,6 +54,7 @@ class Config extends React.Component {
+ { path={`${url}/roles/create`} render={() => } /> + } + /> +
@@ -82,7 +89,7 @@ class Config extends React.Component { label={t("config.globalConfigurationNavLink")} /> diff --git a/scm-ui/src/config/roles/containers/EditRepositoryRole.js b/scm-ui/src/config/roles/containers/EditRepositoryRole.js index 98599863fc..0bc7e71e8d 100644 --- a/scm-ui/src/config/roles/containers/EditRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/EditRepositoryRole.js @@ -25,7 +25,7 @@ class EditRepositoryRole extends React.Component { repositoryRoleUpdated = (role: Role) => { const { history } = this.props; - history.push("/config/roles"); + history.push("/config/roles/"); }; updateRepositoryRole = (role: Role) => { diff --git a/scm-ui/src/config/roles/containers/RepositoryRoles.js b/scm-ui/src/config/roles/containers/RepositoryRoles.js index 35f2888e89..c9c0a5dd49 100644 --- a/scm-ui/src/config/roles/containers/RepositoryRoles.js +++ b/scm-ui/src/config/roles/containers/RepositoryRoles.js @@ -47,6 +47,27 @@ class RepositoryRoles extends React.Component { fetchRolesByPage(rolesLink, page); } + componentDidUpdate = (prevProps: Props) => { + const { + loading, + list, + page, + rolesLink, + location, + fetchRolesByPage + } = this.props; + if (list && page && !loading) { + const statePage: number = list.page + 1; + if (page !== statePage || prevProps.location.search !== location.search) { + fetchRolesByPage( + rolesLink, + page, + urls.getQueryStringFromLocation(location) + ); + } + } + }; + render() { const { t, loading } = this.props; diff --git a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js index d42d36e173..e234c7c38b 100644 --- a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js @@ -64,7 +64,7 @@ class SingleRepositoryRole extends React.Component { subtitle={t("repositoryRole.errorSubtitle")} error={error} /> - );0 + ); } if (!role || loading) {