@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 +31 -0
- package/package.json +2 -1
- package/src/components/Blocks/CustomTemplates/VoltoFormBlock/customIdFieldSchema.js +1 -1
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/custom.less +4 -0
- package/src/components/Blocks/customBlocks.js +6 -0
- package/src/components/CLMSDatasetDetailView/DownloadDataSetContent.jsx +7 -5
- package/src/components/CLMSDownloadCartView/AreaNaming.jsx +53 -2
- package/src/components/CLMSDownloadCartView/CLMSCartContent.jsx +69 -17
- package/src/components/CLMSDownloadCartView/cart-table.less +36 -1
- package/src/components/CLMSMapViewerView/CLMSMapViewerView.jsx +57 -54
- package/src/components/CLMSTechnicalLibraryAdminInfo/CLMSTechnicalLibraryAdminInfo.jsx +3 -1
- package/src/components/CLMSTechnicalLibraryView/CLMSTechnicalLibraryView.jsx +10 -6
- package/src/components/CclModal/CclModal.jsx +1 -0
- package/src/components/Widgets/TextareaWithRequestData.jsx +18 -0
- package/src/index.js +2 -0
- package/theme/clms/img/lat_lon.png +0 -0
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.
|
|
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",
|
|
@@ -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
|
|
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
|
|
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
|
-
<
|
|
9
|
-
|
|
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>
|
|
52
|
+
<Label>{`E: ${item?.area.value[2].toFixed(1)}º`}</Label>
|
|
53
|
+
{/* </span>
|
|
54
|
+
<span className="cart-bounding-box-row"> */}
|
|
55
|
+
<Label>{`S: ${item?.area.value[3].toFixed(1)}º`}</Label>
|
|
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>
|
|
@@ -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,
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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>
|
|
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:
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
|
|
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
|
|
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
|
<>
|
|
@@ -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
|
Binary file
|