@eeacms/volto-clms-theme 1.1.271 → 1.1.273

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,11 +4,18 @@ 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.271](https://github.com/eea/volto-clms-theme/compare/1.1.270...1.1.271) - 28 January 2026
7
+ ### [1.1.273](https://github.com/eea/volto-clms-theme/compare/1.1.272...1.1.273) - 10 February 2026
8
+
9
+ #### :hammer_and_wrench: Others
10
+
11
+ - Refs #297235 - Update CLMSMeetingView volto blocks filtering (exclude eea.meeting fields). [GhitaB - [`f9dd8b5`](https://github.com/eea/volto-clms-theme/commit/f9dd8b5d3e9511fdac8436436c2d1c09ca6043b3)]
12
+ ### [1.1.272](https://github.com/eea/volto-clms-theme/compare/1.1.271...1.1.272) - 2 February 2026
8
13
 
9
14
  #### :hammer_and_wrench: Others
10
15
 
11
- - Refs #297096 - Remove X icon in footer. [GhitaB - [`62107cb`](https://github.com/eea/volto-clms-theme/commit/62107cb5c676967af95c1c0cb63b3b22218709a5)]
16
+ - Refs #297235 - Include Blocks content in CLMSMeetingView (Event) when volto.blocks behavior is enabled and there is content. [GhitaB - [`68bbf87`](https://github.com/eea/volto-clms-theme/commit/68bbf876b97c859acfd0d4a7883bcfef49b73c15)]
17
+ ### [1.1.271](https://github.com/eea/volto-clms-theme/compare/1.1.270...1.1.271) - 28 January 2026
18
+
12
19
  ### [1.1.270](https://github.com/eea/volto-clms-theme/compare/1.1.269...1.1.270) - 28 January 2026
13
20
 
14
21
  #### :bug: Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-clms-theme",
3
- "version": "1.1.271",
3
+ "version": "1.1.273",
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",
@@ -27,9 +27,40 @@ import CclCard from '../CclCard/CclCard';
27
27
  import { CLMSRelatedItems } from '../CLMSRelatedItems';
28
28
  import { LightGalleryListing } from './CclLightGallery';
29
29
  import { RegisterButtonReasons } from './utils';
30
+ import RenderBlocks from '@plone/volto/components/theme/View/RenderBlocks';
30
31
 
31
32
  import jwtDecode from 'jwt-decode';
32
33
 
34
+ const MEETING_FIELD_BLOCK_TYPES = new Set(['title', 'description']);
35
+
36
+ const MEETING_FIELD_IDS = new Set([
37
+ 'description',
38
+ 'text',
39
+ 'meeting_type',
40
+ 'allow_register',
41
+ 'allow_register_above_max',
42
+ 'allow_register_start',
43
+ 'allow_register_end',
44
+ 'restrict_content_access',
45
+ 'auto_approve',
46
+ 'max_participants',
47
+ 'hosting_organisation',
48
+ 'contact_name',
49
+ 'contact_email',
50
+ 'location',
51
+ 'allow_anonymous_registration',
52
+ 'start',
53
+ 'end',
54
+ 'whole_day',
55
+ 'open_end',
56
+ 'image',
57
+ 'image_caption',
58
+ 'datasets',
59
+ 'products',
60
+ 'changeNote',
61
+ 'meeting_level',
62
+ ]);
63
+
33
64
  export const CLMSMeetingView = (props) => {
34
65
  const { content, intl } = props;
35
66
  const dispatch = useDispatch();
@@ -258,6 +289,15 @@ export const CLMSMeetingView = (props) => {
258
289
  : iTitleIcons.leftPosition;
259
290
  }
260
291
 
292
+ const blocks = content?.blocks || {};
293
+ const blocksLayout = content?.blocks_layout || {};
294
+ const isMeetingFieldBlock = (block) => {
295
+ if (!block) return false;
296
+ if (MEETING_FIELD_BLOCK_TYPES.has(block['@type'])) return true;
297
+ if (block['@type'] !== 'metadata') return false;
298
+ return MEETING_FIELD_IDS.has(block?.data?.id);
299
+ };
300
+
261
301
  return (
262
302
  <div className="ccl-container">
263
303
  <h1 className="page-title">{content.title}</h1>
@@ -267,12 +307,7 @@ export const CLMSMeetingView = (props) => {
267
307
  (content.allow_register && content.subscribers_link)) && (
268
308
  <Segment.Group compact horizontal>
269
309
  {content.allow_anonymous_registration && (
270
- <Segment
271
- className={'event-segment'}
272
- padded={'very'}
273
- color={'olive'}
274
- circular
275
- >
310
+ <Segment className={'event-segment'} color={'olive'} circular>
276
311
  <strong>
277
312
  <FormattedMessage
278
313
  id="Anonymous registration form"
@@ -329,12 +364,7 @@ export const CLMSMeetingView = (props) => {
329
364
  </Segment>
330
365
  )}
331
366
  {content.allow_register && content.subscribers_link && (
332
- <Segment
333
- className={'event-segment'}
334
- padded={'very'}
335
- color={'olive'}
336
- circular
337
- >
367
+ <Segment className={'event-segment'} color={'olive'} circular>
338
368
  <strong>
339
369
  <FormattedMessage
340
370
  id="Meeting register information"
@@ -380,7 +410,6 @@ export const CLMSMeetingView = (props) => {
380
410
  <Segment
381
411
  className={'event-segment'}
382
412
  compact
383
- padded={'small'}
384
413
  color={'olive'}
385
414
  floated="right"
386
415
  style={{ marginRight: 0 }}
@@ -537,6 +566,20 @@ export const CLMSMeetingView = (props) => {
537
566
  </figure>
538
567
  )}
539
568
  <StringToHTML string={content.text?.data || ''} />
569
+ {Object.keys(blocks).length > 0 && (
570
+ <RenderBlocks
571
+ {...props}
572
+ content={{
573
+ ...content,
574
+ blocks_layout: {
575
+ ...blocksLayout,
576
+ items: (blocksLayout.items || []).filter(
577
+ (blockId) => !isMeetingFieldBlock(blocks[blockId]),
578
+ ),
579
+ },
580
+ }}
581
+ />
582
+ )}
540
583
  <LightGalleryListing />
541
584
 
542
585
  {files.length > 0 && (
@@ -19,8 +19,10 @@ export const RegisterButtonReasons = (content) => {
19
19
  }
20
20
  return results.length > 0 ? (
21
21
  <ul>
22
- {results.map((result) => (
23
- <li style={{ color: 'red' }}>{result}</li>
22
+ {results.map((result, index) => (
23
+ <li key={`${result}-${index}`} style={{ color: 'red' }}>
24
+ {result}
25
+ </li>
24
26
  ))}
25
27
  </ul>
26
28
  ) : (