From b1b38276ab50cf8c5e7fcf7f5a327fe9477272ca Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Fri, 18 Jan 2019 15:26:55 +0100 Subject: [PATCH] moved funcs from singleuser to deleteuser + renamed edit to general --- scm-ui/public/locales/en/users.json | 4 +- scm-ui/src/users/components/DeleteUser.js | 54 ++++++++++++++++++- .../src/users/components/DeleteUser.test.js | 2 +- scm-ui/src/users/containers/SingleUser.js | 32 +++-------- 4 files changed, 63 insertions(+), 29 deletions(-) diff --git a/scm-ui/public/locales/en/users.json b/scm-ui/public/locales/en/users.json index efcfab95b7..957fb8f12c 100644 --- a/scm-ui/public/locales/en/users.json +++ b/scm-ui/public/locales/en/users.json @@ -38,8 +38,8 @@ "navigationLabel": "User Navigation", "informationNavLink": "Information", "settingsNavLink": "Settings", - "editNavLink": "Edit", - "setPasswordNavLink": "Set password", + "editNavLink": "General", + "setPasswordNavLink": "Password", "errorTitle": "Error", "errorSubtitle": "Unknown user error" }, diff --git a/scm-ui/src/users/components/DeleteUser.js b/scm-ui/src/users/components/DeleteUser.js index 4037f5bed6..775f243ac6 100644 --- a/scm-ui/src/users/components/DeleteUser.js +++ b/scm-ui/src/users/components/DeleteUser.js @@ -3,15 +3,37 @@ import React from "react"; import { translate } from "react-i18next"; import type { User } from "@scm-manager/ui-types"; import { DeleteButton, confirmAlert } from "@scm-manager/ui-components"; +import {connect} from "react-redux"; +import { + deleteUser, fetchUserByName, + getDeleteUserFailure, + getUserByName, + isDeleteUserPending, +} from "../modules/users"; +import type {History} from "history"; type Props = { user: User, confirmDialog?: boolean, + + // dispatcher functions + fetchUserByName: (string, string) => void, + deleteUser: (user: User, callback?: () => void) => void, + + // context objects t: string => string, - deleteUser: (user: User) => void + history: History }; class DeleteUser extends React.Component { + userDeleted = () => { + this.props.history.push("/users"); + }; + + deleteUser = (user: User) => { + this.props.deleteUser(user, this.userDeleted); + }; + static defaultProps = { confirmDialog: true }; @@ -53,4 +75,34 @@ class DeleteUser extends React.Component { } } +/* +const mapStateToProps = (state, ownProps) => { + const name = ownProps.match.params.name; + const user = getUserByName(state, name); + const loading = isDeleteUserPending(state, name); + const error = getDeleteUserFailure(state, name); + return { + name, + user, + loading, + error + }; +}; + +const mapDispatchToProps = dispatch => { + return { + fetchUserByName: (link: string, name: string) => { + dispatch(fetchUserByName(link, name)); + }, + deleteUser: (user: User, callback?: () => void) => { + dispatch(deleteUser(user, callback)); + } + }; +}; + +export default connect( + mapStateToProps, + mapDispatchToProps +)(translate("users")(DeleteUser)); +*/ export default translate("users")(DeleteUser); diff --git a/scm-ui/src/users/components/DeleteUser.test.js b/scm-ui/src/users/components/DeleteUser.test.js index 55c49c6648..e03aad5b49 100644 --- a/scm-ui/src/users/components/DeleteUser.test.js +++ b/scm-ui/src/users/components/DeleteUser.test.js @@ -2,7 +2,7 @@ import React from "react"; import { mount, shallow } from "enzyme"; import "../../tests/enzyme"; import "../../../tests/i18n"; -import DeleteUser from "../DeleteUser"; +import DeleteUser from "./DeleteUser"; import { confirmAlert } from "@scm-manager/ui-components"; jest.mock("@scm-manager/ui-components", () => ({ diff --git a/scm-ui/src/users/containers/SingleUser.js b/scm-ui/src/users/containers/SingleUser.js index dfc07d5942..b33e8dd906 100644 --- a/scm-ui/src/users/containers/SingleUser.js +++ b/scm-ui/src/users/containers/SingleUser.js @@ -17,14 +17,10 @@ import type { User } from "@scm-manager/ui-types"; import type { History } from "history"; import { fetchUserByName, - deleteUser, getUserByName, isFetchUserPending, - getFetchUserFailure, - isDeleteUserPending, - getDeleteUserFailure + getFetchUserFailure } from "../modules/users"; - import { EditUserNavLink, SetPasswordNavLink @@ -40,8 +36,7 @@ type Props = { error: Error, usersLink: string, - // dispatcher functions - deleteUser: (user: User, callback?: () => void) => void, + // dispatcher function fetchUserByName: (string, string) => void, // context objects @@ -55,14 +50,6 @@ class SingleUser extends React.Component { this.props.fetchUserByName(this.props.usersLink, this.props.name); } - userDeleted = () => { - this.props.history.push("/users"); - }; - - deleteUser = (user: User) => { - this.props.deleteUser(user, this.userDeleted); - }; - stripEndingSlash = (url: string) => { if (url.endsWith("/")) { return url.substring(0, url.length - 2); @@ -99,7 +86,7 @@ class SingleUser extends React.Component {
} /> } /> { label={t("single-user.informationNavLink")} /> - + { const mapStateToProps = (state, ownProps) => { const name = ownProps.match.params.name; const user = getUserByName(state, name); - const loading = - isFetchUserPending(state, name) || isDeleteUserPending(state, name); - const error = - getFetchUserFailure(state, name) || getDeleteUserFailure(state, name); + const loading = isFetchUserPending(state, name); + const error = getFetchUserFailure(state, name); const usersLink = getUsersLink(state); return { usersLink, @@ -154,9 +139,6 @@ const mapDispatchToProps = dispatch => { return { fetchUserByName: (link: string, name: string) => { dispatch(fetchUserByName(link, name)); - }, - deleteUser: (user: User, callback?: () => void) => { - dispatch(deleteUser(user, callback)); } }; };