@eeacms/volto-cca-policy 0.3.15 → 0.3.16

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,20 @@ 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.3.16](https://github.com/eea/volto-cca-policy/compare/0.3.15...0.3.16) - 17 March 2025
8
+
9
+ #### :rocket: New Features
10
+
11
+ - feat(block): add mission signatories profile block [kreafox - [`818f2ee`](https://github.com/eea/volto-cca-policy/commit/818f2eee63310c8d461fefc0d973882768a71fdb)]
12
+
13
+ #### :bug: Bug Fixes
14
+
15
+ - fix: multiple semantic-ui-react imports [kreafox - [`b73246f`](https://github.com/eea/volto-cca-policy/commit/b73246f05a49c94ff8cf6063c28fb597ee4e73b9)]
16
+
17
+ #### :hammer_and_wrench: Others
18
+
19
+ - test: increase coverage [kreafox - [`7c501ed`](https://github.com/eea/volto-cca-policy/commit/7c501ed316d845b17b1787bd124bf89a44495c9a)]
20
+ - make block available on mission [kreafox - [`2059222`](https://github.com/eea/volto-cca-policy/commit/2059222f1ff962bc8c8c84e8b06c6018fd058d47)]
7
21
  ### [0.3.15](https://github.com/eea/volto-cca-policy/compare/0.3.14...0.3.15) - 6 March 2025
8
22
 
9
23
  #### :rocket: Dependency updates
@@ -1998,10 +2012,13 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1998
2012
  - Refs #260715 rast-block wip [Tripon Eugen - [`f19d54e`](https://github.com/eea/volto-cca-policy/commit/f19d54e0b9a6a86bf344eb85b6a1cda7f3de91bf)]
1999
2013
  - Refs #260715 rast-block wip [Tripon Eugen - [`2828537`](https://github.com/eea/volto-cca-policy/commit/2828537b6c084cd1a82162d552fb4ef025b71f9f)]
2000
2014
  - Refs #260715 rast-block updates [Tripon Eugen - [`1e803e5`](https://github.com/eea/volto-cca-policy/commit/1e803e5bd3d3fb7558f261c76c68866be7beb8b5)]
2015
+ - test: [JENKINS] Use java17 for sonarqube scanner [valentinab25 - [`0a15e1b`](https://github.com/eea/volto-cca-policy/commit/0a15e1b2ad081233685e80d5b3c60a8663f6b896)]
2016
+ - test: [JENKINS] Run cypress in started frontend container [valentinab25 - [`9554e44`](https://github.com/eea/volto-cca-policy/commit/9554e44c92a621a52b2adb5a4830fb084ee5734b)]
2001
2017
  ### [0.1.49](https://github.com/eea/volto-cca-policy/compare/0.1.48...0.1.49) - 15 November 2023
2002
2018
 
2003
2019
  #### :house: Internal changes
2004
2020
 
2021
+ - chore: [JENKINS] Refactor automated testing [valentinab25 - [`7b820a6`](https://github.com/eea/volto-cca-policy/commit/7b820a6369c2ddd5203b1a4abe352cb4bb43db7a)]
2005
2022
  - chore: husky, lint-staged use fixed versions [valentinab25 - [`f0a8061`](https://github.com/eea/volto-cca-policy/commit/f0a8061c275c236deb00087c23fac9860a073106)]
2006
2023
 
2007
2024
  #### :hammer_and_wrench: Others
@@ -2018,6 +2035,9 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2018
2035
  - Refs #259267 - jenkins test [Tripon Eugen - [`cacd31e`](https://github.com/eea/volto-cca-policy/commit/cacd31e7b1afe0983674ed5c7632d2e1d7fa752e)]
2019
2036
  - Refs #259267 - jenkins [Tripon Eugen - [`5b3affe`](https://github.com/eea/volto-cca-policy/commit/5b3affee8401239de10097884c1b7f2349d15ec0)]
2020
2037
  - Refs #259267 - add When, lead image and title to files [Tripon Eugen - [`2cedb23`](https://github.com/eea/volto-cca-policy/commit/2cedb237f898af9057e13fba94b615ef71077204)]
2038
+ - test: [JENKINS] Add cpu limit on cypress docker [valentinab25 - [`4d607a5`](https://github.com/eea/volto-cca-policy/commit/4d607a576e9d0a5c34e48c41b409e7df616ee3d6)]
2039
+ - test: [JENKINS] Increase shm-size to cypress docker [valentinab25 - [`b7f74d5`](https://github.com/eea/volto-cca-policy/commit/b7f74d53513a6edbfbca5cb6d19687929bb1e5db)]
2040
+ - test: [JENKINS] Improve cypress time [valentinab25 - [`db65617`](https://github.com/eea/volto-cca-policy/commit/db656173391f65157098d95d388c25f6429753d8)]
2021
2041
  - Refs #259267 - cca event blocks attachments and check not mandatoty fields [Tripon Eugen - [`3138e5a`](https://github.com/eea/volto-cca-policy/commit/3138e5afb5bfbdbed14e27ed457b16867b7fa414)]
2022
2042
  - Refs #256681 - Fix error in CCA Event view menu. ([React Intl] An id must be provided to format a message.) [GhitaB - [`517eeb8`](https://github.com/eea/volto-cca-policy/commit/517eeb817264a47bbfd6b9b7d22aaf22d44ed224)]
2023
2043
  - Refs #161485 - Fix ECDE name conflict. [GhitaB - [`8bfd99f`](https://github.com/eea/volto-cca-policy/commit/8bfd99ff68bb82a04d1c0ed625fa514fcf46289e)]
@@ -2234,6 +2254,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2234
2254
 
2235
2255
  #### :house: Internal changes
2236
2256
 
2257
+ - chore: [JENKINS] Remove alpha testing version [valentinab25 - [`ad1ced0`](https://github.com/eea/volto-cca-policy/commit/ad1ced0971ba116c13a3b5fcc039172cc915c919)]
2237
2258
 
2238
2259
  #### :hammer_and_wrench: Others
2239
2260
 
@@ -2714,6 +2735,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2714
2735
  #### :hammer_and_wrench: Others
2715
2736
 
2716
2737
  - Refs #158294 - Update supported languages list. [GhitaB - [`0a4f91f`](https://github.com/eea/volto-cca-policy/commit/0a4f91f39b7edc367bd4c127d6a8f273c7788361)]
2738
+ - Add Sonarqube tag using cca-frontend addons list [EEA Jenkins - [`8f1f9ce`](https://github.com/eea/volto-cca-policy/commit/8f1f9ce6c22805670cc0800d3c779b6d619d0f31)]
2717
2739
  ### [0.1.1](https://github.com/eea/volto-cca-policy/compare/0.1.0...0.1.1) - 13 December 2022
2718
2740
 
2719
2741
  #### :hammer_and_wrench: Others
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-cca-policy",
3
- "version": "0.3.15",
3
+ "version": "0.3.16",
4
4
  "description": "@eeacms/volto-cca-policy: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
- import { TabPane, Tab } from 'semantic-ui-react';
3
- import { Accordion, Icon } from 'semantic-ui-react';
2
+ import { TabPane, Tab, Accordion, Icon } from 'semantic-ui-react';
4
3
  import CountryTabPane from './CountryTabPane';
5
4
 
6
5
  import './styles.less';
@@ -0,0 +1,28 @@
1
+ import { SidebarPortal } from '@plone/volto/components';
2
+ import BlockDataForm from '@plone/volto/components/manage/Form/BlockDataForm';
3
+ import MissionSignatoriesProfile from './MissionSignatoriesProfileView';
4
+ import schema from './schema';
5
+
6
+ export default function Edit(props) {
7
+ const { block, data, onChangeBlock, selected } = props;
8
+ return (
9
+ <>
10
+ <MissionSignatoriesProfile {...props} mode="edit" />
11
+ <SidebarPortal selected={selected}>
12
+ <BlockDataForm
13
+ block={block}
14
+ title={schema.title}
15
+ schema={schema}
16
+ onChangeField={(id, value) => {
17
+ onChangeBlock(block, {
18
+ ...data,
19
+ [id]: value,
20
+ });
21
+ }}
22
+ onChangeBlock={onChangeBlock}
23
+ formData={data}
24
+ />
25
+ </SidebarPortal>
26
+ </>
27
+ );
28
+ }
@@ -0,0 +1,149 @@
1
+ import React from 'react';
2
+ import {
3
+ Tab,
4
+ AccordionTitle,
5
+ AccordionContent,
6
+ Accordion,
7
+ Icon,
8
+ } from 'semantic-ui-react';
9
+ import { Callout } from '@eeacms/volto-eea-design-system/ui';
10
+
11
+ export default function MissionSignatoriesProfileView(props) {
12
+ const { data } = props;
13
+ const result = data?._v_results?.[0] || {};
14
+ // const dataJson = JSON.parse(result?.Cooperation_Experience);
15
+
16
+ const [activeAccIndex, setActiveAccIndex] = React.useState(-1);
17
+
18
+ function handleAccClick(e, titleProps) {
19
+ const { index } = titleProps;
20
+ const newIndex = activeAccIndex === index ? -1 : index;
21
+
22
+ setActiveAccIndex(newIndex);
23
+ }
24
+
25
+ return (
26
+ <>
27
+ <div>
28
+ {/* {
29
+ dataJson['Cooperation_Experience'][0][
30
+ 'DescribeDetailCooperationEnhance'
31
+ ]
32
+ } */}
33
+ <h1>{result?.Signatory}</h1>
34
+ <Tab
35
+ menu={{
36
+ fluid: true,
37
+ className: 'secondary',
38
+ vertical: true,
39
+ pointing: true,
40
+ }}
41
+ grid={{ paneWidth: 9, tabWidth: 3, stackable: true }}
42
+ onTabChange={() => {}}
43
+ panes={[
44
+ {
45
+ menuItem: 'Introduction',
46
+ render: () => (
47
+ <Tab.Pane>
48
+ <h2>Introduction</h2>
49
+ <p>
50
+ Nullam quis arcu in magna pulvinar tincidunt. Lorem ipsum
51
+ dolor sit amet, consectetur adipiscing elit. Nam hendrerit
52
+ nulla ut cursus laoreet. Nullam elementum lorem vel
53
+ facilisis laoreet. Cras ac turpis vel erat vehicula
54
+ venenatis.
55
+ </p>
56
+ </Tab.Pane>
57
+ ),
58
+ },
59
+ {
60
+ menuItem: 'Governance',
61
+ render: () => (
62
+ <Tab.Pane>
63
+ <h2>Governance</h2>
64
+ <Callout>
65
+ <p>
66
+ Etiam id velit feugiat, scelerisque velit a, scelerisque
67
+ nunc. Vestibulum ante ipsum primis in faucibus orci luctus
68
+ et ultrices posuere cubilia curae; Integer dignissim risus
69
+ non nibh scelerisque, sit amet tincidunt sapien rutrum.
70
+ </p>
71
+ </Callout>
72
+
73
+ <h3>Opportunities and benefits of climate action</h3>
74
+ <p>{result?.Describe}</p>
75
+
76
+ <Accordion>
77
+ <AccordionTitle
78
+ active={activeAccIndex === 0}
79
+ index={0}
80
+ onClick={handleAccClick}
81
+ >
82
+ <Icon
83
+ name={
84
+ activeAccIndex
85
+ ? 'ri-arrow-down-s-line'
86
+ : 'ri-arrow-up-s-line'
87
+ }
88
+ />
89
+ Further details and evidence
90
+ </AccordionTitle>
91
+ <AccordionContent active={activeAccIndex === 0}>
92
+ <p>{result?.Provide}</p>
93
+ </AccordionContent>
94
+ </Accordion>
95
+ </Tab.Pane>
96
+ ),
97
+ },
98
+ {
99
+ menuItem: 'Assessment',
100
+ render: () => (
101
+ <Tab.Pane>
102
+ <h2>Assessment</h2>
103
+ <p>
104
+ Etiam accumsan urna a mauris dapibus, nec aliquet nunc
105
+ convallis. Phasellus eget justo et libero ultrices posuere.
106
+ Cras euismod, arcu nec congue convallis, ipsum nunc cursus
107
+ nibh, vel condimentum sapien orci non libero. Integer
108
+ ullamcorper felis sit amet felis placerat, eu convallis
109
+ lorem iaculis.
110
+ </p>
111
+ </Tab.Pane>
112
+ ),
113
+ },
114
+ {
115
+ menuItem: 'Planning',
116
+ render: () => (
117
+ <Tab.Pane>
118
+ <h2>Planning</h2>
119
+ <p>
120
+ Suspendisse potenti. Vivamus non arcu tincidunt, congue
121
+ massa at, porttitor velit. Curabitur lacinia nisl ut turpis
122
+ convallis, at dictum urna aliquet. Nullam non urna eget
123
+ felis interdum feugiat. Morbi vel neque elit. Nullam a
124
+ luctus leo. Integer maximus sapien in bibendum scelerisque.
125
+ </p>
126
+ </Tab.Pane>
127
+ ),
128
+ },
129
+ {
130
+ menuItem: 'Action Pages',
131
+ render: () => (
132
+ <Tab.Pane>
133
+ <h2>Action PAges</h2>
134
+ <p>
135
+ Phasellus ac eros at urna condimentum lacinia. Pellentesque
136
+ habitant morbi tristique senectus et netus et malesuada
137
+ fames ac turpis egestas. Sed bibendum, sapien a venenatis
138
+ fermentum, mauris augue cursus turpis, vitae elementum massa
139
+ orci sit amet massa. In hac habitasse platea dictumst.
140
+ </p>
141
+ </Tab.Pane>
142
+ ),
143
+ },
144
+ ]}
145
+ />
146
+ </div>
147
+ </>
148
+ );
149
+ }
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom/extend-expect';
3
+ import { render, fireEvent } from '@testing-library/react';
4
+ import MissionSignatoriesProfileView from './MissionSignatoriesProfileView';
5
+
6
+ describe('MissionSignatoriesProfileView', () => {
7
+ it('should render the component with data', () => {
8
+ const data = {
9
+ _v_results: [
10
+ {
11
+ Signatory: 'Test Signatory',
12
+ Describe: 'Test description',
13
+ Provide: 'Test evidence',
14
+ },
15
+ ],
16
+ };
17
+
18
+ const { getByText } = render(<MissionSignatoriesProfileView data={data} />);
19
+
20
+ expect(getByText('Test Signatory')).toBeInTheDocument();
21
+ expect(getByText('Governance')).toBeInTheDocument();
22
+ expect(getByText('Assessment')).toBeInTheDocument();
23
+ expect(getByText('Planning')).toBeInTheDocument();
24
+ expect(getByText('Action Pages')).toBeInTheDocument();
25
+ });
26
+
27
+ it('should render tabs and switch content', () => {
28
+ const data = {
29
+ _v_results: [
30
+ {
31
+ Signatory: 'Test Signatory',
32
+ },
33
+ ],
34
+ };
35
+
36
+ const { getByText } = render(<MissionSignatoriesProfileView data={data} />);
37
+ const governanceTab = getByText('Governance');
38
+ fireEvent.click(governanceTab);
39
+ expect(
40
+ getByText('Opportunities and benefits of climate action'),
41
+ ).toBeInTheDocument();
42
+ });
43
+ });
@@ -0,0 +1,25 @@
1
+ import MissionSignatoriesProfileEdit from './MissionSignatoriesProfileEdit';
2
+ import MissionSignatoriesProfileView from './MissionSignatoriesProfileView';
3
+ import { blockAvailableInMission } from '@eeacms/volto-cca-policy/utils';
4
+ import worldSVG from '@plone/volto/icons/world.svg';
5
+
6
+ export default function installMissionSignatoriesProfileBlock(config) {
7
+ config.blocks.blocksConfig.missionSignatoriesProfile = {
8
+ id: 'missionSignatoriesProfile',
9
+ title: 'Mission Signatories Profile',
10
+ icon: worldSVG,
11
+ group: 'site',
12
+ edit: MissionSignatoriesProfileEdit,
13
+ view: MissionSignatoriesProfileView,
14
+ sidebarTab: 1,
15
+ security: {
16
+ addPermission: [],
17
+ view: [],
18
+ },
19
+ restricted: ({ properties, block }) => {
20
+ return blockAvailableInMission(properties, block);
21
+ },
22
+ };
23
+
24
+ return config;
25
+ }
@@ -0,0 +1,18 @@
1
+ export default {
2
+ title: 'Mission Signatories Profile',
3
+ fieldsets: [
4
+ {
5
+ id: 'default',
6
+ title: 'Default',
7
+ fields: ['profile_id'],
8
+ },
9
+ ],
10
+ properties: {
11
+ profile_id: {
12
+ title: 'Profile ID',
13
+ type: 'number',
14
+ default: '54403',
15
+ },
16
+ },
17
+ required: [],
18
+ };
@@ -22,6 +22,7 @@ import installTabsBlock from './TabsBlock';
22
22
  import installRedirectBlock from './RedirectBlock';
23
23
  import installContentLinks from './ContentLinks';
24
24
  import installASTNavigation from './ASTNavigation';
25
+ import installMissionSignatoriesProfileBlock from './MissionSignatoriesProfile';
25
26
 
26
27
  export default function installBlocks(config) {
27
28
  config.blocks.blocksConfig.title.restricted = false;
@@ -53,5 +54,6 @@ export default function installBlocks(config) {
53
54
  installRedirectBlock,
54
55
  installContentLinks,
55
56
  installASTNavigation,
57
+ installMissionSignatoriesProfileBlock,
56
58
  )(config);
57
59
  }
package/src/utils.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { flattenToAppURL } from '@plone/volto/helpers';
2
2
 
3
3
  export const blockAvailableInMission = (properties, block) => {
4
- const missionBlocks = ['mkh_map', 'rastBlock'];
4
+ const missionBlocks = ['mkh_map', 'rastBlock', 'missionSignatoriesProfile'];
5
5
  const id = properties?.['@id'];
6
6
 
7
7
  if (!id) {
@@ -35,6 +35,13 @@ body.view-viewview.contenttype-subsite.section-mission
35
35
  }
36
36
 
37
37
  body.subsite-mkh {
38
+ --text-color-secondary: @green-5;
39
+ --border-color-secondary: @green-5;
40
+
41
+ .column > .ui.segment {
42
+ background-color: transparent;
43
+ }
44
+
38
45
  &.subsite-root {
39
46
  .content-area {
40
47
  padding: 0 !important;
@@ -86,6 +93,15 @@ body.subsite-mkh {
86
93
  background: @green-1;
87
94
  }
88
95
 
96
+ .ui.statistics:not(.inverted) .ui.statistic .slate.secondary {
97
+ color: @green-5;
98
+ }
99
+
100
+ .ui.secondary.pointing.menu .active.item {
101
+ color: @green-5;
102
+ border-color: @green-5;
103
+ }
104
+
89
105
  #mega-menu {
90
106
  .ui.accordion .title i,
91
107
  .ui.accordion button.title i {