@eeacms/volto-clms-theme 1.1.89 → 1.1.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ ### [1.1.91](https://github.com/eea/volto-clms-theme/compare/1.1.90...1.1.91) - 12 December 2023
8
+
9
+ #### :rocket: New Features
10
+
11
+ - feat: new field type for service desk form [Mikel Larreategi - [`4b22f00`](https://github.com/eea/volto-clms-theme/commit/4b22f00b2c52b23b45e5740f1f29d7e7ed3af818)]
12
+ - feat: add a pop-up about formats [Mikel Larreategi - [`da7ee61`](https://github.com/eea/volto-clms-theme/commit/da7ee61424938148703f77d677a3d11fdb7cc07f)]
13
+ - feat: add a pop-up about EPSG codes [Mikel Larreategi - [`c2163b6`](https://github.com/eea/volto-clms-theme/commit/c2163b6a940249a46af7db5057976c5c0f71122b)]
14
+ - feat: enable add block button [Mikel Larreategi - [`53d0573`](https://github.com/eea/volto-clms-theme/commit/53d0573dfbecd117d044a7c25a68ce89294b5f61)]
15
+
16
+ #### :bug: Bug Fixes
17
+
18
+ - fix: CLMS-2898 reverted CLMS-1556 [Unai - [`d4c9e6e`](https://github.com/eea/volto-clms-theme/commit/d4c9e6e249de534705bd4e0bf0f2ed584026f0a5)]
19
+
20
+ #### :hammer_and_wrench: Others
21
+
22
+ - lint [Mikel Larreategi - [`b912406`](https://github.com/eea/volto-clms-theme/commit/b91240623d56c91e544902f84f52b51dddd550c5)]
23
+ - eslint [Mikel Larreategi - [`d216ab5`](https://github.com/eea/volto-clms-theme/commit/d216ab514d0dcc4091084642c80868033ac6ae6b)]
24
+ - fix [Mikel Larreategi - [`f8470ad`](https://github.com/eea/volto-clms-theme/commit/f8470ad0cb4f64ce54078b9ccba936e43960e9ab)]
25
+ - style for span in active tab [Unai - [`ac9f312`](https://github.com/eea/volto-clms-theme/commit/ac9f312d48ae053cd94540167a45aea83d524b33)]
26
+ ### [1.1.90](https://github.com/eea/volto-clms-theme/compare/1.1.89...1.1.90) - 4 December 2023
27
+
28
+ #### :hammer_and_wrench: Others
29
+
30
+ - Revert "Revert "fix: remove cart length comparation to copmose the correct cart data"" [Mikel Larreategi - [`05d0c61`](https://github.com/eea/volto-clms-theme/commit/05d0c61e8bbb4b778946e9ffa139473c6714cf15)]
31
+ - Revert "Revert "fix: CLMS-2833"" [Mikel Larreategi - [`b282ca8`](https://github.com/eea/volto-clms-theme/commit/b282ca8601116f69e0aad609edd779d7c6fabf3f)]
32
+ - Revert "Revert "do not show Categorization text if no item inside"" [Mikel Larreategi - [`7cf2698`](https://github.com/eea/volto-clms-theme/commit/7cf269862b17e3ea9c8db63d174793b180b3b71e)]
33
+ - Revert "Revert "zoom in cart modal"" [Mikel Larreategi - [`0bad1b0`](https://github.com/eea/volto-clms-theme/commit/0bad1b04ddfa7639b0a5125176f95c5e27c78759)]
34
+ - Revert "Revert "trigger color"" [Mikel Larreategi - [`98c90f5`](https://github.com/eea/volto-clms-theme/commit/98c90f5bc413ee3a37af4a60823aa07c26522a5e)]
35
+ - Revert "Revert "fix: CLMS-2458 last style fixes"" [Mikel Larreategi - [`0976f43`](https://github.com/eea/volto-clms-theme/commit/0976f436d53fa7b5e939795af69e33a1dbf51d05)]
36
+ - Revert "Revert "style fixes in cart modal"" [Mikel Larreategi - [`03bc5e3`](https://github.com/eea/volto-clms-theme/commit/03bc5e360a6ba6fc48afb262e64277f435e93a5b)]
37
+ - Revert "Revert "cart modal created"" [Mikel Larreategi - [`388564f`](https://github.com/eea/volto-clms-theme/commit/388564f506bc2ceffd445d0996b561ce6a01d693)]
7
38
  ### [1.1.89](https://github.com/eea/volto-clms-theme/compare/1.1.88...1.1.89) - 1 December 2023
8
39
 
9
40
  #### :hammer_and_wrench: Others
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-clms-theme",
3
- "version": "1.1.89",
3
+ "version": "1.1.91",
4
4
  "description": "volto-clms-theme: Volto theme for CLMS site",
5
5
  "main": "src/index.js",
6
6
  "author": "CodeSyntax for the European Environment Agency",
@@ -61,6 +61,7 @@
61
61
  "react-native-mime-types": "2.3.0",
62
62
  "react-slick": "0.28.1",
63
63
  "react-svg": "14.0.4",
64
+ "react-zoom-pan-pinch": "3.3.0",
64
65
  "slick-carousel": "1.8.1",
65
66
  "validator": "13.7.0",
66
67
  "volto-cookie-banner": "2.1.0",
@@ -125,7 +125,7 @@ export default (props) => {
125
125
  },
126
126
  field_type: {
127
127
  title: intl.formatMessage(messages.field_type),
128
- type: 'array',
128
+ type: 'string',
129
129
  choices: [
130
130
  ...baseFieldTypeChoices,
131
131
  ...(config.blocks.blocksConfig.form.additionalFields?.map(
@@ -88,3 +88,7 @@ div.tabs-block.edit a.item.active p.menu-item-text {
88
88
  border-style: none none solid none;
89
89
  font-weight: bold;
90
90
  }
91
+
92
+ .left-menu .active span {
93
+ color: #fff;
94
+ }
@@ -78,6 +78,7 @@ import codeSVG from '@plone/volto/icons/code.svg';
78
78
  import upSVG from '@plone/volto/icons/up-key.svg';
79
79
  import ImageWidget from '@eeacms/volto-clms-theme/components/Widgets/ImageWidget';
80
80
  import AttachmentWithSizeLimit from '@eeacms/volto-clms-theme/components/Widgets/AttachmentWithSizeLimit';
81
+ import TextareaWithRequestData from '@eeacms/volto-clms-theme/components/Widgets/TextareaWithRequestData';
81
82
  import TextWidget from '@plone/volto/components/manage/Widgets/TextWidget';
82
83
  import TextareaWidget from '@plone/volto/components/manage/Widgets/TextareaWidget';
83
84
  import EmailWidget from '@plone/volto/components/manage/Widgets/EmailWidget';
@@ -610,6 +611,11 @@ const customBlocks = (config) => ({
610
611
  label: 'Attachment (size limit)',
611
612
  component: AttachmentWithSizeLimit,
612
613
  },
614
+ {
615
+ id: 'text_area_with_request_data',
616
+ label: 'CCL Text Area with Request Data',
617
+ component: TextareaWithRequestData,
618
+ },
613
619
  ],
614
620
  },
615
621
  maps: {
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
3
  import { useSelector } from 'react-redux';
4
- import { useLocation } from 'react-router-dom';
5
4
 
6
5
  import CclButton from '@eeacms/volto-clms-theme/components/CclButton/CclButton';
7
6
  import CclDownloadTable from '@eeacms/volto-clms-theme/components/CclDownloadTable/CclDownloadTable';
@@ -9,9 +8,8 @@ import CclLoginModal from '@eeacms/volto-clms-theme/components/CclLoginModal/Ccl
9
8
  import { StringToHTML } from '@eeacms/volto-clms-theme/components/CclUtils';
10
9
 
11
10
  const DownloadDataSetContent = (data, token) => {
12
- const location = useLocation();
13
-
14
11
  const user = useSelector((state) => state?.users?.user);
12
+ const locale = useSelector((state) => state?.intl?.locale);
15
13
 
16
14
  return (
17
15
  <div>
@@ -36,11 +34,15 @@ const DownloadDataSetContent = (data, token) => {
36
34
  )}
37
35
  {user?.['@id'] ? (
38
36
  data.mapviewer_istimeseries === true ? (
39
- <CclButton url={location.pathname + '/download-by-area'}>
37
+ <CclButton
38
+ url={'/' + locale + '/map-viewer?dataset=' + data?.UID}
39
+ >
40
40
  Go to download by area and time
41
41
  </CclButton>
42
42
  ) : (
43
- <CclButton url={location.pathname + '/download-by-area'}>
43
+ <CclButton
44
+ url={'/' + locale + '/map-viewer?dataset=' + data?.UID}
45
+ >
44
46
  Go to download by area
45
47
  </CclButton>
46
48
  )
@@ -1,12 +1,63 @@
1
+ import React from 'react';
2
+ import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
1
3
  import { Label } from 'semantic-ui-react';
4
+
5
+ import LatLonImg from '@eeacms/volto-clms-theme/../theme/clms/img/lat_lon.png';
6
+ import CclModal from '@eeacms/volto-clms-theme/components/CclModal/CclModal';
7
+
2
8
  export const AreaNaming = (areaProps) => {
3
9
  const { item } = areaProps;
4
10
  switch (item?.area?.type) {
5
11
  case 'polygon':
6
12
  return (
7
13
  <>
8
- <span>Bounding Box</span>
9
- <br />
14
+ <CclModal
15
+ draggable={true}
16
+ trigger={<span className="cart-modal-trigger">Bounding Box</span>}
17
+ size={'medium'}
18
+ >
19
+ <div className="image-modal">
20
+ <TransformWrapper>
21
+ {({ zoomIn, zoomOut, resetTransform, ...rest }) => (
22
+ <React.Fragment>
23
+ <div className="tools">
24
+ <button
25
+ className="ccl-button ccl-button--default"
26
+ onClick={() => zoomIn()}
27
+ >
28
+ Zoom in
29
+ </button>
30
+ <button
31
+ className="ccl-button ccl-button--default"
32
+ onClick={() => zoomOut()}
33
+ >
34
+ Zoom out
35
+ </button>
36
+ <button
37
+ className="ccl-button ccl-button--default"
38
+ onClick={() => resetTransform()}
39
+ >
40
+ Reset zoom
41
+ </button>
42
+ </div>
43
+ <TransformComponent>
44
+ <img src={LatLonImg} alt={'Lat Lon World'} />
45
+ </TransformComponent>
46
+ </React.Fragment>
47
+ )}
48
+ </TransformWrapper>
49
+ <span className="modal-cart-bounding-boxes">
50
+ <span className="cart-bounding-box-row">
51
+ <Label>{`N: ${item?.area.value[1].toFixed(1)}º`}</Label>&nbsp;
52
+ <Label>{`E: ${item?.area.value[2].toFixed(1)}º`}</Label>&nbsp;
53
+ {/* </span>
54
+ <span className="cart-bounding-box-row"> */}
55
+ <Label>{`S: ${item?.area.value[3].toFixed(1)}º`}</Label>&nbsp;
56
+ <Label>{`W: ${item?.area.value[0].toFixed(1)}º`}</Label>
57
+ </span>
58
+ </span>
59
+ </div>
60
+ </CclModal>
10
61
  <span className="cart-bounding-boxes">
11
62
  <span className="cart-bounding-box-row">
12
63
  <Label>{`N: ${item?.area.value[1].toFixed(1)}º`}</Label>&nbsp;
@@ -8,10 +8,12 @@ import {
8
8
  Select,
9
9
  Table,
10
10
  Pagination,
11
+ Popup,
11
12
  } from 'semantic-ui-react';
12
13
 
13
14
  import { Icon } from '@plone/volto/components';
14
15
  import { Toast } from '@plone/volto/components';
16
+ import { UniversalLink } from '@plone/volto/components';
15
17
  import addDocumentSVG from '@plone/volto/icons/add-document.svg';
16
18
  import removeSVG from '@plone/volto/icons/delete.svg';
17
19
  import paginationLeftSVG from '@plone/volto/icons/left-key.svg';
@@ -20,6 +22,7 @@ import CclButton from '@eeacms/volto-clms-theme/components/CclButton/CclButton';
20
22
  import useCartState from '@eeacms/volto-clms-utils/cart/useCartState';
21
23
  import { cleanDuplicatesEntries } from '@eeacms/volto-clms-utils/utils';
22
24
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
25
+ import CclModal from '@eeacms/volto-clms-theme/components/CclModal/CclModal';
23
26
 
24
27
  import { getDownloadtool, postDownloadtool } from '../../actions';
25
28
  import { useFilteredPagination } from '../CclUtils/useFilteredPagination';
@@ -49,7 +52,7 @@ import {
49
52
  const CLMSCartContent = (props) => {
50
53
  const { localSessionCart, getNutsIDList } = props;
51
54
  const dispatch = useDispatch();
52
- const { removeCartItem, /* removeCartItems, */ updateCart } = useCartState();
55
+ const { removeCartItem, removeCartItems, updateCart } = useCartState();
53
56
 
54
57
  // state connections
55
58
  const cart = useSelector((state) => state.cart_items.items);
@@ -102,7 +105,6 @@ const CLMSCartContent = (props) => {
102
105
  if (
103
106
  datasets_items?.length > 0 &&
104
107
  cart.length > 0 &&
105
- cart.length !== newCart.length &&
106
108
  ((localsessionNutsIDList.length > 0 && nutsnames.loaded) ||
107
109
  !nutsnames.loading)
108
110
  ) {
@@ -144,17 +146,17 @@ const CLMSCartContent = (props) => {
144
146
 
145
147
  // eslint-disable-next-line react-hooks/exhaustive-deps
146
148
  const setCartItemInProgress = (in_progress_unique_ids) => {
147
- // let started_processing_items =
148
- // cartItems.length > 0
149
- // ? cartItems.filter((r) =>
150
- // in_progress_unique_ids.includes(r['unique_id']),
151
- // )
152
- // : [];
153
- // var items_to_remove =
154
- // started_processing_items.length > 0
155
- // ? started_processing_items.map((item) => item.unique_id)
156
- // : [];
157
- // removeCartItems(items_to_remove);
149
+ let started_processing_items =
150
+ cartItems.length > 0
151
+ ? cartItems.filter((r) =>
152
+ in_progress_unique_ids.includes(r['unique_id']),
153
+ )
154
+ : [];
155
+ var items_to_remove =
156
+ started_processing_items.length > 0
157
+ ? started_processing_items.map((item) => item.unique_id)
158
+ : [];
159
+ removeCartItems(items_to_remove);
158
160
  dispatch(getDownloadtool());
159
161
  };
160
162
 
@@ -197,6 +199,7 @@ const CLMSCartContent = (props) => {
197
199
  ? selectedItems.map((item) => item?.unique_id)
198
200
  : [];
199
201
  dispatch(postDownloadtool(body, unique_ids));
202
+ removeCartItem(unique_ids);
200
203
  };
201
204
 
202
205
  const downloadModal = () => {
@@ -272,7 +275,31 @@ const CLMSCartContent = (props) => {
272
275
  <Table.HeaderCell width={5}>Static info</Table.HeaderCell>
273
276
  <Table.HeaderCell>Configurable</Table.HeaderCell>
274
277
  <Table.HeaderCell></Table.HeaderCell>
275
- <Table.HeaderCell>Projection</Table.HeaderCell>
278
+ <Table.HeaderCell>
279
+ Projection{' '}
280
+ <CclModal
281
+ draggable={false}
282
+ trigger={
283
+ /* eslint-disable jsx-a11y/anchor-is-valid */
284
+ <a href="#">
285
+ <Popup
286
+ content="Explore EPSG details and coordinate systems with a click."
287
+ trigger={
288
+ <FontAwesomeIcon
289
+ icon={['far', 'question-circle']}
290
+ />
291
+ }
292
+ />
293
+ </a>
294
+ }
295
+ size={'small'}
296
+ >
297
+ <div className="image-modal">
298
+ Explore EPSG-related details in our{' '}
299
+ <UniversalLink href="/faq">FAQ page</UniversalLink>
300
+ </div>
301
+ </CclModal>
302
+ </Table.HeaderCell>
276
303
  <Table.HeaderCell>Timeseries</Table.HeaderCell>
277
304
  <Table.HeaderCell></Table.HeaderCell>
278
305
  </Table.Row>
@@ -323,8 +350,8 @@ const CLMSCartContent = (props) => {
323
350
  <strong>Source: </strong>
324
351
  {contentOrDash(item?.source)}
325
352
  </div>
326
- <div className="mb-2">
327
- <strong>Area: </strong>
353
+ <div className="mb-2 cart-area">
354
+ <strong className="cart-area-text">Area: </strong>
328
355
  <AreaNaming item={item} />
329
356
  </div>
330
357
 
@@ -340,7 +367,32 @@ const CLMSCartContent = (props) => {
340
367
  </div>
341
368
 
342
369
  <div className="mb-2">
343
- <strong>Format: </strong>
370
+ <strong>Format: </strong>{' '}
371
+ <CclModal
372
+ draggable={false}
373
+ trigger={
374
+ /* eslint-disable jsx-a11y/anchor-is-valid */
375
+ <a href="#">
376
+ <Popup
377
+ content="Explore Formats details and coordinate systems with a click."
378
+ trigger={
379
+ <FontAwesomeIcon
380
+ color="#000000"
381
+ icon={['far', 'question-circle']}
382
+ />
383
+ }
384
+ />
385
+ </a>
386
+ }
387
+ size={'small'}
388
+ >
389
+ <div className="image-modal">
390
+ Explore format-related details in our{' '}
391
+ <UniversalLink href="/faq">
392
+ FAQ page
393
+ </UniversalLink>
394
+ </div>
395
+ </CclModal>
344
396
  </div>
345
397
  {item?.layer !== null && (
346
398
  <div className="mb-2">
@@ -9,7 +9,8 @@ td li {
9
9
  }
10
10
 
11
11
  .cart-bounding-boxes {
12
- margin-top: 0.8rem;
12
+ margin-top: 1.5rem;
13
+ margin-left: -8.7rem;
13
14
  }
14
15
 
15
16
  .cart-bounding-boxes .ui.label {
@@ -18,6 +19,17 @@ td li {
18
19
  color: #273b4b;
19
20
  }
20
21
 
22
+ .modal-cart-bounding-boxes .ui.label {
23
+ padding: 0;
24
+ background-color: transparent;
25
+ color: #273b4b;
26
+ }
27
+
28
+ .modal-cart-bounding-boxes {
29
+ display: flex;
30
+ justify-content: center;
31
+ }
32
+
21
33
  .ui.selection.dropdown {
22
34
  width: 95%;
23
35
  min-height: 1.3rem !important;
@@ -71,3 +83,26 @@ div.mb-2 {
71
83
  .ui.table td.table-td-timeseries {
72
84
  text-align: center;
73
85
  }
86
+
87
+ .cart-modal-trigger {
88
+ border-color: #a0b128;
89
+ color: #a0b128;
90
+ cursor: pointer;
91
+ }
92
+
93
+ .cart-area {
94
+ display: flex;
95
+ }
96
+
97
+ .modal-trigger {
98
+ margin: 0 !important;
99
+ }
100
+
101
+ .cart-area-text {
102
+ margin-right: 0.2rem;
103
+ }
104
+
105
+ .tools {
106
+ margin-bottom: 1.5rem;
107
+ margin-inline: 6rem;
108
+ }
@@ -3,11 +3,12 @@ import { defineMessages, useIntl } from 'react-intl';
3
3
  import { useDispatch, useSelector } from 'react-redux';
4
4
 
5
5
  import { Forbidden, Unauthorized } from '@plone/volto/components';
6
- import { Helmet, getBaseUrl } from '@plone/volto/helpers';
7
- import { MapViewer } from '@eeacms/volto-arcgis-block/components';
8
- import config from '@eeacms/volto-arcgis-block/components/MapViewer/config';
9
- import { helmetTitle } from '@eeacms/volto-clms-theme/components/CclUtils';
6
+ // import { Helmet, getBaseUrl } from '@plone/volto/helpers';
7
+ // import { MapViewer } from '@eeacms/volto-arcgis-block/components';
8
+ // import config from '@eeacms/volto-arcgis-block/components/MapViewer/config';
9
+ // import { helmetTitle } from '@eeacms/volto-clms-theme/components/CclUtils';
10
10
  import useCartState from '@eeacms/volto-clms-utils/cart/useCartState';
11
+ import { Redirect } from 'react-router-dom';
11
12
 
12
13
  import { getExtraBreadcrumbItems } from '../../actions';
13
14
 
@@ -20,6 +21,7 @@ const CLMSMapViewerView = (props) => {
20
21
  const dispatch = useDispatch();
21
22
  const { isLoggedIn } = useCartState();
22
23
  const content = useSelector((state) => state.content.data);
24
+ const locale = useSelector((state) => state?.intl?.locale);
23
25
 
24
26
  const { formatMessage } = useIntl();
25
27
  const messages = defineMessages({
@@ -50,45 +52,45 @@ const CLMSMapViewerView = (props) => {
50
52
  props.location.pathname,
51
53
  ]);
52
54
 
53
- const config_by_area = {
54
- ...config,
55
- DownloadByArea: true,
56
- Components: [
57
- // Area Information
58
- {
59
- ComponentTitle: 'Custom detail element',
60
- Products: [
61
- {
62
- ProductTitle: 'Test detail',
63
- Datasets: [
64
- {
65
- DatasetId: 'copernicus_v_3035_10_m_cz-2012_p_2010-2014_v01_r00',
66
- DatasetTitle: 'Coastal Zones 2012',
67
- DatasetDescription:
68
- 'The Coastal Zones (CZ) LC/LU product for 2012 is providing a detailed Land Cover / Land Use (LC/ LU) dataset for areas along the coastline of the EEA38 countries and the United Kingdom, with reference year 2012 for the classification. This product monitors landscape dynamics in European coastal territory to an inland depth of 10 km with a total area of approximately 730,000 km², with all the relevant areas (estuaries, coastal lowlands, nature reserves). The production of the coastal zone layers was coordinated by the European Environment Agency (EEA) in the frame of the EU Copernicus programme, as part of the Copernicus Land Monitoring Service (CLMS) Local Component.The Coastal Zones product covers a buffer zone of coastline derived from EU-Hydro v1.1. Land Cover/Land Use (LC/LU) layer is extracted from Very High Resolution (VHR) satellite data and other available data. The class definitions follow the pre-defined nomenclature on the basis of Mapping and Assessment of Ecosystems and their Services (MAES) typology of ecosystems (Level 1 to Level 4) and CORINE Land Cover adapted to the specific characteristics of coastal zones. The classification provides 71 distinct thematic classes with a Minimum Mapping Unit (MMU) of 0.5 ha and a Minimum Mapping Width (MMW) of 10 m. The product is available for the 2012 and 2018 reference year including change mapping.This CZ dataset is distributed in vector format, in a single OGC GeoPackage SQLite file covering the area of interest.',
69
- ViewService:
70
- 'https://image.discomap.eea.europa.eu/arcgis/services/CoastalZones/CZ_CoastalZones_2012/MapServer/WmsServer?',
71
- Layer: [
72
- {
73
- LayerId: 'Coastal_Zones_2012_vector53031',
74
- Title: 'Coastal Zones 2012 vector',
75
- },
76
- {
77
- LayerId: 'Coastal_Zones_2012_raster55645',
78
- Title: 'Coastal Zones 2012 raster',
79
- },
80
- ],
81
- DownloadService: 'EEA',
82
- DownloadType: 'ESRI REST service',
83
- IsTimeSeries: false,
84
- TimeSeriesService: '',
85
- },
86
- ],
87
- },
88
- ],
89
- },
90
- ],
91
- };
55
+ // const config_by_area = {
56
+ // ...config,
57
+ // DownloadByArea: true,
58
+ // Components: [
59
+ // // Area Information
60
+ // {
61
+ // ComponentTitle: 'Custom detail element',
62
+ // Products: [
63
+ // {
64
+ // ProductTitle: 'Test detail',
65
+ // Datasets: [
66
+ // {
67
+ // DatasetId: 'copernicus_v_3035_10_m_cz-2012_p_2010-2014_v01_r00',
68
+ // DatasetTitle: 'Coastal Zones 2012',
69
+ // DatasetDescription:
70
+ // 'The Coastal Zones (CZ) LC/LU product for 2012 is providing a detailed Land Cover / Land Use (LC/ LU) dataset for areas along the coastline of the EEA38 countries and the United Kingdom, with reference year 2012 for the classification. This product monitors landscape dynamics in European coastal territory to an inland depth of 10 km with a total area of approximately 730,000 km², with all the relevant areas (estuaries, coastal lowlands, nature reserves). The production of the coastal zone layers was coordinated by the European Environment Agency (EEA) in the frame of the EU Copernicus programme, as part of the Copernicus Land Monitoring Service (CLMS) Local Component.The Coastal Zones product covers a buffer zone of coastline derived from EU-Hydro v1.1. Land Cover/Land Use (LC/LU) layer is extracted from Very High Resolution (VHR) satellite data and other available data. The class definitions follow the pre-defined nomenclature on the basis of Mapping and Assessment of Ecosystems and their Services (MAES) typology of ecosystems (Level 1 to Level 4) and CORINE Land Cover adapted to the specific characteristics of coastal zones. The classification provides 71 distinct thematic classes with a Minimum Mapping Unit (MMU) of 0.5 ha and a Minimum Mapping Width (MMW) of 10 m. The product is available for the 2012 and 2018 reference year including change mapping.This CZ dataset is distributed in vector format, in a single OGC GeoPackage SQLite file covering the area of interest.',
71
+ // ViewService:
72
+ // 'https://image.discomap.eea.europa.eu/arcgis/services/CoastalZones/CZ_CoastalZones_2012/MapServer/WmsServer?',
73
+ // Layer: [
74
+ // {
75
+ // LayerId: 'Coastal_Zones_2012_vector53031',
76
+ // Title: 'Coastal Zones 2012 vector',
77
+ // },
78
+ // {
79
+ // LayerId: 'Coastal_Zones_2012_raster55645',
80
+ // Title: 'Coastal Zones 2012 raster',
81
+ // },
82
+ // ],
83
+ // DownloadService: 'EEA',
84
+ // DownloadType: 'ESRI REST service',
85
+ // IsTimeSeries: false,
86
+ // TimeSeriesService: '',
87
+ // },
88
+ // ],
89
+ // },
90
+ // ],
91
+ // },
92
+ // ],
93
+ // };
92
94
 
93
95
  return (
94
96
  <div>
@@ -108,17 +110,18 @@ const CLMSMapViewerView = (props) => {
108
110
  </>
109
111
  )}
110
112
  {isLoggedIn && (
111
- <>
112
- <Helmet
113
- title={helmetTitle(formatMessage(messages.DownloadByArea), content)}
114
- />
115
- <MapViewer
116
- cfg={config_by_area}
117
- url={getBaseUrl(props.location.pathname)}
118
- customClass={'land'}
119
- id={props.location.pathname}
120
- ></MapViewer>
121
- </>
113
+ <Redirect to={'/' + locale + '/map-viewer?dataset=' + content?.UID} />
114
+ // <>
115
+ // <Helmet
116
+ // title={helmetTitle(formatMessage(messages.DownloadByArea), content)}
117
+ // />
118
+ // <MapViewer
119
+ // cfg={config_by_area}
120
+ // url={getBaseUrl(props.location.pathname)}
121
+ // customClass={'land'}
122
+ // id={props.location.pathname}
123
+ // ></MapViewer>
124
+ // </>
122
125
  )}
123
126
  </div>
124
127
  );
@@ -28,7 +28,9 @@ const CLMSTechnicalLibraryAdminInfo = (props) => {
28
28
  Hide
29
29
  </Button>
30
30
  <br />
31
- <strong>Categorization</strong>
31
+ {item?.taxonomy_technical_library_categorization && (
32
+ <strong>Categorization</strong>
33
+ )}{' '}
32
34
  <ul>
33
35
  {item?.taxonomy_technical_library_categorization?.map((item) => (
34
36
  <li>{item.title}</li>
@@ -3,6 +3,11 @@ import CclButton from '../CclButton/CclButton';
3
3
 
4
4
  const CLMSTechnicalLibraryView = (props) => {
5
5
  const { content } = props;
6
+
7
+ const textToForm = encodeURIComponent(
8
+ `I want the following document ${content.title} ${content['@id']}`,
9
+ );
10
+
6
11
  return (
7
12
  <div className="ccl-container">
8
13
  <>
@@ -16,13 +21,12 @@ const CLMSTechnicalLibraryView = (props) => {
16
21
  {content.ondemand ? (
17
22
  <>
18
23
  <p>
19
- You are requesting an on-demand document. Please contact the
20
- service desk to obtain it.
24
+ You are requesting an on-demand document. Please contact the{' '}
25
+ <a href={`/en/contact-service-helpdesk?text=${textToForm}`}>
26
+ service desk
27
+ </a>{' '}
28
+ to obtain it.
21
29
  </p>
22
-
23
- <CclButton to={`/en/contact-service-helpdesk`}>
24
- Helpdesk
25
- </CclButton>
26
30
  </>
27
31
  ) : (
28
32
  <>
@@ -50,6 +50,7 @@ function CclModal(props) {
50
50
  </Draggable>
51
51
  )}
52
52
  <Segment
53
+ className="modal-trigger"
53
54
  basic
54
55
  compact
55
56
  onClick={() => {
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ //import { injectIntl } from 'react-intl';
3
+ import TextareaWidget from '@plone/volto/components/manage/Widgets/TextareaWidget';
4
+
5
+ import { useLocation } from 'react-router-dom';
6
+
7
+ const TextareaWithRequestData = (props) => {
8
+ const { search } = useLocation();
9
+
10
+ const hashMatch = decodeURIComponent(
11
+ search.includes('text') &&
12
+ search.match(/.*(\?text=.*)/)[1].replace(/\?text=/, ''),
13
+ );
14
+
15
+ return <TextareaWidget {...props} value={hashMatch} />;
16
+ };
17
+
18
+ export default TextareaWithRequestData;
package/src/index.js CHANGED
@@ -323,6 +323,8 @@ const applyConfig = (config) => {
323
323
  ...reducers,
324
324
  };
325
325
 
326
+ config.experimental.addBlockButton.enabled = true;
327
+
326
328
  return config;
327
329
  };
328
330
  export default applyConfig;
Binary file