@eeacms/volto-cca-policy 0.1.75 → 0.1.77
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 +36 -0
- package/package.json +1 -1
- package/src/components/manage/Blocks/Listing/IndicatorCardsListingView.jsx +2 -1
- package/src/components/manage/Blocks/Listing/OrganisationCardsListingView.jsx +8 -9
- package/src/components/manage/Blocks/Listing/common.js +3 -0
- package/src/components/manage/Blocks/Listing/styles.less +22 -6
- package/src/components/theme/Views/AdaptationOptionView.jsx +40 -50
- package/src/components/theme/Views/AdaptationOptionView.test.jsx +9 -0
- package/src/components/theme/Views/CaseStudyView.jsx +3 -2
- package/src/components/theme/Views/CaseStudyView.test.jsx +9 -0
- package/src/components/theme/Views/GuidanceView.jsx +2 -3
- package/src/components/theme/Views/GuidanceView.test.jsx +9 -0
- package/src/components/theme/Views/IndicatorView.jsx +3 -2
- package/src/components/theme/Views/IndicatorView.test.jsx +9 -0
- package/src/components/theme/Views/InformationPortalView.jsx +4 -3
- package/src/components/theme/Views/InformationPortalView.test.jsx +9 -0
- package/src/components/theme/Views/OrganisationView.jsx +13 -11
- package/src/components/theme/Views/OrganisationView.test.jsx +9 -0
- package/src/components/theme/Views/ProjectView.jsx +23 -4
- package/src/components/theme/Views/ProjectView.test.jsx +9 -0
- package/src/components/theme/Views/PublicationReportView.jsx +6 -37
- package/src/components/theme/Views/PublicationReportView.test.jsx +9 -0
- package/src/components/theme/Views/ToolView.jsx +6 -33
- package/src/components/theme/Views/ToolView.test.jsx +9 -0
- package/src/components/theme/Views/VideoView.jsx +4 -2
- package/src/components/theme/Views/VideoView.test.jsx +9 -0
- package/src/customizations/volto/components/theme/Widgets/RichTextWidget.jsx +20 -0
- package/src/helpers/Utils.jsx +66 -0
- package/src/helpers/index.js +2 -0
- package/src/search/mission_projects/config-projects.js +1 -1
- package/src/search/mission_projects/facets-projects.js +23 -6
- package/src/search/mission_stories/config-stories.js +5 -0
- package/src/search/mission_stories/facets-stories.js +21 -13
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,42 @@ 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
|
+
### [0.1.77](https://github.com/eea/volto-cca-policy/compare/0.1.76...0.1.77) - 19 February 2024
|
|
8
|
+
|
|
9
|
+
#### :bug: Bug Fixes
|
|
10
|
+
|
|
11
|
+
- fix: typo [kreafox - [`b5dc1fe`](https://github.com/eea/volto-cca-policy/commit/b5dc1fe0fa28ff05dc2482d23fa7b0c4b27941de)]
|
|
12
|
+
- fix: add RichTextWidget override - refs: #265406 [kreafox - [`e25f6f0`](https://github.com/eea/volto-cca-policy/commit/e25f6f092cc15495ec2d6f3bc4a29caeda68b3eb)]
|
|
13
|
+
|
|
14
|
+
#### :nail_care: Enhancements
|
|
15
|
+
|
|
16
|
+
- change: update search facets [kreafox - [`41c9e3b`](https://github.com/eea/volto-cca-policy/commit/41c9e3bf18d033334c43ebdaad015bed8304890b)]
|
|
17
|
+
- change: update search facets [kreafox - [`fee246b`](https://github.com/eea/volto-cca-policy/commit/fee246b38965baaf38f0c9b7da5c0d48d91f1af8)]
|
|
18
|
+
- change: update mission projects facets [kreafox - [`10bbb14`](https://github.com/eea/volto-cca-policy/commit/10bbb14a12d8450295470536170979874bf5d0f5)]
|
|
19
|
+
- change: facets order [kreafox - [`ad7a023`](https://github.com/eea/volto-cca-policy/commit/ad7a023c05933d855329dbe9c1638ec24aaab2ab)]
|
|
20
|
+
- change: update mission stories search [kreafox - [`6bf68a6`](https://github.com/eea/volto-cca-policy/commit/6bf68a6ddc19ba13ea205c18dc84e5fd009f8267)]
|
|
21
|
+
- change: add Title block on database items view [kreafox - [`a59c677`](https://github.com/eea/volto-cca-policy/commit/a59c677143d2817f4d258c855f3adab8b4fb5ca2)]
|
|
22
|
+
|
|
23
|
+
#### :hammer_and_wrench: Others
|
|
24
|
+
|
|
25
|
+
- test: increase coverage [kreafox - [`d32e592`](https://github.com/eea/volto-cca-policy/commit/d32e592a1274748cae3b3b39ba23c2a51e93a4f9)]
|
|
26
|
+
- test: reduce duplicated code [kreafox - [`97319a4`](https://github.com/eea/volto-cca-policy/commit/97319a45b87afe2d35f01f8618b8746c37718f88)]
|
|
27
|
+
- test: remove unused import [kreafox - [`f393b42`](https://github.com/eea/volto-cca-policy/commit/f393b42bfbda103c290be658abf510fd5902f226)]
|
|
28
|
+
- test: reduce duplicated code [kreafox - [`037c3cb`](https://github.com/eea/volto-cca-policy/commit/037c3cbd5f82acec32959af96a374707b4e1bf02)]
|
|
29
|
+
- test: update volto version in Jenkinsfile [kreafox - [`43e8b76`](https://github.com/eea/volto-cca-policy/commit/43e8b7628e85cdf1965b8c88b90660e585811db4)]
|
|
30
|
+
- test: update tests for Database items view [kreafox - [`b611f0f`](https://github.com/eea/volto-cca-policy/commit/b611f0fea373f041ed196bad096fe7ac48df65c7)]
|
|
31
|
+
### [0.1.76](https://github.com/eea/volto-cca-policy/compare/0.1.75...0.1.76) - 16 February 2024
|
|
32
|
+
|
|
33
|
+
#### :nail_care: Enhancements
|
|
34
|
+
|
|
35
|
+
- change: update mission search fields [kreafox - [`011be24`](https://github.com/eea/volto-cca-policy/commit/011be24eed371196ce8180a6ca058fc4b254e2e6)]
|
|
36
|
+
- change: update mission stories search [kreafox - [`d077a11`](https://github.com/eea/volto-cca-policy/commit/d077a115001f8b8038531bcecb3306fb5b454da5)]
|
|
37
|
+
|
|
38
|
+
#### :hammer_and_wrench: Others
|
|
39
|
+
|
|
40
|
+
- Refs #265319 - Improve design for organisation cards. [GhitaB - [`da31fc1`](https://github.com/eea/volto-cca-policy/commit/da31fc1f1fa3b025be689cc77bb3cc0cb690b407)]
|
|
41
|
+
- Refs #265325 - Use observatory url format for indicators listing, too. [GhitaB - [`0557783`](https://github.com/eea/volto-cca-policy/commit/0557783ef325bf1786e3c59ef85bf2a5c94e1f06)]
|
|
42
|
+
- test: fix duplicated code issue [kreafox - [`0104638`](https://github.com/eea/volto-cca-policy/commit/01046385f54e58cc792ea06542c24b0bb4446c0f)]
|
|
7
43
|
### [0.1.75](https://github.com/eea/volto-cca-policy/compare/0.1.74...0.1.75) - 15 February 2024
|
|
8
44
|
|
|
9
45
|
#### :rocket: New Features
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import { compose } from 'redux';
|
|
|
5
5
|
import cx from 'classnames';
|
|
6
6
|
import { ConditionalLink } from '@plone/volto/components';
|
|
7
7
|
import { flattenToAppURL, getBaseUrl } from '@plone/volto/helpers';
|
|
8
|
+
import { observatoryURL } from './common';
|
|
8
9
|
import './styles.less';
|
|
9
10
|
|
|
10
11
|
const fixedTitles = {
|
|
@@ -27,7 +28,7 @@ const IndicatorCardsListingView = ({ items, isEditMode, token }) => {
|
|
|
27
28
|
<div className="wrapper">
|
|
28
29
|
<div className="slot-top">
|
|
29
30
|
<ConditionalLink
|
|
30
|
-
to={flattenToAppURL(getBaseUrl(item
|
|
31
|
+
to={flattenToAppURL(getBaseUrl(observatoryURL(item)))}
|
|
31
32
|
condition={!isEditMode}
|
|
32
33
|
>
|
|
33
34
|
<div className="listing-body">
|
|
@@ -2,13 +2,10 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
4
|
import { compose } from 'redux';
|
|
5
|
+
import { observatoryURL } from './common';
|
|
5
6
|
import './styles.less';
|
|
6
7
|
|
|
7
8
|
const OrganisationCardsListingView = ({ items, isEditMode, token }) => {
|
|
8
|
-
const observatoryURL = (item) => {
|
|
9
|
-
return item['@id'].replace('/metadata/', '/observatory/++aq++metadata/');
|
|
10
|
-
};
|
|
11
|
-
|
|
12
9
|
const contributionsURL = (item) => {
|
|
13
10
|
const mapContributorValues = {
|
|
14
11
|
'copernicus-climate-change-service-ecmw':
|
|
@@ -51,11 +48,13 @@ const OrganisationCardsListingView = ({ items, isEditMode, token }) => {
|
|
|
51
48
|
<div className="content">
|
|
52
49
|
<div className="header">
|
|
53
50
|
<a className="image" href={observatoryURL(item)}>
|
|
54
|
-
<img
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
<div className="img-container">
|
|
52
|
+
<img
|
|
53
|
+
src={item['@id'] + '/@@images/logo/preview'}
|
|
54
|
+
alt={item.title}
|
|
55
|
+
className="ui image"
|
|
56
|
+
></img>
|
|
57
|
+
</div>
|
|
59
58
|
</a>
|
|
60
59
|
<a className="header-link org-name" href={observatoryURL(item)}>
|
|
61
60
|
{item.title}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
// Organisation Cards Listing
|
|
2
2
|
div.organisationCards {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
div.card.u-card {
|
|
4
|
+
border: 1px solid #ccc;
|
|
5
|
+
margin: 10px;
|
|
6
|
+
|
|
7
|
+
div.img-container {
|
|
8
|
+
min-height: 120px;
|
|
9
|
+
text-align: center;
|
|
10
|
+
|
|
11
|
+
img {
|
|
12
|
+
width: auto;
|
|
13
|
+
max-height: 100px;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
a.org-name {
|
|
18
|
+
margin-top: 0.5em;
|
|
19
|
+
margin-bottom: 0.5em;
|
|
20
|
+
font-size: 1em;
|
|
21
|
+
}
|
|
7
22
|
|
|
8
|
-
|
|
9
|
-
|
|
23
|
+
a.org-site {
|
|
24
|
+
font-size: 0.7em;
|
|
25
|
+
}
|
|
10
26
|
}
|
|
11
27
|
}
|
|
12
28
|
|
|
@@ -5,58 +5,48 @@ import {
|
|
|
5
5
|
LinksList,
|
|
6
6
|
PublishedModifiedInfo,
|
|
7
7
|
ShareInfo,
|
|
8
|
+
BannerTitle,
|
|
8
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
10
|
import { Grid } from 'semantic-ui-react';
|
|
10
11
|
|
|
12
|
+
function createDataField(type, field, section, title) {
|
|
13
|
+
return {
|
|
14
|
+
type,
|
|
15
|
+
field,
|
|
16
|
+
section,
|
|
17
|
+
title,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
const dataDisplay = [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
title: 'Costs and Benefits',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
type: 'HTMLField',
|
|
44
|
-
field: 'legal_aspects',
|
|
45
|
-
section: 'legal',
|
|
46
|
-
title: 'Legal Aspects',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: 'HTMLField',
|
|
50
|
-
field: 'implementation_time',
|
|
51
|
-
section: 'implementation',
|
|
52
|
-
title: 'Implementation Time',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
type: 'HTMLField',
|
|
56
|
-
field: 'lifetime',
|
|
57
|
-
section: 'life_time',
|
|
58
|
-
title: 'Life Time',
|
|
59
|
-
},
|
|
22
|
+
createDataField('other', 'category', 'ao_category', 'Category'),
|
|
23
|
+
createDataField('other', 'ipcc_category', 'ipcc_category', 'IPCC categories'),
|
|
24
|
+
createDataField(
|
|
25
|
+
'HTMLField',
|
|
26
|
+
'stakeholder_participation',
|
|
27
|
+
'stakeholder_participation',
|
|
28
|
+
'Stakeholder participation',
|
|
29
|
+
),
|
|
30
|
+
createDataField(
|
|
31
|
+
'HTMLField',
|
|
32
|
+
'success_limitations',
|
|
33
|
+
'success_factors',
|
|
34
|
+
'Success and Limiting Factors',
|
|
35
|
+
),
|
|
36
|
+
createDataField(
|
|
37
|
+
'HTMLField',
|
|
38
|
+
'cost_benefit',
|
|
39
|
+
'costs_benefits',
|
|
40
|
+
'Costs and Benefits',
|
|
41
|
+
),
|
|
42
|
+
createDataField('HTMLField', 'legal_aspects', 'legal', 'Legal Aspects'),
|
|
43
|
+
createDataField(
|
|
44
|
+
'HTMLField',
|
|
45
|
+
'implementation_time',
|
|
46
|
+
'implementation',
|
|
47
|
+
'Implementation Time',
|
|
48
|
+
),
|
|
49
|
+
createDataField('HTMLField', 'lifetime', 'life_time', 'Life Time'),
|
|
60
50
|
];
|
|
61
51
|
|
|
62
52
|
const findSection = (title) => {
|
|
@@ -117,6 +107,8 @@ function AdaptationOptionView(props) {
|
|
|
117
107
|
|
|
118
108
|
return (
|
|
119
109
|
<div className="adaptation-option-view">
|
|
110
|
+
<BannerTitle content={content} type="Adaptation Option" />
|
|
111
|
+
|
|
120
112
|
<div className="ui container">
|
|
121
113
|
<Grid columns="12">
|
|
122
114
|
<div className="row">
|
|
@@ -126,8 +118,6 @@ function AdaptationOptionView(props) {
|
|
|
126
118
|
computer={9}
|
|
127
119
|
className="col-left"
|
|
128
120
|
>
|
|
129
|
-
<div className="ui label">Adaptation option</div>
|
|
130
|
-
<h1>{content.title}</h1>
|
|
131
121
|
<HTMLField
|
|
132
122
|
value={content.long_description}
|
|
133
123
|
className="long_description"
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import AdaptationOptionView from './AdaptationOptionView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
PublishedModifiedInfo,
|
|
7
7
|
DocumentsList,
|
|
8
8
|
ShareInfo,
|
|
9
|
+
BannerTitle,
|
|
9
10
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
10
11
|
import { Grid } from 'semantic-ui-react';
|
|
11
12
|
|
|
@@ -250,6 +251,8 @@ function CaseStudyView(props) {
|
|
|
250
251
|
|
|
251
252
|
return (
|
|
252
253
|
<div className="case-study-view">
|
|
254
|
+
<BannerTitle content={content} type="Case Studies" />
|
|
255
|
+
|
|
253
256
|
<div className="ui container">
|
|
254
257
|
<Grid columns="12">
|
|
255
258
|
<div className="row">
|
|
@@ -259,8 +262,6 @@ function CaseStudyView(props) {
|
|
|
259
262
|
computer={9}
|
|
260
263
|
className="col-left"
|
|
261
264
|
>
|
|
262
|
-
<div className="ui label">Case studies</div>
|
|
263
|
-
<h1>{content.title}</h1>
|
|
264
265
|
<PrimaryPhoto {...props} />
|
|
265
266
|
|
|
266
267
|
<HTMLField
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import CaseStudyView from './CaseStudyView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
LinksList,
|
|
6
6
|
PublishedModifiedInfo,
|
|
7
7
|
ShareInfo,
|
|
8
|
+
BannerTitle,
|
|
8
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
10
|
import { Grid } from 'semantic-ui-react';
|
|
10
11
|
|
|
@@ -35,6 +36,7 @@ function GuidanceView(props) {
|
|
|
35
36
|
|
|
36
37
|
return (
|
|
37
38
|
<div className="guidance-view">
|
|
39
|
+
<BannerTitle content={content} type="Guidance Document" />
|
|
38
40
|
<div className="ui container">
|
|
39
41
|
<Grid columns="12">
|
|
40
42
|
<div className="row">
|
|
@@ -44,9 +46,6 @@ function GuidanceView(props) {
|
|
|
44
46
|
computer={9}
|
|
45
47
|
className="col-left"
|
|
46
48
|
>
|
|
47
|
-
<div className="ui label">Guidance Document</div>
|
|
48
|
-
<h1>{content.title}</h1>
|
|
49
|
-
<hr />
|
|
50
49
|
<h4>Description:</h4>
|
|
51
50
|
<HTMLField
|
|
52
51
|
value={content.long_description}
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import GuidanceView from './GuidanceView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
LinksList,
|
|
6
6
|
PublishedModifiedInfo,
|
|
7
7
|
ShareInfo,
|
|
8
|
+
BannerTitle,
|
|
8
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
10
|
import { Grid } from 'semantic-ui-react';
|
|
10
11
|
|
|
@@ -13,6 +14,8 @@ function IndicatorView(props) {
|
|
|
13
14
|
|
|
14
15
|
return (
|
|
15
16
|
<div className="indicator-view">
|
|
17
|
+
<BannerTitle content={content} type="Indicator" />
|
|
18
|
+
|
|
16
19
|
<div className="ui container">
|
|
17
20
|
<Grid columns="12">
|
|
18
21
|
<div className="row">
|
|
@@ -22,8 +25,6 @@ function IndicatorView(props) {
|
|
|
22
25
|
computer={9}
|
|
23
26
|
className="col-left"
|
|
24
27
|
>
|
|
25
|
-
<div className="ui label">Indicator</div>
|
|
26
|
-
<h1>{content.title}</h1>
|
|
27
28
|
<h4>Description</h4>
|
|
28
29
|
<HTMLField
|
|
29
30
|
value={content.long_description}
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import IndicatorView from './IndicatorView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
LinksList,
|
|
6
6
|
PublishedModifiedInfo,
|
|
7
7
|
ShareInfo,
|
|
8
|
+
BannerTitle,
|
|
8
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
10
|
import { Grid } from 'semantic-ui-react';
|
|
10
11
|
|
|
@@ -13,6 +14,8 @@ function InformationPortalView(props) {
|
|
|
13
14
|
|
|
14
15
|
return (
|
|
15
16
|
<div className="information-portal-view">
|
|
17
|
+
<BannerTitle content={content} type="Information Portal" />
|
|
18
|
+
|
|
16
19
|
<div className="ui container">
|
|
17
20
|
<Grid columns="12">
|
|
18
21
|
<div className="row">
|
|
@@ -22,9 +25,7 @@ function InformationPortalView(props) {
|
|
|
22
25
|
computer={9}
|
|
23
26
|
className="col-left"
|
|
24
27
|
>
|
|
25
|
-
<
|
|
26
|
-
<h1>{content.title}</h1>
|
|
27
|
-
<h4>Description</h4>
|
|
28
|
+
<h4>Description:</h4>
|
|
28
29
|
<HTMLField
|
|
29
30
|
value={content.long_description}
|
|
30
31
|
className="long_description"
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import InformationPortalView from './InformationPortalView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Fragment } from 'react';
|
|
1
|
+
import React, { Fragment } from 'react';
|
|
3
2
|
import { UniversalLink } from '@plone/volto/components';
|
|
4
3
|
import {
|
|
5
4
|
HTMLField,
|
|
@@ -7,6 +6,7 @@ import {
|
|
|
7
6
|
LinksList,
|
|
8
7
|
PublishedModifiedInfo,
|
|
9
8
|
ShareInfo,
|
|
9
|
+
BannerTitle,
|
|
10
10
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
11
11
|
import { Grid } from 'semantic-ui-react';
|
|
12
12
|
|
|
@@ -27,6 +27,8 @@ function OrganisationView(props) {
|
|
|
27
27
|
|
|
28
28
|
return (
|
|
29
29
|
<div className="organisation-view">
|
|
30
|
+
<BannerTitle content={content} type="Organisation" />
|
|
31
|
+
|
|
30
32
|
<div className="ui container">
|
|
31
33
|
<Grid columns="12">
|
|
32
34
|
<div className="row">
|
|
@@ -36,15 +38,15 @@ function OrganisationView(props) {
|
|
|
36
38
|
computer={9}
|
|
37
39
|
className="col-left"
|
|
38
40
|
>
|
|
39
|
-
<div
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
<div>
|
|
42
|
+
<h4>Description:</h4>
|
|
43
|
+
<HTMLField
|
|
44
|
+
value={content.long_description}
|
|
45
|
+
className="long_description"
|
|
46
|
+
/>
|
|
47
|
+
<hr />
|
|
48
|
+
<h4>Reference information</h4>
|
|
49
|
+
</div>
|
|
48
50
|
|
|
49
51
|
{content?.websites?.length > 0 && (
|
|
50
52
|
<LinksList title="Websites:" value={content.websites} />
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import OrganisationView from './OrganisationView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -7,11 +7,34 @@ import {
|
|
|
7
7
|
ShareInfo,
|
|
8
8
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
9
|
import { Grid } from 'semantic-ui-react';
|
|
10
|
+
import config from '@plone/volto/registry';
|
|
10
11
|
|
|
11
12
|
function ProjectView(props) {
|
|
12
13
|
const { content } = props;
|
|
14
|
+
const {
|
|
15
|
+
blocks: { blocksConfig },
|
|
16
|
+
} = config;
|
|
17
|
+
const TitleBlockView = blocksConfig?.title?.view;
|
|
18
|
+
|
|
13
19
|
return (
|
|
14
20
|
<div className="project-view">
|
|
21
|
+
<TitleBlockView
|
|
22
|
+
{...props}
|
|
23
|
+
data={{
|
|
24
|
+
info: [{ description: '' }],
|
|
25
|
+
hideContentType: true,
|
|
26
|
+
hideCreationDate: true,
|
|
27
|
+
hideModificationDate: true,
|
|
28
|
+
hidePublishingDate: true,
|
|
29
|
+
hideDownloadButton: true,
|
|
30
|
+
hideShareButton: false,
|
|
31
|
+
subtitle: 'Project',
|
|
32
|
+
}}
|
|
33
|
+
metadata={{
|
|
34
|
+
...content,
|
|
35
|
+
title: content.title + ' (' + content.acronym + ')',
|
|
36
|
+
}}
|
|
37
|
+
/>
|
|
15
38
|
<div className="ui container">
|
|
16
39
|
<Grid columns="12">
|
|
17
40
|
<div className="row">
|
|
@@ -21,10 +44,6 @@ function ProjectView(props) {
|
|
|
21
44
|
computer={9}
|
|
22
45
|
className="col-left"
|
|
23
46
|
>
|
|
24
|
-
<div className="ui label">Project</div>
|
|
25
|
-
<h1>
|
|
26
|
-
{content.title} ({content.acronym})
|
|
27
|
-
</h1>
|
|
28
47
|
<h4>Description:</h4>
|
|
29
48
|
<HTMLField
|
|
30
49
|
value={content.long_description}
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import ProjectView from './ProjectView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import {
|
|
3
|
-
HTMLField,
|
|
4
3
|
ContentMetadata,
|
|
5
|
-
LinksList,
|
|
6
4
|
PublishedModifiedInfo,
|
|
7
5
|
DocumentsList,
|
|
8
6
|
ShareInfo,
|
|
7
|
+
ReferenceInfo,
|
|
8
|
+
BannerTitle,
|
|
9
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
10
10
|
import { Grid } from 'semantic-ui-react';
|
|
11
11
|
|
|
12
12
|
function PublicationReportView(props) {
|
|
13
13
|
const { content } = props;
|
|
14
|
+
|
|
14
15
|
return (
|
|
15
16
|
<div className="publication-report-view">
|
|
17
|
+
<BannerTitle content={content} type="Publications and Report" />
|
|
18
|
+
|
|
16
19
|
<div className="ui container">
|
|
17
20
|
<Grid columns="12">
|
|
18
21
|
<div className="row">
|
|
@@ -22,41 +25,7 @@ function PublicationReportView(props) {
|
|
|
22
25
|
computer={9}
|
|
23
26
|
className="col-left"
|
|
24
27
|
>
|
|
25
|
-
<
|
|
26
|
-
<h1>{content.title}</h1>
|
|
27
|
-
<h4>Description</h4>
|
|
28
|
-
<HTMLField
|
|
29
|
-
value={content.long_description}
|
|
30
|
-
className="long_description"
|
|
31
|
-
/>
|
|
32
|
-
<hr />
|
|
33
|
-
|
|
34
|
-
<h4>Reference information</h4>
|
|
35
|
-
|
|
36
|
-
{content?.websites?.length > 0 && (
|
|
37
|
-
<LinksList title="Websites:" value={content.websites} />
|
|
38
|
-
)}
|
|
39
|
-
|
|
40
|
-
{content.source && (
|
|
41
|
-
<>
|
|
42
|
-
<h4>Source:</h4>
|
|
43
|
-
<HTMLField value={content.source} className="source" />
|
|
44
|
-
</>
|
|
45
|
-
)}
|
|
46
|
-
{content?.contributor_list?.length > 0 && (
|
|
47
|
-
<>
|
|
48
|
-
<h4>Contributor:</h4>
|
|
49
|
-
{content.contributor_list
|
|
50
|
-
.map((item) => (
|
|
51
|
-
<>
|
|
52
|
-
{item.title}
|
|
53
|
-
<br />
|
|
54
|
-
</>
|
|
55
|
-
))
|
|
56
|
-
.sort()}
|
|
57
|
-
</>
|
|
58
|
-
)}
|
|
59
|
-
|
|
28
|
+
<ReferenceInfo content={content} />
|
|
60
29
|
<PublishedModifiedInfo {...props} />
|
|
61
30
|
<ShareInfo {...props} />
|
|
62
31
|
</Grid.Column>
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import PublicationReportView from './PublicationReportView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import {
|
|
3
|
-
HTMLField,
|
|
4
3
|
ContentMetadata,
|
|
5
|
-
LinksList,
|
|
6
4
|
PublishedModifiedInfo,
|
|
5
|
+
ReferenceInfo,
|
|
6
|
+
BannerTitle,
|
|
7
7
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
8
8
|
import { Grid } from 'semantic-ui-react';
|
|
9
9
|
|
|
10
10
|
function ToolView(props) {
|
|
11
11
|
const { content } = props;
|
|
12
|
+
|
|
12
13
|
return (
|
|
13
14
|
<div className="tool-view">
|
|
15
|
+
<BannerTitle content={content} type="Tools" />
|
|
16
|
+
|
|
14
17
|
<div className="ui container">
|
|
15
18
|
<Grid columns="12">
|
|
16
19
|
<div className="row">
|
|
@@ -20,37 +23,7 @@ function ToolView(props) {
|
|
|
20
23
|
computer={9}
|
|
21
24
|
className="col-left"
|
|
22
25
|
>
|
|
23
|
-
<
|
|
24
|
-
<h1>{content.title}</h1>
|
|
25
|
-
<h4>Description</h4>
|
|
26
|
-
<HTMLField
|
|
27
|
-
value={content.long_description}
|
|
28
|
-
className="long_description"
|
|
29
|
-
/>
|
|
30
|
-
<hr />
|
|
31
|
-
<h4>Reference information</h4>
|
|
32
|
-
|
|
33
|
-
{content?.websites?.length > 0 && (
|
|
34
|
-
<LinksList title="Websites:" value={content.websites} />
|
|
35
|
-
)}
|
|
36
|
-
|
|
37
|
-
{content.source && (
|
|
38
|
-
<>
|
|
39
|
-
<h4>Source:</h4>
|
|
40
|
-
<HTMLField value={content.source} className="source" />
|
|
41
|
-
</>
|
|
42
|
-
)}
|
|
43
|
-
{content?.contributor_list?.length > 0 && (
|
|
44
|
-
<>
|
|
45
|
-
<h4>Contributor</h4>
|
|
46
|
-
{content.contributor_list.sort().map((item) => (
|
|
47
|
-
<>
|
|
48
|
-
{item.title}
|
|
49
|
-
<br />
|
|
50
|
-
</>
|
|
51
|
-
))}
|
|
52
|
-
</>
|
|
53
|
-
)}
|
|
26
|
+
<ReferenceInfo content={content} />
|
|
54
27
|
|
|
55
28
|
<PublishedModifiedInfo {...props} />
|
|
56
29
|
</Grid.Column>
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import ToolView from './ToolView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -5,11 +5,13 @@ import {
|
|
|
5
5
|
ExternalLink,
|
|
6
6
|
LinksList,
|
|
7
7
|
ShareInfo,
|
|
8
|
+
BannerTitle,
|
|
8
9
|
} from '@eeacms/volto-cca-policy/helpers';
|
|
9
10
|
import { Grid } from 'semantic-ui-react';
|
|
10
11
|
|
|
11
12
|
function VideoView(props) {
|
|
12
13
|
const { content } = props;
|
|
14
|
+
|
|
13
15
|
const share_eea = ['https://cmshare.eea.eu', 'shareit.eea.europa.eu'];
|
|
14
16
|
const is_cmshare_video = share_eea.some((domain) =>
|
|
15
17
|
content.embed_url.includes(domain),
|
|
@@ -25,6 +27,8 @@ function VideoView(props) {
|
|
|
25
27
|
|
|
26
28
|
return (
|
|
27
29
|
<div className="video-view">
|
|
30
|
+
<BannerTitle content={content} type="Video" />
|
|
31
|
+
|
|
28
32
|
<div className="ui container">
|
|
29
33
|
<Grid columns="12">
|
|
30
34
|
<div className="row">
|
|
@@ -34,8 +38,6 @@ function VideoView(props) {
|
|
|
34
38
|
computer={9}
|
|
35
39
|
className="col-left"
|
|
36
40
|
>
|
|
37
|
-
<div className="ui label">Video</div>
|
|
38
|
-
<h1>{content.title}</h1>
|
|
39
41
|
<HTMLField
|
|
40
42
|
value={content.long_description}
|
|
41
43
|
className="long_description"
|
|
@@ -5,6 +5,15 @@ import '@testing-library/jest-dom/extend-expect';
|
|
|
5
5
|
import { Provider } from 'react-intl-redux';
|
|
6
6
|
import VideoView from './ToolView';
|
|
7
7
|
import renderer from 'react-test-renderer';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
config.blocks = {
|
|
11
|
+
blocksConfig: {
|
|
12
|
+
title: {
|
|
13
|
+
view: () => <div>Title Block Component</div>,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
8
17
|
|
|
9
18
|
const mockStore = configureStore();
|
|
10
19
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Original: https://github.com/plone/volto/blob/16.x.x/src/components/theme/Widgets/RichTextWidget.jsx
|
|
2
|
+
// Fixed 'dangerouslySetInnerHTML' did not match. Server: "" Client: "<p>This is my paragraph.</p>" error
|
|
3
|
+
// replaced <p> to <div>, the value can already be wrapped in <p> and nested <p> is invalid HTML
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import cx from 'classnames';
|
|
7
|
+
|
|
8
|
+
const RichTextWidget = ({ value, className }) =>
|
|
9
|
+
value ? (
|
|
10
|
+
<div
|
|
11
|
+
className={cx(className, 'richtext', 'widget')}
|
|
12
|
+
dangerouslySetInnerHTML={{
|
|
13
|
+
__html: value.data,
|
|
14
|
+
}}
|
|
15
|
+
/>
|
|
16
|
+
) : (
|
|
17
|
+
''
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export default RichTextWidget;
|
package/src/helpers/Utils.jsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { UniversalLink } from '@plone/volto/components';
|
|
2
|
+
import config from '@plone/volto/registry';
|
|
2
3
|
|
|
3
4
|
export const HTMLField = ({ value, className }) => {
|
|
4
5
|
if (value === null) {
|
|
@@ -68,6 +69,71 @@ export const LinksList = (props) => {
|
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
|
|
72
|
+
export const BannerTitle = (props) => {
|
|
73
|
+
const { content, type } = props;
|
|
74
|
+
const {
|
|
75
|
+
blocks: { blocksConfig },
|
|
76
|
+
} = config;
|
|
77
|
+
const TitleBlockView = blocksConfig?.title?.view;
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<>
|
|
81
|
+
<TitleBlockView
|
|
82
|
+
{...props}
|
|
83
|
+
data={{
|
|
84
|
+
info: [{ description: '' }],
|
|
85
|
+
hideContentType: true,
|
|
86
|
+
hideCreationDate: true,
|
|
87
|
+
hideModificationDate: true,
|
|
88
|
+
hidePublishingDate: true,
|
|
89
|
+
hideDownloadButton: true,
|
|
90
|
+
hideShareButton: false,
|
|
91
|
+
subtitle: type,
|
|
92
|
+
}}
|
|
93
|
+
metadata={content}
|
|
94
|
+
/>
|
|
95
|
+
</>
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const ReferenceInfo = (props) => {
|
|
100
|
+
const { content } = props;
|
|
101
|
+
return (
|
|
102
|
+
<>
|
|
103
|
+
<h4>Description</h4>
|
|
104
|
+
<HTMLField
|
|
105
|
+
value={content.long_description}
|
|
106
|
+
className="long_description"
|
|
107
|
+
/>
|
|
108
|
+
<hr />
|
|
109
|
+
<h4>Reference information</h4>
|
|
110
|
+
|
|
111
|
+
{content?.websites?.length > 0 && (
|
|
112
|
+
<LinksList title="Websites:" value={content.websites} />
|
|
113
|
+
)}
|
|
114
|
+
|
|
115
|
+
{content.source && (
|
|
116
|
+
<>
|
|
117
|
+
<h4>Source:</h4>
|
|
118
|
+
<HTMLField value={content.source} className="source" />
|
|
119
|
+
</>
|
|
120
|
+
)}
|
|
121
|
+
|
|
122
|
+
{content?.contributor_list?.length > 0 && (
|
|
123
|
+
<>
|
|
124
|
+
<h4>Contributor</h4>
|
|
125
|
+
{content.contributor_list.sort().map((item) => (
|
|
126
|
+
<>
|
|
127
|
+
{item.title}
|
|
128
|
+
<br />
|
|
129
|
+
</>
|
|
130
|
+
))}
|
|
131
|
+
</>
|
|
132
|
+
)}
|
|
133
|
+
</>
|
|
134
|
+
);
|
|
135
|
+
};
|
|
136
|
+
|
|
71
137
|
export const PublishedModifiedInfo = (props) => {
|
|
72
138
|
const { content } = props;
|
|
73
139
|
|
package/src/helpers/index.js
CHANGED
|
@@ -38,7 +38,7 @@ export default function installMainSearch(config) {
|
|
|
38
38
|
host: process.env.RAZZLE_ES_PROXY_ADDR || 'http://localhost:3000',
|
|
39
39
|
vocab: {
|
|
40
40
|
cluster_name: {
|
|
41
|
-
cca: '
|
|
41
|
+
cca: 'Mission Portal',
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
runtime_mappings: build_runtime_mappings(clusters),
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
import { multiTermFacet } from '@eeacms/search';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
include_archived,
|
|
4
|
+
objectProvides,
|
|
5
|
+
language,
|
|
6
|
+
issued_date,
|
|
7
|
+
geographic_countries,
|
|
8
|
+
} from './../common';
|
|
4
9
|
|
|
5
10
|
const facets = [
|
|
6
|
-
...globalSearchBaseConfig.facets,
|
|
7
11
|
multiTermFacet({
|
|
8
|
-
field: '
|
|
12
|
+
field: 'cca_funding_programme.keyword',
|
|
9
13
|
isFilterable: false,
|
|
10
14
|
isMulti: true,
|
|
11
|
-
label: '
|
|
15
|
+
label: 'Funding Programme',
|
|
16
|
+
iconsFamily: 'Funding Programme',
|
|
12
17
|
alwaysVisible: false,
|
|
13
18
|
}),
|
|
14
19
|
multiTermFacet({
|
|
15
20
|
field: 'cca_climate_impacts.keyword',
|
|
16
21
|
isFilterable: false,
|
|
17
22
|
isMulti: true,
|
|
18
|
-
label: 'Climate
|
|
23
|
+
label: 'Climate Impacts',
|
|
24
|
+
alwaysVisible: false,
|
|
25
|
+
}),
|
|
26
|
+
multiTermFacet({
|
|
27
|
+
field: 'cca_adaptation_sectors.keyword',
|
|
28
|
+
isFilterable: false,
|
|
29
|
+
isMulti: true,
|
|
30
|
+
label: 'Adaptation Sectors',
|
|
19
31
|
alwaysVisible: false,
|
|
20
32
|
}),
|
|
21
33
|
multiTermFacet({
|
|
@@ -25,6 +37,11 @@ const facets = [
|
|
|
25
37
|
label: 'Adaptation Elements',
|
|
26
38
|
alwaysVisible: false,
|
|
27
39
|
}),
|
|
40
|
+
geographic_countries,
|
|
41
|
+
include_archived,
|
|
42
|
+
issued_date,
|
|
43
|
+
language,
|
|
44
|
+
objectProvides,
|
|
28
45
|
];
|
|
29
46
|
|
|
30
47
|
export default facets;
|
|
@@ -21,6 +21,11 @@ export default function installMissionStoriesSearch(config) {
|
|
|
21
21
|
elastic_index: '_es/missionStoriesSearch',
|
|
22
22
|
index_name: 'ccatest_searchui',
|
|
23
23
|
host: process.env.RAZZLE_ES_PROXY_ADDR || 'http://localhost:3000',
|
|
24
|
+
vocab: {
|
|
25
|
+
cluster_name: {
|
|
26
|
+
cca: 'Mission Portal',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
24
29
|
};
|
|
25
30
|
|
|
26
31
|
const { missionStoriesSearch } = config.searchui;
|
|
@@ -3,29 +3,37 @@ import { multiTermFacet } from '@eeacms/search';
|
|
|
3
3
|
import globalSearchBaseConfig from '@eeacms/volto-globalsearch/config/global-search-base-config.js';
|
|
4
4
|
|
|
5
5
|
const facets = [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// }),
|
|
6
|
+
multiTermFacet({
|
|
7
|
+
field: 'cca_climate_impacts.keyword',
|
|
8
|
+
isFilterable: false,
|
|
9
|
+
isMulti: true,
|
|
10
|
+
label: 'Climate Impacts',
|
|
11
|
+
iconsFamily: 'Climate Impacts',
|
|
12
|
+
alwaysVisible: false,
|
|
13
|
+
}),
|
|
15
14
|
multiTermFacet({
|
|
16
15
|
field: 'cca_adaptation_sectors.keyword',
|
|
17
16
|
isFilterable: false,
|
|
18
17
|
isMulti: true,
|
|
19
|
-
label: 'Sectors',
|
|
20
|
-
iconsFamily: 'Sectors',
|
|
18
|
+
label: 'Adaptation Sectors',
|
|
19
|
+
iconsFamily: 'Adaptation Sectors',
|
|
21
20
|
alwaysVisible: false,
|
|
22
21
|
}),
|
|
23
22
|
multiTermFacet({
|
|
24
23
|
field: 'key_system.keyword',
|
|
25
24
|
isFilterable: false,
|
|
26
25
|
isMulti: true,
|
|
27
|
-
label: 'Key
|
|
28
|
-
iconsFamily: 'Key
|
|
26
|
+
label: 'Key Community Systems',
|
|
27
|
+
iconsFamily: 'Key Community Systems',
|
|
28
|
+
alwaysVisible: false,
|
|
29
|
+
}),
|
|
30
|
+
...globalSearchBaseConfig.facets,
|
|
31
|
+
multiTermFacet({
|
|
32
|
+
field: 'cca_funding_programme.keyword',
|
|
33
|
+
isFilterable: false,
|
|
34
|
+
isMulti: true,
|
|
35
|
+
label: 'Funding Programme',
|
|
36
|
+
iconsFamily: 'Funding Programme',
|
|
29
37
|
alwaysVisible: false,
|
|
30
38
|
}),
|
|
31
39
|
multiTermFacet({
|