From bb5e3c9c58b83c6942c0fa3c6bdf2a86ced6a896 Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Mon, 1 Apr 2019 09:52:39 +0200 Subject: [PATCH] added gitbranchinformation binding --- .../src/main/js/CloneInformation.js | 4 +- .../src/main/js/GitBranchInformation.js | 33 +++++++++++++ .../src/main/js/GitConfigurationForm.js | 48 +++++++++---------- .../scm-git-plugin/src/main/js/index.js | 6 +++ .../main/resources/locales/de/plugins.json | 10 ++-- .../main/resources/locales/en/plugins.json | 2 + .../repos/branches/containers/BranchView.js | 4 +- 7 files changed, 74 insertions(+), 33 deletions(-) create mode 100644 scm-plugins/scm-git-plugin/src/main/js/GitBranchInformation.js diff --git a/scm-plugins/scm-git-plugin/src/main/js/CloneInformation.js b/scm-plugins/scm-git-plugin/src/main/js/CloneInformation.js index 177e662335..cdd08927e4 100644 --- a/scm-plugins/scm-git-plugin/src/main/js/CloneInformation.js +++ b/scm-plugins/scm-git-plugin/src/main/js/CloneInformation.js @@ -8,11 +8,10 @@ type Props = { repository: Repository, // context props - t: (string) => string + t: string => string }; class CloneInformation extends React.Component { - render() { const { url, repository, t } = this.props; @@ -51,7 +50,6 @@ class CloneInformation extends React.Component { ); } - } export default translate("plugins")(CloneInformation); diff --git a/scm-plugins/scm-git-plugin/src/main/js/GitBranchInformation.js b/scm-plugins/scm-git-plugin/src/main/js/GitBranchInformation.js new file mode 100644 index 0000000000..1453d7dd5e --- /dev/null +++ b/scm-plugins/scm-git-plugin/src/main/js/GitBranchInformation.js @@ -0,0 +1,33 @@ +//@flow +import React from "react"; +import type { Repository } from "@scm-manager/ui-types"; +import { translate } from "react-i18next"; + +type Props = { + repository: Repository, + t: string => string +}; + +class GitBranchInformation extends React.Component { + render() { + const { repository, t } = this.props; + + return ( +
+

{t("scm-git-plugin.information.fetch")}

+
+          git fetch
+        
+

{t("scm-git-plugin.information.checkout")}

+
+          
+            git checkout -placeholder-
+            
+
+
+
+ ); // TODO: Placeholder + } +} + +export default translate("plugins")(GitBranchInformation); diff --git a/scm-plugins/scm-git-plugin/src/main/js/GitConfigurationForm.js b/scm-plugins/scm-git-plugin/src/main/js/GitConfigurationForm.js index 692611510f..bc7e51102a 100644 --- a/scm-plugins/scm-git-plugin/src/main/js/GitConfigurationForm.js +++ b/scm-plugins/scm-git-plugin/src/main/js/GitConfigurationForm.js @@ -10,7 +10,7 @@ type Configuration = { gcExpression?: string, nonFastForwardDisallowed: boolean, _links: Links -} +}; type Props = { initialConfiguration: Configuration, @@ -19,25 +19,24 @@ type Props = { onConfigurationChange: (Configuration, boolean) => void, // context props - t: (string) => string -} + t: string => string +}; -type State = Configuration & { - -} +type State = Configuration & {}; class GitConfigurationForm extends React.Component { - constructor(props: Props) { super(props); this.state = { ...props.initialConfiguration }; } - handleChange = (value: any, name: string) => { - this.setState({ - [name]: value - }, () => this.props.onConfigurationChange(this.state, true)); + this.setState( + { + [name]: value + }, + () => this.props.onConfigurationChange(this.state, true) + ); }; render() { @@ -46,24 +45,25 @@ class GitConfigurationForm extends React.Component { return ( <> - - ); } - } export default translate("plugins")(GitConfigurationForm); diff --git a/scm-plugins/scm-git-plugin/src/main/js/index.js b/scm-plugins/scm-git-plugin/src/main/js/index.js index 43e3950beb..0dafbe4227 100644 --- a/scm-plugins/scm-git-plugin/src/main/js/index.js +++ b/scm-plugins/scm-git-plugin/src/main/js/index.js @@ -6,6 +6,7 @@ import GitAvatar from "./GitAvatar"; import {ConfigurationBinder as cfgBinder} from "@scm-manager/ui-components"; import GitGlobalConfiguration from "./GitGlobalConfiguration"; +import GitBranchInformation from "./GitBranchInformation"; import GitMergeInformation from "./GitMergeInformation"; import RepositoryConfig from "./RepositoryConfig"; @@ -20,6 +21,11 @@ binder.bind( ProtocolInformation, gitPredicate ); +binder.bind( + "repos.branch-details.information", + GitBranchInformation, + gitPredicate +); binder.bind( "repos.repository-merge.information", GitMergeInformation, diff --git a/scm-plugins/scm-git-plugin/src/main/resources/locales/de/plugins.json b/scm-plugins/scm-git-plugin/src/main/resources/locales/de/plugins.json index 578d859c8e..e150ceb42b 100644 --- a/scm-plugins/scm-git-plugin/src/main/resources/locales/de/plugins.json +++ b/scm-plugins/scm-git-plugin/src/main/resources/locales/de/plugins.json @@ -1,9 +1,11 @@ { "scm-git-plugin": { "information": { - "clone" : "Repository klonen", - "create" : "Neues Repository erstellen", - "replace" : "Ein bestehendes Repository aktualisieren", + "clone": "Repository klonen", + "create": "Neues Repository erstellen", + "replace": "Ein bestehendes Repository aktualisieren", + "fetch": "Remote-Änderungen herunterladen", + "checkout": "Branch wechseln", "merge": { "heading": "Merge des Source Branch in den Target Branch", "checkout": "1. Sicherstellen, dass der Workspace aufgeräumt ist und der Target Branch ausgecheckt wurde.", @@ -37,7 +39,7 @@ "success": "Der standard Branch wurde geändert!" } }, - "permissions" : { + "permissions": { "configuration": { "read,write": { "git": { diff --git a/scm-plugins/scm-git-plugin/src/main/resources/locales/en/plugins.json b/scm-plugins/scm-git-plugin/src/main/resources/locales/en/plugins.json index bea0a08dc9..22eb46b9f8 100644 --- a/scm-plugins/scm-git-plugin/src/main/resources/locales/en/plugins.json +++ b/scm-plugins/scm-git-plugin/src/main/resources/locales/en/plugins.json @@ -4,6 +4,8 @@ "clone": "Clone the repository", "create": "Create a new repository", "replace": "Push an existing repository", + "fetch": "Get remote changes", + "checkout": "Switch branch", "merge": { "heading": "How to merge source branch into target branch", "checkout": "1. Make sure your workspace is clean and checkout target branch", diff --git a/scm-ui/src/repos/branches/containers/BranchView.js b/scm-ui/src/repos/branches/containers/BranchView.js index 459a532b4a..3fe2985fb5 100644 --- a/scm-ui/src/repos/branches/containers/BranchView.js +++ b/scm-ui/src/repos/branches/containers/BranchView.js @@ -82,8 +82,8 @@ const mapStateToProps = (state, ownProps) => { const mapDispatchToProps = dispatch => { return { - fetchBranchByName: (repository: string, branchName: string) => { - dispatch(fetchBranchByName(repository, branchName)); + fetchBranchByName: (repository: Repository, branchName: string) => { + dispatch(fetchBranchByName(repository._links.branches.href, branchName)); } }; };