From 5bb4f04667c641c86bcbaabbbd3cedcb0201bf66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Tue, 13 Nov 2018 13:09:02 +0100 Subject: [PATCH 01/12] renaming GlobalConfiguration to Configuration --- .../scm-git-plugin/src/main/js/GitGlobalConfiguration.js | 4 ++-- .../scm-hg-plugin/src/main/js/HgGlobalConfiguration.js | 4 ++-- .../scm-svn-plugin/src/main/js/SvnGlobalConfiguration.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/js/GitGlobalConfiguration.js b/scm-plugins/scm-git-plugin/src/main/js/GitGlobalConfiguration.js index 3718cc2900..ab5147e8e3 100644 --- a/scm-plugins/scm-git-plugin/src/main/js/GitGlobalConfiguration.js +++ b/scm-plugins/scm-git-plugin/src/main/js/GitGlobalConfiguration.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import { translate } from "react-i18next"; -import { Title, GlobalConfiguration } from "@scm-manager/ui-components"; +import { Title, Configuration } from "@scm-manager/ui-components"; import GitConfigurationForm from "./GitConfigurationForm"; type Props = { @@ -22,7 +22,7 @@ class GitGlobalConfiguration extends React.Component { return (
- <GlobalConfiguration link={link} render={props => <GitConfigurationForm {...props} />}/> + <Configuration link={link} render={props => <GitConfigurationForm {...props} />}/> </div> ); } diff --git a/scm-plugins/scm-hg-plugin/src/main/js/HgGlobalConfiguration.js b/scm-plugins/scm-hg-plugin/src/main/js/HgGlobalConfiguration.js index e92672a282..4eb4e0da41 100644 --- a/scm-plugins/scm-hg-plugin/src/main/js/HgGlobalConfiguration.js +++ b/scm-plugins/scm-hg-plugin/src/main/js/HgGlobalConfiguration.js @@ -1,6 +1,6 @@ //@flow import React from "react"; -import { Title, GlobalConfiguration } from "@scm-manager/ui-components"; +import { Title, Configuration } from "@scm-manager/ui-components"; import { translate } from "react-i18next"; import HgConfigurationForm from "./HgConfigurationForm"; @@ -18,7 +18,7 @@ class HgGlobalConfiguration extends React.Component<Props> { return ( <div> <Title title={t("scm-hg-plugin.config.title")}/> - <GlobalConfiguration link={link} render={props => <HgConfigurationForm {...props} />}/> + <Configuration link={link} render={props => <HgConfigurationForm {...props} />}/> </div> ); } diff --git a/scm-plugins/scm-svn-plugin/src/main/js/SvnGlobalConfiguration.js b/scm-plugins/scm-svn-plugin/src/main/js/SvnGlobalConfiguration.js index c17829a67f..e6ea1783d7 100644 --- a/scm-plugins/scm-svn-plugin/src/main/js/SvnGlobalConfiguration.js +++ b/scm-plugins/scm-svn-plugin/src/main/js/SvnGlobalConfiguration.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import { translate } from "react-i18next"; -import { Title, GlobalConfiguration } from "@scm-manager/ui-components"; +import { Title, Configuration } from "@scm-manager/ui-components"; import SvnConfigurationForm from "./SvnConfigurationForm"; type Props = { @@ -18,7 +18,7 @@ class SvnGlobalConfiguration extends React.Component<Props> { return ( <div> <Title title={t("scm-svn-plugin.config.title")}/> - <GlobalConfiguration link={link} render={props => <SvnConfigurationForm {...props} />}/> + <Configuration link={link} render={props => <SvnConfigurationForm {...props} />}/> </div> ); } From 9402856c1aff7307ef798262baf83fbd36cfc8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Tue, 13 Nov 2018 13:09:59 +0100 Subject: [PATCH 02/12] renaming GlobalConfiguration --- .../ui-components/src/config/Configuration.js | 162 ++++++++++++++++++ .../ui-components/src/config/index.js | 3 +- 2 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 scm-ui-components/packages/ui-components/src/config/Configuration.js diff --git a/scm-ui-components/packages/ui-components/src/config/Configuration.js b/scm-ui-components/packages/ui-components/src/config/Configuration.js new file mode 100644 index 0000000000..07b68f39a6 --- /dev/null +++ b/scm-ui-components/packages/ui-components/src/config/Configuration.js @@ -0,0 +1,162 @@ +//@flow +import React from "react"; +import { translate } from "react-i18next"; +import type { Links } from "@scm-manager/ui-types"; +import { + apiClient, + SubmitButton, + Loading, + ErrorNotification +} from "../"; + +type RenderProps = { + readOnly: boolean, + initialConfiguration: ConfigurationType, + onConfigurationChange: (ConfigurationType, boolean) => void +}; + +type Props = { + link: string, + render: (props: RenderProps) => any, // ??? + + // context props + t: (string) => string +}; + +type ConfigurationType = { + _links: Links +} & Object; + +type State = { + error?: Error, + fetching: boolean, + modifying: boolean, + contentType?: string, + + configuration?: ConfigurationType, + modifiedConfiguration?: ConfigurationType, + valid: boolean +}; + +/** + * GlobalConfiguration uses the render prop pattern to encapsulate the logic for + * synchronizing the configuration with the backend. + */ +class Configuration extends React.Component<Props, State> { + + constructor(props: Props) { + super(props); + this.state = { + fetching: true, + modifying: false, + valid: false + }; + } + + componentDidMount() { + const { link } = this.props; + + apiClient.get(link) + .then(this.captureContentType) + .then(response => response.json()) + .then(this.loadConfig) + .catch(this.handleError); + } + + captureContentType = (response: Response) => { + const contentType = response.headers.get("Content-Type"); + this.setState({ + contentType + }); + return response; + }; + + getContentType = (): string => { + const { contentType } = this.state; + return contentType ? contentType : "application/json"; + }; + + handleError = (error: Error) => { + this.setState({ + error, + fetching: false, + modifying: false + }); + }; + + loadConfig = (configuration: ConfigurationType) => { + this.setState({ + configuration, + fetching: false, + error: undefined + }); + }; + + getModificationUrl = (): ?string => { + const { configuration } = this.state; + if (configuration) { + const links = configuration._links; + if (links && links.update) { + return links.update.href; + } + } + }; + + isReadOnly = (): boolean => { + const modificationUrl = this.getModificationUrl(); + return !modificationUrl; + }; + + configurationChanged = (configuration: ConfigurationType, valid: boolean) => { + this.setState({ + modifiedConfiguration: configuration, + valid + }); + }; + + modifyConfiguration = (event: Event) => { + event.preventDefault(); + + this.setState({ modifying: true }); + + const {modifiedConfiguration} = this.state; + + apiClient.put(this.getModificationUrl(), modifiedConfiguration, this.getContentType()) + .then(() => this.setState({ modifying: false })) + .catch(this.handleError); + }; + + render() { + const { t } = this.props; + const { fetching, error, configuration, modifying, valid } = this.state; + + if (error) { + return <ErrorNotification error={error}/>; + } else if (fetching || !configuration) { + return <Loading />; + } else { + const readOnly = this.isReadOnly(); + + const renderProps: RenderProps = { + readOnly, + initialConfiguration: configuration, + onConfigurationChange: this.configurationChanged + }; + + return ( + <form onSubmit={this.modifyConfiguration}> + { this.props.render(renderProps) } + <hr/> + <SubmitButton + label={t("config-form.submit")} + disabled={!valid || readOnly} + loading={modifying} + /> + </form> + ); + } + } + +} + +export default translate("config")(Configuration); diff --git a/scm-ui-components/packages/ui-components/src/config/index.js b/scm-ui-components/packages/ui-components/src/config/index.js index 9596e9cda5..fba48c8054 100644 --- a/scm-ui-components/packages/ui-components/src/config/index.js +++ b/scm-ui-components/packages/ui-components/src/config/index.js @@ -1,3 +1,4 @@ // @flow export { default as ConfigurationBinder } from "./ConfigurationBinder"; -export { default as GlobalConfiguration } from "./GlobalConfiguration"; +export { default as Configuration } from "./Configuration"; +export { default as RepositoryConfigurationBinder } from "./RepositoryConfigurationBinder"; From e6fcbb0472581ba2266ba6978835cd97826db9ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Tue, 13 Nov 2018 13:10:16 +0100 Subject: [PATCH 03/12] renaming GlobalConfiguration --- .../src/config/GlobalConfiguration.js | 162 ------------------ 1 file changed, 162 deletions(-) delete mode 100644 scm-ui-components/packages/ui-components/src/config/GlobalConfiguration.js diff --git a/scm-ui-components/packages/ui-components/src/config/GlobalConfiguration.js b/scm-ui-components/packages/ui-components/src/config/GlobalConfiguration.js deleted file mode 100644 index b2b7dca647..0000000000 --- a/scm-ui-components/packages/ui-components/src/config/GlobalConfiguration.js +++ /dev/null @@ -1,162 +0,0 @@ -//@flow -import React from "react"; -import { translate } from "react-i18next"; -import type { Links } from "@scm-manager/ui-types"; -import { - apiClient, - SubmitButton, - Loading, - ErrorNotification -} from "../"; - -type RenderProps = { - readOnly: boolean, - initialConfiguration: Configuration, - onConfigurationChange: (Configuration, boolean) => void -}; - -type Props = { - link: string, - render: (props: RenderProps) => any, // ??? - - // context props - t: (string) => string -}; - -type Configuration = { - _links: Links -} & Object; - -type State = { - error?: Error, - fetching: boolean, - modifying: boolean, - contentType?: string, - - configuration?: Configuration, - modifiedConfiguration?: Configuration, - valid: boolean -}; - -/** - * GlobalConfiguration uses the render prop pattern to encapsulate the logic for - * synchronizing the configuration with the backend. - */ -class GlobalConfiguration extends React.Component<Props, State> { - - constructor(props: Props) { - super(props); - this.state = { - fetching: true, - modifying: false, - valid: false - }; - } - - componentDidMount() { - const { link } = this.props; - - apiClient.get(link) - .then(this.captureContentType) - .then(response => response.json()) - .then(this.loadConfig) - .catch(this.handleError); - } - - captureContentType = (response: Response) => { - const contentType = response.headers.get("Content-Type"); - this.setState({ - contentType - }); - return response; - }; - - getContentType = (): string => { - const { contentType } = this.state; - return contentType ? contentType : "application/json"; - }; - - handleError = (error: Error) => { - this.setState({ - error, - fetching: false, - modifying: false - }); - }; - - loadConfig = (configuration: Configuration) => { - this.setState({ - configuration, - fetching: false, - error: undefined - }); - }; - - getModificationUrl = (): ?string => { - const { configuration } = this.state; - if (configuration) { - const links = configuration._links; - if (links && links.update) { - return links.update.href; - } - } - }; - - isReadOnly = (): boolean => { - const modificationUrl = this.getModificationUrl(); - return !modificationUrl; - }; - - configurationChanged = (configuration: Configuration, valid: boolean) => { - this.setState({ - modifiedConfiguration: configuration, - valid - }); - }; - - modifyConfiguration = (event: Event) => { - event.preventDefault(); - - this.setState({ modifying: true }); - - const {modifiedConfiguration} = this.state; - - apiClient.put(this.getModificationUrl(), modifiedConfiguration, this.getContentType()) - .then(() => this.setState({ modifying: false })) - .catch(this.handleError); - }; - - render() { - const { t } = this.props; - const { fetching, error, configuration, modifying, valid } = this.state; - - if (error) { - return <ErrorNotification error={error}/>; - } else if (fetching || !configuration) { - return <Loading />; - } else { - const readOnly = this.isReadOnly(); - - const renderProps: RenderProps = { - readOnly, - initialConfiguration: configuration, - onConfigurationChange: this.configurationChanged - }; - - return ( - <form onSubmit={this.modifyConfiguration}> - { this.props.render(renderProps) } - <hr/> - <SubmitButton - label={t("config-form.submit")} - disabled={!valid || readOnly} - loading={modifying} - /> - </form> - ); - } - } - -} - -export default translate("config")(GlobalConfiguration); From 969859ad7fcd7d8eb145a763f29ee9692b93bc62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Tue, 13 Nov 2018 13:10:54 +0100 Subject: [PATCH 04/12] add globalBinder for config of repos --- .../config/RepositoryConfigurationBinder.js | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js diff --git a/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js b/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js new file mode 100644 index 0000000000..be23c13eae --- /dev/null +++ b/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js @@ -0,0 +1,43 @@ +// @flow +import * as React from "react"; +import { binder } from "@scm-manager/ui-extensions"; +import { NavLink } from "../navigation"; +import { Route } from "react-router-dom"; +import { translate } from "react-i18next"; + + +class RepositoryConfigurationBinder { + + i18nNamespace: string = "plugins"; + + bindGlobal(to: string, labelI18nKey: string, linkName: string, ConfigurationComponent: any) { + + // create predicate based on the link name of the index resource + // if the linkname is not available, the navigation link and the route are not bound to the extension points + const configPredicate = (props: Object) => { + return props.repository && props.repository._links && props.repository._links[linkName]; + }; + + // create NavigationLink with translated label + const ConfigNavLink = translate(this.i18nNamespace)(({t, url}) => { + return <NavLink to={url + to} label={t(labelI18nKey)} />; + }); + + // bind navigation link to extension point + binder.bind("repository.navigation", ConfigNavLink, configPredicate); + + + // route for global configuration, passes the current repository to component + const ConfigRoute = ({ url, repository }) => { + return <Route path={url + to} + render={() => <ConfigurationComponent repository={repository}/>} + exact/>; + }; + + // bind config route to extension point + binder.bind("repository.route", ConfigRoute, configPredicate); + } + +} + +export default new RepositoryConfigurationBinder(); From 6cf62f0ac1f5e52b1628edf435be32f2af93ca13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Tue, 13 Nov 2018 13:11:21 +0100 Subject: [PATCH 05/12] flow --- scm-ui/src/repos/containers/RepositoryRoot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scm-ui/src/repos/containers/RepositoryRoot.js b/scm-ui/src/repos/containers/RepositoryRoot.js index 9b8991a91a..94768d2b6a 100644 --- a/scm-ui/src/repos/containers/RepositoryRoot.js +++ b/scm-ui/src/repos/containers/RepositoryRoot.js @@ -35,7 +35,7 @@ import PermissionsNavLink from "../components/PermissionsNavLink"; import Sources from "../sources/containers/Sources"; import RepositoryNavLink from "../components/RepositoryNavLink"; import { getRepositoriesLink } from "../../modules/indexResource"; -import {ExtensionPoint} from '@scm-manager/ui-extensions'; +import {ExtensionPoint} from "@scm-manager/ui-extensions"; type Props = { namespace: string, From 617ea67f18a3a5f117e12cf22f74d3f2bbd7ed2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Tue, 13 Nov 2018 15:13:40 +0100 Subject: [PATCH 06/12] renaming --- .../config/RepositoryConfigurationBinder.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js b/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js index be23c13eae..6438870860 100644 --- a/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js +++ b/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js @@ -1,7 +1,7 @@ // @flow import * as React from "react"; import { binder } from "@scm-manager/ui-extensions"; -import { NavLink } from "../navigation"; +import { RepositoryNavLink } from "../navigation"; import { Route } from "react-router-dom"; import { translate } from "react-i18next"; @@ -10,34 +10,35 @@ class RepositoryConfigurationBinder { i18nNamespace: string = "plugins"; - bindGlobal(to: string, labelI18nKey: string, linkName: string, ConfigurationComponent: any) { + bindRepository(to: string, labelI18nKey: string, linkName: string, RepositoryComponent: any) { - // create predicate based on the link name of the index resource + // create predicate based on the link name of the current repository route // if the linkname is not available, the navigation link and the route are not bound to the extension points - const configPredicate = (props: Object) => { + const repoPredicate = (props: Object) => { return props.repository && props.repository._links && props.repository._links[linkName]; }; // create NavigationLink with translated label - const ConfigNavLink = translate(this.i18nNamespace)(({t, url}) => { - return <NavLink to={url + to} label={t(labelI18nKey)} />; + const RepoNavLink = translate(this.i18nNamespace)(({t, url}) => { + return <RepositoryNavLink to={url + to} label={t(labelI18nKey)} />; }); // bind navigation link to extension point - binder.bind("repository.navigation", ConfigNavLink, configPredicate); + binder.bind("repository.navigation", RepoNavLink, repoPredicate); // route for global configuration, passes the current repository to component - const ConfigRoute = ({ url, repository }) => { + const RepoRoute = ({ url, repository }) => { return <Route path={url + to} - render={() => <ConfigurationComponent repository={repository}/>} + render={() => <RepositoryComponent repository={repository}/>} exact/>; }; // bind config route to extension point - binder.bind("repository.route", ConfigRoute, configPredicate); + binder.bind("repository.route", RepoRoute, repoPredicate); } + } export default new RepositoryConfigurationBinder(); From 39f46e46b1125db30c7b642aa0587c01fd67dc2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Thu, 15 Nov 2018 09:47:29 +0100 Subject: [PATCH 07/12] refactoring --- .../src/config/ConfigurationBinder.js | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js b/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js index 477eee5238..21d889c8c4 100644 --- a/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js +++ b/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js @@ -9,6 +9,16 @@ class ConfigurationBinder { i18nNamespace: string = "plugins"; + navLink(to: string, labelI18nKey: string, t: any){ + return <NavLink to={to} label={t(labelI18nKey)} />; + } + + route(path: string, Component: any){ + return <Route path={path} + render={() => Component} + exact/>; + } + bindGlobal(to: string, labelI18nKey: string, linkName: string, ConfigurationComponent: any) { // create predicate based on the link name of the index resource @@ -17,27 +27,51 @@ class ConfigurationBinder { return props.links && props.links[linkName]; }; + // create NavigationLink with translated label and bind link to extensionPoint // create NavigationLink with translated label const ConfigNavLink = translate(this.i18nNamespace)(({t}) => { - return <NavLink to={"/config" + to} label={t(labelI18nKey)} />; + return this.navLink("/config" + to, labelI18nKey, t); }); // bind navigation link to extension point binder.bind("config.navigation", ConfigNavLink, configPredicate); - // route for global configuration, passes the link from the index resource to component const ConfigRoute = ({ url, links }) => { const link = links[linkName].href; - return <Route path={url + to} - render={() => <ConfigurationComponent link={link}/>} - exact/>; + return this.route(url + to, <ConfigurationComponent link={link}/>); }; // bind config route to extension point binder.bind("config.route", ConfigRoute, configPredicate); } + bindRepository(to: string, labelI18nKey: string, linkName: string, RepositoryComponent: any) { + + // create predicate based on the link name of the current repository route + // if the linkname is not available, the navigation link and the route are not bound to the extension points + const repoPredicate = (props: Object) => { + return props.repository && props.repository._links && props.repository._links[linkName]; + }; + + // create NavigationLink with translated label + const RepoNavLink = translate(this.i18nNamespace)(({t, url}) => { + return this.navLink(url + to, labelI18nKey, t); + }); + + // bind navigation link to extension point + binder.bind("repository.navigation", RepoNavLink, repoPredicate); + + + // route for global configuration, passes the current repository to component + const RepoRoute = ({ url, repository }) => { + return this.route(url + to, <RepositoryComponent repository={repository}/>); + }; + + // bind config route to extension point + binder.bind("repository.route", RepoRoute, repoPredicate); + } + } export default new ConfigurationBinder(); From 74fd7a67cb56b49d79c74cce19ad7722da345b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Thu, 15 Nov 2018 09:50:22 +0100 Subject: [PATCH 08/12] remove unsuned file --- .../config/RepositoryConfigurationBinder.js | 44 ------------------- scm-ui/.gitignore | 21 +++++++++ scm-webapp/config/config.xml | 14 ++++++ 3 files changed, 35 insertions(+), 44 deletions(-) delete mode 100644 scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js create mode 100644 scm-ui/.gitignore create mode 100644 scm-webapp/config/config.xml diff --git a/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js b/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js deleted file mode 100644 index 6438870860..0000000000 --- a/scm-ui-components/packages/ui-components/src/config/RepositoryConfigurationBinder.js +++ /dev/null @@ -1,44 +0,0 @@ -// @flow -import * as React from "react"; -import { binder } from "@scm-manager/ui-extensions"; -import { RepositoryNavLink } from "../navigation"; -import { Route } from "react-router-dom"; -import { translate } from "react-i18next"; - - -class RepositoryConfigurationBinder { - - i18nNamespace: string = "plugins"; - - bindRepository(to: string, labelI18nKey: string, linkName: string, RepositoryComponent: any) { - - // create predicate based on the link name of the current repository route - // if the linkname is not available, the navigation link and the route are not bound to the extension points - const repoPredicate = (props: Object) => { - return props.repository && props.repository._links && props.repository._links[linkName]; - }; - - // create NavigationLink with translated label - const RepoNavLink = translate(this.i18nNamespace)(({t, url}) => { - return <RepositoryNavLink to={url + to} label={t(labelI18nKey)} />; - }); - - // bind navigation link to extension point - binder.bind("repository.navigation", RepoNavLink, repoPredicate); - - - // route for global configuration, passes the current repository to component - const RepoRoute = ({ url, repository }) => { - return <Route path={url + to} - render={() => <RepositoryComponent repository={repository}/>} - exact/>; - }; - - // bind config route to extension point - binder.bind("repository.route", RepoRoute, repoPredicate); - } - - -} - -export default new RepositoryConfigurationBinder(); diff --git a/scm-ui/.gitignore b/scm-ui/.gitignore new file mode 100644 index 0000000000..d30f40ef44 --- /dev/null +++ b/scm-ui/.gitignore @@ -0,0 +1,21 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/scm-webapp/config/config.xml b/scm-webapp/config/config.xml new file mode 100644 index 0000000000..ed224b98b1 --- /dev/null +++ b/scm-webapp/config/config.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<scm-config> + <force-base-url>false</force-base-url> + <login-attempt-limit>0</login-attempt-limit> + <proxyPassword>gnlViC0YyKoivL+/zNsiOTi9/5a89iIl3GHC</proxyPassword> + <proxyPort>0</proxyPort> + <skip-failed-authenticators>false</skip-failed-authenticators> + <login-attempt-limit-timeout>0</login-attempt-limit-timeout> + <enableProxy>false</enableProxy> + <enableRepositoryArchive>false</enableRepositoryArchive> + <disableGroupingGrid>false</disableGroupingGrid> + <anonymousAccessEnabled>false</anonymousAccessEnabled> + <xsrf-protection>false</xsrf-protection> +</scm-config> From 0b030e8047abfcd4a06bf764417bdae8153e3f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Thu, 15 Nov 2018 09:52:20 +0100 Subject: [PATCH 09/12] remove unsuned file --- scm-ui/.gitignore | 21 --------------------- scm-webapp/config/config.xml | 14 -------------- 2 files changed, 35 deletions(-) delete mode 100644 scm-ui/.gitignore delete mode 100644 scm-webapp/config/config.xml diff --git a/scm-ui/.gitignore b/scm-ui/.gitignore deleted file mode 100644 index d30f40ef44..0000000000 --- a/scm-ui/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/scm-webapp/config/config.xml b/scm-webapp/config/config.xml deleted file mode 100644 index ed224b98b1..0000000000 --- a/scm-webapp/config/config.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<scm-config> - <force-base-url>false</force-base-url> - <login-attempt-limit>0</login-attempt-limit> - <proxyPassword>gnlViC0YyKoivL+/zNsiOTi9/5a89iIl3GHC</proxyPassword> - <proxyPort>0</proxyPort> - <skip-failed-authenticators>false</skip-failed-authenticators> - <login-attempt-limit-timeout>0</login-attempt-limit-timeout> - <enableProxy>false</enableProxy> - <enableRepositoryArchive>false</enableRepositoryArchive> - <disableGroupingGrid>false</disableGroupingGrid> - <anonymousAccessEnabled>false</anonymousAccessEnabled> - <xsrf-protection>false</xsrf-protection> -</scm-config> From 8ac55943da1c449313a9c141da38ba4109b35b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Thu, 15 Nov 2018 10:16:00 +0100 Subject: [PATCH 10/12] remove deleted file from export --- scm-ui-components/packages/ui-components/src/config/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scm-ui-components/packages/ui-components/src/config/index.js b/scm-ui-components/packages/ui-components/src/config/index.js index fba48c8054..6833632a0d 100644 --- a/scm-ui-components/packages/ui-components/src/config/index.js +++ b/scm-ui-components/packages/ui-components/src/config/index.js @@ -1,4 +1,3 @@ // @flow export { default as ConfigurationBinder } from "./ConfigurationBinder"; export { default as Configuration } from "./Configuration"; -export { default as RepositoryConfigurationBinder } from "./RepositoryConfigurationBinder"; From 3df496743568cccb1581ceef67f8b6bde1a6df05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= <maren.suewer@cloudogu.com> Date: Thu, 15 Nov 2018 10:42:56 +0100 Subject: [PATCH 11/12] remove duplicated comment --- .../packages/ui-components/src/config/ConfigurationBinder.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js b/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js index 21d889c8c4..960fe7db21 100644 --- a/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js +++ b/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js @@ -27,7 +27,6 @@ class ConfigurationBinder { return props.links && props.links[linkName]; }; - // create NavigationLink with translated label and bind link to extensionPoint // create NavigationLink with translated label const ConfigNavLink = translate(this.i18nNamespace)(({t}) => { return this.navLink("/config" + to, labelI18nKey, t); From b3917bc2d43d796c9b4f975597b377175f92e5aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= <rene.pfeuffer@cloudogu.com> Date: Wed, 21 Nov 2018 13:06:41 +0000 Subject: [PATCH 12/12] Close branch feature/ui-abstraction-repository-config