From df501b162dda7bd0c9f64255dc6d0e696b1a1b3a Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Wed, 3 Jul 2019 16:42:36 +0200 Subject: [PATCH] pluginsOverview goes api data --- .../packages/ui-types/src/Plugin.js | 5 +-- scm-ui/public/locales/de/admin.json | 3 +- scm-ui/public/locales/en/admin.json | 3 +- .../plugins/containers/PluginsOverview.js | 45 ++++++++++++++++++- scm-webapp/pom.xml | 32 ++++++------- 5 files changed, 65 insertions(+), 23 deletions(-) diff --git a/scm-ui-components/packages/ui-types/src/Plugin.js b/scm-ui-components/packages/ui-types/src/Plugin.js index e36576ccbc..566d52e76a 100644 --- a/scm-ui-components/packages/ui-types/src/Plugin.js +++ b/scm-ui-components/packages/ui-types/src/Plugin.js @@ -1,8 +1,7 @@ //@flow -import type { PagedCollection, Links } from "./hal"; +import type { Collection, Links } from "./hal"; export type Plugin = { - namespace: string, name: string, type: string, description?: string, @@ -11,7 +10,7 @@ export type Plugin = { _links: Links }; -export type PluginCollection = PagedCollection & { +export type PluginCollection = Collection & { _embedded: { plugins: Plugin[] | string[] } diff --git a/scm-ui/public/locales/de/admin.json b/scm-ui/public/locales/de/admin.json index 1cae12b544..00793b6dce 100644 --- a/scm-ui/public/locales/de/admin.json +++ b/scm-ui/public/locales/de/admin.json @@ -18,7 +18,8 @@ "pluginsNavLink": "Plugins", "installedNavLink": "Installiert", "availableNavLink": "Verfügbar" - } + }, + "noPlugins": "Keine Plugins gefunden." }, "repositoryRole": { "navLink": "Berechtigungsrollen", diff --git a/scm-ui/public/locales/en/admin.json b/scm-ui/public/locales/en/admin.json index 2df7b80386..a5697ea4fe 100644 --- a/scm-ui/public/locales/en/admin.json +++ b/scm-ui/public/locales/en/admin.json @@ -18,7 +18,8 @@ "pluginsNavLink": "Plugins", "installedNavLink": "Installed", "availableNavLink": "Available" - } + }, + "noPlugins": "No plugins found." }, "repositoryRole": { "navLink": "Permission Roles", diff --git a/scm-ui/src/admin/plugins/containers/PluginsOverview.js b/scm-ui/src/admin/plugins/containers/PluginsOverview.js index e0b82817c8..391d205a99 100644 --- a/scm-ui/src/admin/plugins/containers/PluginsOverview.js +++ b/scm-ui/src/admin/plugins/containers/PluginsOverview.js @@ -1,20 +1,40 @@ // @flow import React from "react"; +import {connect} from "react-redux"; import { translate } from "react-i18next"; +import type { PluginCollection } from "@scm-manager/ui-types"; import { Loading, Title, Subtitle, LinkPaginator, Notification } from "@scm-manager/ui-components"; +import { + fetchPluginsByLink, + getFetchPluginsFailure, + getPluginCollection, + isFetchPluginsPending +} from "../modules/plugins"; import PluginsList from "../components/PluginsList"; +import { getUiPluginsLink } from "../../../modules/indexResource"; type Props = { loading: boolean, error: Error, + collection: PluginCollection, + page: number, baseUrl: string, installed: boolean, + pluginsLink: string, // context objects - t: string => string + t: string => string, + + // dispatched functions + fetchPluginsByLink: (link: string) => void }; class PluginsOverview extends React.Component { + componentDidMount() { + const { fetchPluginsByLink, pluginsLink } = this.props; + fetchPluginsByLink(pluginsLink); + } + render() { const { loading, installed, t } = this.props; @@ -54,4 +74,25 @@ class PluginsOverview extends React.Component { } } -export default translate("admin")(PluginsOverview); +const mapStateToProps = (state) => { + const collection = getPluginCollection(state); + const loading = isFetchPluginsPending(state); + const error = getFetchPluginsFailure(state); + const pluginsLink = getUiPluginsLink(state); + return { + collection, + loading, + error, + pluginsLink + }; +}; + +const mapDispatchToProps = dispatch => { + return { + fetchPluginsByLink: (link: string) => { + dispatch(fetchPluginsByLink(link)); + } + }; +}; + +export default connect(mapStateToProps, mapDispatchToProps)(translate("admin")(PluginsOverview)); diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index cc2d9b99da..a74d8dc429 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -34,16 +34,16 @@ - - + + javax.transaction jta 1.1 provided - + - + sonia.scm scm-core @@ -63,7 +63,7 @@ shiro-web ${shiro.version} - + org.apache.shiro shiro-guice @@ -204,13 +204,13 @@ ch.qos.logback logback-classic - + org.slf4j jcl-over-slf4j ${slf4j.version} - + org.slf4j log4j-over-slf4j @@ -237,13 +237,13 @@ commons-codec 1.9 - + com.google.guava guava ${guava.version} - + com.cronutils cron-utils @@ -312,7 +312,7 @@ ${selenium.version} test - + org.seleniumhq.selenium htmlunit-driver @@ -386,16 +386,16 @@ 2.0.0-SNAPSHOT test - + - + commons-logging commons-logging 1.1.3 provided - + log4j log4j @@ -419,7 +419,7 @@ - + com.mycila.maven-license-plugin maven-license-plugin @@ -459,7 +459,7 @@ - + sonia.scm.maven smp-maven-plugin @@ -947,6 +947,6 @@ - +