From c9d5733ebda8a7f95cc5659b35c68e8059dd519d Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Wed, 7 Aug 2019 16:46:01 +0200 Subject: [PATCH] added support information on admin overview page --- scm-ui/public/images/iconCommunitySupport.png | Bin 0 -> 3653 bytes .../public/images/iconEnterpriseSupport.png | Bin 0 -> 3928 bytes scm-ui/public/locales/de/admin.json | 11 ++- scm-ui/public/locales/en/admin.json | 13 +++- scm-ui/src/admin/containers/AdminDetails.js | 65 ++++++++++++++++-- 5 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 scm-ui/public/images/iconCommunitySupport.png create mode 100644 scm-ui/public/images/iconEnterpriseSupport.png diff --git a/scm-ui/public/images/iconCommunitySupport.png b/scm-ui/public/images/iconCommunitySupport.png new file mode 100644 index 0000000000000000000000000000000000000000..7a080903a0b29278563b9a435ba3f7e77d71fb2f GIT binary patch literal 3653 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 literal 0 HcmV?d00001 diff --git a/scm-ui/public/images/iconEnterpriseSupport.png b/scm-ui/public/images/iconEnterpriseSupport.png new file mode 100644 index 0000000000000000000000000000000000000000..0eadfaf85b63afbee2fe97a07a632486a8ddb5a4 GIT binary patch literal 3928 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 zqBh5sKontaktieren Sie das SCM-Manager Support Team bei unserem Entwicklungs-Partner Cloudogu für ein unverbindliches Angebot.", + "enterpriseLink": "https://cloudogu.com/de/scm-manager-enterprise/", + "enterpriseButton": "Enterprise Support anfragen" } }, "plugins": { diff --git a/scm-ui/public/locales/en/admin.json b/scm-ui/public/locales/en/admin.json index a5697ea4fe..86b3e788e0 100644 --- a/scm-ui/public/locales/en/admin.json +++ b/scm-ui/public/locales/en/admin.json @@ -6,8 +6,17 @@ "settingsNavLink": "Settings", "generalNavLink": "General" }, - "information": { - "currentAppVersion": "Current Application Version" + "info": { + "currentAppVersion": "Current Application Version", + "communityTitle": "Community Support", + "communityIconAlt": "Community Support Icon", + "communityInfo": "The Cloudogu support team is available for general questions about SCM-Manager, bug reporting and feature requests through our official channels.", + "communityButton": "Contact our team", + "enterpriseTitle": "Enterprise Support", + "enterpriseIconAlt": "Enterprise Support Icon", + "enterpriseInfo": "You need technical support for your company or you need a SCM-Manager plugin developed for you? We are happy to help you with your individual requirements for SCM-Manager use.
Contact the SCM-Manager Support Team at our development partner Cloudogu for a non-binding offer.", + "enterpriseLink": "https://cloudogu.com/en/scm-manager-enterprise/", + "enterpriseButton": "Request Enterprise Support" } }, "plugins": { diff --git a/scm-ui/src/admin/containers/AdminDetails.js b/scm-ui/src/admin/containers/AdminDetails.js index a7a135aa97..4b98a891e5 100644 --- a/scm-ui/src/admin/containers/AdminDetails.js +++ b/scm-ui/src/admin/containers/AdminDetails.js @@ -1,8 +1,15 @@ // @flow import React from "react"; import { connect } from "react-redux"; +import injectSheet from "react-jss"; import { translate } from "react-i18next"; -import { Loading, Title, Subtitle } from "@scm-manager/ui-components"; +import classNames from "classnames"; +import { + Loading, + Title, + Subtitle, + Image +} from "@scm-manager/ui-components"; import { getAppVersion } from "../../modules/indexResource"; type Props = { @@ -11,13 +18,23 @@ type Props = { version: string, - // context objects + // context props + classes: any, t: string => string }; +const styles = { + boxShadow: { + boxShadow: "0 2px 3px rgba(40, 177, 232, 0.1), 0 0 0 1px rgb(40, 177, 232)" + }, + boxTitle: { + fontWeight: "500 !important" + } +}; + class AdminDetails extends React.Component { render() { - const { t, loading } = this.props; + const { loading, classes, t } = this.props; if (loading) { return ; @@ -25,8 +42,46 @@ class AdminDetails extends React.Component { return ( <> - + <Title title={t("admin.info.currentAppVersion")} /> <Subtitle subtitle={this.props.version} /> + <div className={classNames("box", classes.boxShadow)}> + <article className="media"> + <div className="media-left"> + <figure className="image is-64x64"> + <Image + src="/images/iconCommunitySupport.png" + alt={t("admin.info.communityIconAlt")} + /> + </figure> + </div> + <div className="media-content"> + <div className="content"> + <h3 className={classes.boxTitle}>{t("admin.info.communityTitle")}</h3> + <p>{t("admin.info.communityInfo")}</p> + <a className="button is-info is-pulled-right" href="https://scm-manager.org/support/">{t("admin.info.communityButton")}</a> + </div> + </div> + </article> + </div> + <div className={classNames("box", classes.boxShadow)}> + <article className="media"> + <div className="media-left"> + <figure className="image is-64x64"> + <Image + src="/images/iconEnterpriseSupport.png" + alt={t("admin.info.enterpriseIconAlt")} + /> + </figure> + </div> + <div className="media-content"> + <div className="content"> + <h3 className={classes.boxTitle}>{t("admin.info.enterpriseTitle")}</h3> + <p>{t("admin.info.enterpriseInfo")}</p> + <a className="button is-info is-pulled-right" href={t("admin.info.enterpriseLink")}>{t("admin.info.enterpriseButton")}</a> + </div> + </div> + </article> + </div> </> ); } @@ -39,4 +94,4 @@ const mapStateToProps = (state: any) => { }; }; -export default connect(mapStateToProps)(translate("admin")(AdminDetails)); +export default connect(mapStateToProps)(injectSheet(styles)(translate("admin")(AdminDetails)));