diff --git a/src/components/manage/Blocks/DiscodataOpenlayersMapBlock/View.jsx b/src/components/manage/Blocks/DiscodataOpenlayersMapBlock/View.jsx index 93982f31..e7d64357 100644 --- a/src/components/manage/Blocks/DiscodataOpenlayersMapBlock/View.jsx +++ b/src/components/manage/Blocks/DiscodataOpenlayersMapBlock/View.jsx @@ -5,6 +5,7 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import { Portal } from 'react-portal'; +import { toast } from 'react-toastify'; // HELPERS import qs from 'query-string'; import axios from 'axios'; @@ -12,7 +13,7 @@ import jsonp from 'jsonp'; import { settings } from '~/config'; import { isArray } from 'lodash'; // VOLTO -import { Icon as VoltoIcon } from '@plone/volto/components'; +import { Icon as VoltoIcon, Toast } from '@plone/volto/components'; import PrivacyProtection from './PrivacyProtection'; // VOLTO-DATABLOCKS import { setQueryParam } from 'volto-datablocks/actions'; @@ -630,6 +631,20 @@ const OpenlayersMapView = (props) => { .then((response) => { const data = JSON.parse(response.request.response); const extent = data.results?.[0]; + if ( + extent.MIN_X === null || + extent.MIN_Y === null || + extent.MAX_X === null || + extent.MAX_Y === null + ) { + return toast.warn( + , + ); + } if ( stateRef.current.map.sitesSourceQuery?.where && (stateRef.current.map.sitesSourceQuery?.where.includes( diff --git a/src/components/manage/Blocks/FiltersBlock/View.jsx b/src/components/manage/Blocks/FiltersBlock/View.jsx index d451b0c1..1b42ff73 100644 --- a/src/components/manage/Blocks/FiltersBlock/View.jsx +++ b/src/components/manage/Blocks/FiltersBlock/View.jsx @@ -5,7 +5,7 @@ import { connect } from 'react-redux'; import { Header, Modal, Select, Input, List } from 'semantic-ui-react'; import { Portal } from 'react-portal'; import { Icon } from '@plone/volto/components'; -import { setQueryParam } from 'volto-datablocks/actions'; +import { setQueryParam, deleteQueryParam } from 'volto-datablocks/actions'; import { settings } from '~/config'; import _uniqueId from 'lodash/uniqueId'; import axios from 'axios'; @@ -578,6 +578,37 @@ const View = ({ content, ...props }) => { } }; + const changeFilterSidebar = ( + data, + filter, + filtersToDelete = [], + triggerQueryUpdate = false, + ) => { + if (mounted.current) { + const newFilters = { ...state.filters }; + newFilters[filter.queryToSet] = [data.value]; + + filtersToDelete.forEach((filter) => { + newFilters[filter] = []; + }); + + setState({ + ...state, + filters: { ...(newFilters || {}) }, + }); + if (triggerQueryUpdate) { + props.setQueryParam({ + queryParam: { + [filter.queryToSet]: newFilters[filter.queryToSet], + }, + }); + props.deleteQueryParam({ + queryParam: [...filtersToDelete], + }); + } + } + }; + const updateFilters = () => { if (mounted.current && state.filters && state.filtersMeta) { const newFilters = { ...state.filters }; @@ -830,7 +861,6 @@ const View = ({ content, ...props }) => { const provinces = state.filters.province; let nuts = []; let nuts_latest = []; - console.log(state.filters); siteCountries && siteCountries.forEach((country) => { const filteredRegions = regions @@ -855,9 +885,6 @@ const View = ({ content, ...props }) => { nuts_latest.push(region); } }); - } else { - nuts.push(country); - nuts_latest.push(country); } }); props.setQueryParam({ @@ -1227,98 +1254,116 @@ const View = ({ content, ...props }) => {
Reporting year
- { + changeFilterSidebar( + data, + state.filtersMeta['reporting_years'], + [], + true, + ); + props.setQueryParam({ + queryParam: { + advancedFiltering: true, + filtersCounter: props.discodata_query.search[ + 'filtersCounter' + ] + ? props.discodata_query.search[ + 'filtersCounter' + ] + 1 + : 1, + }, + }); + }} + placeholder={ + state.filtersMeta['reporting_years']?.placeholder + } + options={ + state.filtersMeta['reporting_years']?.options || [] + } + value={state.filters['reportingYear']?.[0]} + /> +
Country
- { + changeFilterSidebar( + data, + state.filtersMeta['countries'], + [ + 'nuts_latest', + 'nuts_regions', + 'province', + 'region', + 'riverBasin', + ], + true, + ); + props.setQueryParam({ + queryParam: { + advancedFiltering: true, + filtersCounter: props.discodata_query.search[ + 'filtersCounter' + ] + ? props.discodata_query.search[ + 'filtersCounter' + ] + 1 + : 1, + }, + }); + }} + placeholder={ + state.filtersMeta['countries']?.placeholder + } + options={ + state.filtersMeta['countries']?.options || [] + } + value={state.filters['siteCountry']?.[0]} + autoComplete="country-name" + /> +
Industry
- { + changeFilterSidebar( + data, + state.filtersMeta['industries'], + [], + true, + ); + props.setQueryParam({ + queryParam: { + advancedFiltering: true, + filtersCounter: props.discodata_query.search[ + 'filtersCounter' + ] + ? props.discodata_query.search[ + 'filtersCounter' + ] + 1 + : 1, + }, + }); + }} + placeholder={ + state.filtersMeta['industries']?.placeholder + } + options={ + state.filtersMeta['industries']?.options || [] + } + value={state.filters['EEAActivity']?.[0]} + /> +
@@ -1355,6 +1400,7 @@ export default compose( }), { setQueryParam, + deleteQueryParam, }, ), )(View); diff --git a/src/customizations/volto/components/theme/Footer/Footer.jsx b/src/customizations/volto/components/theme/Footer/Footer.jsx index d1ff08f8..167d45e6 100644 --- a/src/customizations/volto/components/theme/Footer/Footer.jsx +++ b/src/customizations/volto/components/theme/Footer/Footer.jsx @@ -96,10 +96,11 @@ const Footer = ({ intl }) => ( Denmark
- industry.helpdesk@eea.europa.eu + Contact us

diff --git a/src/customizations/volto/components/theme/Header/Header.jsx b/src/customizations/volto/components/theme/Header/Header.jsx index 88bd0198..0e3a3b13 100644 --- a/src/customizations/volto/components/theme/Header/Header.jsx +++ b/src/customizations/volto/components/theme/Header/Header.jsx @@ -57,12 +57,12 @@ class Header extends Component {
- + EEA
diff --git a/src/customizations/volto/components/theme/Logo/Logo.jsx b/src/customizations/volto/components/theme/Logo/Logo.jsx index a9540f71..6240081a 100644 --- a/src/customizations/volto/components/theme/Logo/Logo.jsx +++ b/src/customizations/volto/components/theme/Logo/Logo.jsx @@ -21,6 +21,10 @@ const messages = defineMessages({ id: 'Plone Site', defaultMessage: 'Plone Site', }, + industrialEmissions: { + id: 'Industrial Emissions', + defaultMessage: 'Industrial Emissions Portal' + } }); /** @@ -40,9 +44,9 @@ const Logo = () => { > {intl.formatMessage(messages.plonesite)} );