From 6c627bfe005fce88226e11499be1316ec6ebd141 Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Wed, 15 May 2019 16:41:14 +0200 Subject: [PATCH] update RepositoryRoleDetailsView --- .../roles/components/PermissionRoleDetail.js | 29 --------- .../roles/components/PermissionRoleDetails.js | 37 +++++++++++ .../components/PermissionRoleDetailsTable.js | 65 +++++++++++++++++++ .../roles/containers/SingleRepositoryRole.js | 55 +++++++++------- 4 files changed, 135 insertions(+), 51 deletions(-) delete mode 100644 scm-ui/src/config/roles/components/PermissionRoleDetail.js create mode 100644 scm-ui/src/config/roles/components/PermissionRoleDetails.js create mode 100644 scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js diff --git a/scm-ui/src/config/roles/components/PermissionRoleDetail.js b/scm-ui/src/config/roles/components/PermissionRoleDetail.js deleted file mode 100644 index 496443eef2..0000000000 --- a/scm-ui/src/config/roles/components/PermissionRoleDetail.js +++ /dev/null @@ -1,29 +0,0 @@ -//@flow -import React from "react"; -import { translate } from "react-i18next"; -import type { Role } from "@scm-manager/ui-types"; -import SystemRoleTag from "./SystemRoleTag"; - -type Props = { - role: Role, - - // context props - t: string => string, -}; - -class PermissionRoleDetail extends React.Component { - render() { - const { role, t } = this.props; - - return ( -
-
- {t("role.name")}: {role.name}{" "} - -
-
- ); - } -} - -export default translate("config")(PermissionRoleDetail); diff --git a/scm-ui/src/config/roles/components/PermissionRoleDetails.js b/scm-ui/src/config/roles/components/PermissionRoleDetails.js new file mode 100644 index 0000000000..f4793cf067 --- /dev/null +++ b/scm-ui/src/config/roles/components/PermissionRoleDetails.js @@ -0,0 +1,37 @@ +//@flow +import React from "react"; +import { translate } from "react-i18next"; +import type { Role } from "@scm-manager/ui-types"; +import ExtensionPoint from "@scm-manager/ui-extensions/lib/ExtensionPoint"; +import PermissionRoleDetailsTable from "./PermissionRoleDetailsTable"; + +type Props = { + role: Role, + + // context props + t: string => string, +}; + +class PermissionRoleDetails extends React.Component { + render() { + const { role } = this.props; + + return ( + +
+ +
+
+ +
+
+ + ); + } +} + +export default translate("roles")(PermissionRoleDetails); diff --git a/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js b/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js new file mode 100644 index 0000000000..a66b080adf --- /dev/null +++ b/scm-ui/src/config/roles/components/PermissionRoleDetailsTable.js @@ -0,0 +1,65 @@ +//@flow +import React from "react"; +import type { Role } from "@scm-manager/ui-types"; +import { translate } from "react-i18next"; +import { compose } from "redux"; +import injectSheet from "react-jss"; + +type Props = { + role: Role, + // context props + t: string => string +}; + +const styles = { + spacing: { + padding: "0 !important" + } +}; + +class PermissionRoleDetailsTable extends React.Component { + render() { + const { role, t } = this.props; + return ( + + + + + + + + + + + {this.renderVerbs()} + +
{t("repositoryRole.name")}{role.name}
{t("repositoryRole.type")}{role.type}
+ ); + } + + renderVerbs() { + const { role, t, classes } = this.props; + + let verbs = null; + if (role.verbs.length > 0) { + verbs = ( + + {t("repositoryRole.verbs")} + +
    + {role.verbs.map(verb => { + return
  • {verb}
  • ; + })} +
+ + + ); + } + return verbs; + } +} + +export default compose( + injectSheet(styles), + translate("roles") +)(PermissionRoleDetailsTable); diff --git a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js index cc4e94cdd0..6c77bfd46b 100644 --- a/scm-ui/src/config/roles/containers/SingleRepositoryRole.js +++ b/scm-ui/src/config/roles/containers/SingleRepositoryRole.js @@ -1,22 +1,24 @@ //@flow import React from "react"; import { connect } from "react-redux"; -import { - Page, - Loading, - ErrorPage -} from "@scm-manager/ui-components"; +import {Loading, ErrorPage, Title} from "@scm-manager/ui-components"; import { Route } from "react-router"; import type { History } from "history"; -import { EditRepositoryRoleNavLink, RepositoryRoleDetailNavLink } from "../../components/navLinks"; +import { + EditRepositoryRoleNavLink, +} from "../../components/navLinks"; import { translate } from "react-i18next"; import type { Role } from "@scm-manager/ui-types"; -import {getRepositoryRolesLink} from "../../../modules/indexResource"; -import {ExtensionPoint} from "@scm-manager/ui-extensions"; -import {fetchRoleByName, getFetchRoleFailure, getRoleByName, isFetchRolePending} from "../modules/roles"; -import RepositoryRoleForm from "./RepositoryRoleForm"; -import {withRouter} from "react-router-dom"; -import PermissionRoleDetail from "../components/PermissionRoleDetail"; +import { getRepositoryRolesLink } from "../../../modules/indexResource"; +import { ExtensionPoint } from "@scm-manager/ui-extensions"; +import { + fetchRoleByName, + getFetchRoleFailure, + getRoleByName, + isFetchRolePending +} from "../modules/roles"; +import { withRouter } from "react-router-dom"; +import PermissionRoleDetail from "../components/PermissionRoleDetails"; type Props = { roleName: string, @@ -37,8 +39,11 @@ type Props = { class SingleRepositoryRole extends React.Component { componentDidMount() { - this.props.fetchRoleByName(this.props.repositoryRolesLink, this.props.roleName); - console.log(this.props.match) + this.props.fetchRoleByName( + this.props.repositoryRolesLink, + this.props.roleName + ); + console.log(this.props.match); } stripEndingSlash = (url: string) => { @@ -77,22 +82,26 @@ class SingleRepositoryRole extends React.Component { }; return ( - + <> + <div className="columns"> <div className="column is-three-quarters"> - <Route path={url} component={() => <PermissionRoleDetail role={role} />} /> + <Route + path={url} + component={() => <PermissionRoleDetail role={role} />} + /> <Route path={`${url}/settings/general`} component={() => <EditRepositoryRoleNavLink role={role} />} /> <ExtensionPoint - name="user.route" + name="roles.route" props={extensionProps} renderAll={true} /> </div> </div> - </Page> + </> ); } } @@ -120,7 +129,9 @@ const mapDispatchToProps = dispatch => { }; }; -export default withRouter(connect( - mapStateToProps, - mapDispatchToProps -)(translate("users")(SingleRepositoryRole))); +export default withRouter( + connect( + mapStateToProps, + mapDispatchToProps + )(translate("config")(SingleRepositoryRole)) +);