From abb1af0a84972f191bebc43a85024d68f7bfab98 Mon Sep 17 00:00:00 2001 From: Alin Voinea Date: Fri, 18 Mar 2022 18:21:48 +0200 Subject: [PATCH 1/8] Enable Multilingual support (#17) * Multilingual support - refs #146771 * Enable Bosnian language --- src/config.js | 2 +- .../volto/components/theme/Header/Header.jsx | 50 +++++++++++++------ 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/config.js b/src/config.js index e9c5e47a..cc7cc339 100644 --- a/src/config.js +++ b/src/config.js @@ -162,7 +162,7 @@ export const address = 'Kongens Nytorv 6 1050 Copenhagen K (+45) 33 36 71 00'; export const languages = [ { name: 'Albanian', code: 'sq' }, { name: 'Български', code: 'bg' }, - { name: 'Bosnian', code: 'bs' }, + { name: 'Bosanski', code: 'bs' }, { name: 'čeština', code: 'cs' }, { name: 'Hrvatski', code: 'hr' }, { name: 'dansk', code: 'da' }, diff --git a/src/customizations/volto/components/theme/Header/Header.jsx b/src/customizations/volto/components/theme/Header/Header.jsx index f4f08464..03fb569e 100644 --- a/src/customizations/volto/components/theme/Header/Header.jsx +++ b/src/customizations/volto/components/theme/Header/Header.jsx @@ -6,28 +6,40 @@ import React from 'react'; import { Dropdown, Image } from 'semantic-ui-react'; import { connect, useDispatch } from 'react-redux'; - +import { withRouter } from 'react-router-dom'; import { UniversalLink } from '@plone/volto/components'; -import { getBaseUrl, hasApiExpander } from '@plone/volto/helpers'; +import { + getBaseUrl, + hasApiExpander, + flattenToAppURL, +} from '@plone/volto/helpers'; import { getNavigation } from '@plone/volto/actions'; - import { Header, Logo } from '@eeacms/volto-eea-design-system/ui'; import { usePrevious } from '@eeacms/volto-eea-design-system/helpers'; - +import { useSelector } from 'react-redux'; +import { find } from 'lodash'; import LogoImage from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/eea-logo.svg'; import globeIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/global-line.svg'; import eeaFlag from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/eea.png'; import config from '@plone/volto/registry'; +import { compose } from 'recompose'; /** * EEA Specific Header component. */ -const EEAHeader = ({ pathname, token, items }) => { +const EEAHeader = ({ pathname, token, items, history }) => { + const currentLang = useSelector((state) => state.intl.locale); + const translations = useSelector( + (state) => state.content.data?.['@components']?.translations?.items, + ); + const { eea } = config.settings; const dispatch = useDispatch(); const previousToken = usePrevious(token); - const [language, setLanguage] = React.useState(eea.defaultLanguage); + const [language, setLanguage] = React.useState( + currentLang || eea.defaultLanguage, + ); React.useEffect(() => { const { settings } = config; @@ -114,13 +126,20 @@ const EEAHeader = ({ pathname, token, items }) => { key={index} text={ - {item.name} + {item.name}{' '} {item.code.toUpperCase()} } - onClick={() => setLanguage(item.code)} + onClick={() => { + const translation = find(translations, { language: item.code }); + const to = translation + ? flattenToAppURL(translation['@id']) + : `/${item.code}`; + setLanguage(item.code); + history.push(to); + }} > ))} @@ -158,10 +177,13 @@ const EEAHeader = ({ pathname, token, items }) => { ); }; -export default connect( - (state) => ({ - token: state.userSession.token, - items: state.navigation.items, - }), - { getNavigation }, +export default compose( + withRouter, + connect( + (state) => ({ + token: state.userSession.token, + items: state.navigation.items, + }), + { getNavigation }, + ), )(EEAHeader); From 792251e50af346c9260f92c5408b56ae75fb96be Mon Sep 17 00:00:00 2001 From: EEA Jenkins <@users.noreply.github.com> Date: Fri, 18 Mar 2022 16:36:28 +0000 Subject: [PATCH 2/8] Automated release 0.3.2 --- CHANGELOG.md | 10 ++++++++++ package.json | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49cded68..3c9537c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,18 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [0.3.2](https://github.com/eea/volto-eea-website-theme/compare/0.3.1...0.3.2) + +- Enable Multilingual support [`#17`](https://github.com/eea/volto-eea-website-theme/pull/17) +- feat(title): add configuration to title block [`#16`](https://github.com/eea/volto-eea-website-theme/pull/16) +- show language switcher on mobile [`bf6e9db`](https://github.com/eea/volto-eea-website-theme/commit/bf6e9db7ccdad2e9052588ba3a9d725dfdfbbd57) +- change(theme): site folder now points to the theme folder [`92ce02f`](https://github.com/eea/volto-eea-website-theme/commit/92ce02f198d0fc0a6f475e3215f78addc9a05d0a) + #### [0.3.1](https://github.com/eea/volto-eea-website-theme/compare/0.3.0...0.3.1) +> 15 March 2022 + +- Release page banner [`#15`](https://github.com/eea/volto-eea-website-theme/pull/15) - feat(banner): add banner header [`#14`](https://github.com/eea/volto-eea-website-theme/pull/14) - change(accordion): use remix icons for accordion title [`95df1c2`](https://github.com/eea/volto-eea-website-theme/commit/95df1c286ed474877c842f069e153e0e22410f08) diff --git a/package.json b/package.json index 6d6403d3..5884304b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eeacms/volto-eea-website-theme", - "version": "0.3.1", + "version": "0.3.2", "description": "@eeacms/volto-eea-website-theme: Volto add-on", "main": "src/index.js", "author": "European Environment Agency: IDM2 A-Team", From b430a9e8b88f2e218d049d8c3fa8cbfd5a992bc6 Mon Sep 17 00:00:00 2001 From: Alin Voinea Date: Fri, 18 Mar 2022 18:59:05 +0200 Subject: [PATCH 3/8] Release 0.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5884304b..a45543f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eeacms/volto-eea-website-theme", - "version": "0.3.2", + "version": "0.4.0", "description": "@eeacms/volto-eea-website-theme: Volto add-on", "main": "src/index.js", "author": "European Environment Agency: IDM2 A-Team", From b84e4fb66df9915d4621a4b6321323a3ed341d87 Mon Sep 17 00:00:00 2001 From: EEA Jenkins <@users.noreply.github.com> Date: Fri, 18 Mar 2022 17:06:03 +0000 Subject: [PATCH 4/8] Automated release 0.4.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c9537c1..513b4ba9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,11 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [0.3.2](https://github.com/eea/volto-eea-website-theme/compare/0.3.1...0.3.2) +#### [0.4.0](https://github.com/eea/volto-eea-website-theme/compare/0.3.1...0.4.0) - Enable Multilingual support [`#17`](https://github.com/eea/volto-eea-website-theme/pull/17) - feat(title): add configuration to title block [`#16`](https://github.com/eea/volto-eea-website-theme/pull/16) +- Release 0.4.0 [`b430a9e`](https://github.com/eea/volto-eea-website-theme/commit/b430a9e8b88f2e218d049d8c3fa8cbfd5a992bc6) - show language switcher on mobile [`bf6e9db`](https://github.com/eea/volto-eea-website-theme/commit/bf6e9db7ccdad2e9052588ba3a9d725dfdfbbd57) - change(theme): site folder now points to the theme folder [`92ce02f`](https://github.com/eea/volto-eea-website-theme/commit/92ce02f198d0fc0a6f475e3215f78addc9a05d0a) From b5b001c89fce735f78502bf9035291344768fb47 Mon Sep 17 00:00:00 2001 From: David Ichim Date: Mon, 21 Mar 2022 21:24:43 +0200 Subject: [PATCH 5/8] change(banner): use remix download link for download action --- src/components/theme/Banner/View.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/theme/Banner/View.jsx b/src/components/theme/Banner/View.jsx index f0de35bc..ee48ccef 100644 --- a/src/components/theme/Banner/View.jsx +++ b/src/components/theme/Banner/View.jsx @@ -143,7 +143,7 @@ const View = (props) => { )} {!hideDownloadButton && ( { From ef9927f2f9562fff4ce038c016b0edf134254eb7 Mon Sep 17 00:00:00 2001 From: ichim-david Date: Tue, 22 Mar 2022 10:49:37 +0200 Subject: [PATCH 6/8] change(theme): updated list of components to use eea theme --- theme/theme.config | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/theme/theme.config b/theme/theme.config index 842a5177..ad36c922 100644 --- a/theme/theme.config +++ b/theme/theme.config @@ -77,20 +77,28 @@ @main : 'eea'; @custom : 'eea'; /* EEA Design system custom components */ -@blockquote : 'eea'; -@pullquote : 'eea'; -@banner : 'eea'; -@timeline : 'eea'; -@footer : 'eea'; -@header : 'eea'; -@tags : 'eea'; +@blockquote : 'eea'; +@pullquote : 'eea'; +@banner : 'eea'; +@timeline : 'eea'; +@footer : 'eea'; +@header : 'eea'; +@tag : 'eea'; +@tagList : 'eea'; @inpageNavigation : 'eea'; -@avatar : 'eea'; -@divider : 'eea'; -@testimonial : 'eea'; -@avatarGrid : 'eea'; -@keyContent : 'eea'; -@publicationCard: 'eea'; +@avatar : 'eea'; +@divider : 'eea'; +@testimonial : 'eea'; +@avatarGrid : 'eea'; +@keyContent : 'eea'; +@publicationCard : 'eea'; +@contentBox : 'eea'; +@reverseCardGrid : 'eea'; +@relatedContent : 'eea'; +@share : 'eea'; +@faqContent : 'eea'; +@reportCard : 'eea'; +@faqFilter : 'eea'; /******************************* Folders From 441a52a52fb275dde9c133680743ab1af1c267fb Mon Sep 17 00:00:00 2001 From: ichim-david Date: Tue, 22 Mar 2022 13:14:54 +0200 Subject: [PATCH 7/8] change(theme): added tags element --- theme/theme.config | 1 + 1 file changed, 1 insertion(+) diff --git a/theme/theme.config b/theme/theme.config index ad36c922..da942efd 100644 --- a/theme/theme.config +++ b/theme/theme.config @@ -84,6 +84,7 @@ @footer : 'eea'; @header : 'eea'; @tag : 'eea'; +@tags : 'eea'; @tagList : 'eea'; @inpageNavigation : 'eea'; @avatar : 'eea'; From aacf48409a391d0c6191af22730a48b184cfcedf Mon Sep 17 00:00:00 2001 From: Miu Razvan Date: Tue, 22 Mar 2022 16:53:58 +0200 Subject: [PATCH 8/8] Override Unauthorized view --- .../theme/Unauthorized/Unauthorized.jsx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/customizations/volto/components/theme/Unauthorized/Unauthorized.jsx diff --git a/src/customizations/volto/components/theme/Unauthorized/Unauthorized.jsx b/src/customizations/volto/components/theme/Unauthorized/Unauthorized.jsx new file mode 100644 index 00000000..8581300c --- /dev/null +++ b/src/customizations/volto/components/theme/Unauthorized/Unauthorized.jsx @@ -0,0 +1,91 @@ +/** + * @module components/theme/Unauthorized/Unauthorized + */ + +import React, { useEffect } from 'react'; +import { useLocation, Link, useHistory } from 'react-router-dom'; +import { getBaseUrl } from '@plone/volto/helpers'; +import { Container, Button } from 'semantic-ui-react'; + +import { FormattedMessage } from 'react-intl'; + +import { withServerErrorCode } from '@plone/volto/helpers/Utils/Utils'; + +/** + * unauthorized function. + * @function Unauthorized + * @returns {string} Markup of the unauthorized page. + */ + +const Unauthorized = () => { + const location = useLocation(); + const pathname = location.pathname; + const base_pathname = getBaseUrl(pathname); + const login = `${base_pathname}/login`; + const history = useHistory(); + const [countdown, setCountdown] = React.useState(5); + + useEffect(() => { + const login_with_return = login + `?return_url=${pathname}`; + const timer = setTimeout(() => { + return history.push(login_with_return); + }, 5000); + return () => clearTimeout(timer); + }, [history, login, pathname]); + + useEffect(() => { + const timer = setTimeout(() => { + if (countdown > 0) { + setCountdown(countdown - 1); + } else { + clearTimeout(timer); + } + }, 1000); + // Clear timeout if the component is unmounted + return () => clearTimeout(timer); + }, [countdown]); + + return ( + +

+ +

+

+ + {countdown}. +

+ +

+ {' '} + + + + {' '} + + + . +

+
+ ); +}; + +export default withServerErrorCode(401)(Unauthorized);