design-comuni-plone-theme 11.22.0 → 11.23.0
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/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +30 -0
- package/RELEASE.md +15 -0
- package/locales/de/LC_MESSAGES/volto.po +2 -0
- package/locales/en/LC_MESSAGES/volto.po +2 -0
- package/locales/es/LC_MESSAGES/volto.po +2 -0
- package/locales/fr/LC_MESSAGES/volto.po +2 -0
- package/locales/it/LC_MESSAGES/volto.po +2 -0
- package/locales/volto.pot +3 -1
- package/package.json +1 -1
- package/publiccode.yml +2 -2
- package/src/components/ItaliaTheme/AppExtras/GenericAppExtras.jsx +1 -2
- package/src/components/ItaliaTheme/Blocks/Accordion/Edit.jsx +44 -0
- package/src/components/ItaliaTheme/Blocks/Accordion/View.jsx +23 -0
- package/src/components/ItaliaTheme/Blocks/BandiSearch/Body.jsx +4 -0
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/DateFilter.jsx +3 -2
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/TextFilter.jsx +1 -0
- package/src/components/ItaliaTheme/Blocks/EventSearch/Body.jsx +9 -0
- package/src/components/ItaliaTheme/Blocks/SearchSections/Body.jsx +1 -0
- package/src/components/ItaliaTheme/Blocks/UOSearch/Body.jsx +1 -0
- package/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx +1 -0
- package/src/components/ItaliaTheme/CustomerSatisfaction/Steps/CommentsStep.jsx +1 -0
- package/src/components/ItaliaTheme/LoginAgid/LoginAgid.jsx +2 -5
- package/src/components/ItaliaTheme/Search/Search.jsx +2 -3
- package/src/components/ItaliaTheme/Unauthorized/Unauthorized.jsx +2 -5
- package/src/components/ItaliaTheme/View/Commons/Gallery.jsx +35 -28
- package/src/config/Blocks/ListingOptions/cardWithSlideUpTextTemplate.js +6 -1
- package/src/customizations/volto/helpers/BodyClass/BodyClass.jsx +78 -0
- package/src/theme/ItaliaTheme/Blocks/_accordion.scss +12 -0
- package/src/theme/ItaliaTheme/Blocks/_form.scss +38 -32
- package/src/theme/ItaliaTheme/Views/_common.scss +27 -0
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [11.23.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.22.1...v11.23.0) (2024-09-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* title and description for block accordion - v11 ([#765](https://github.com/RedTurtle/design-comuni-plone-theme/issues/765)) ([93e4926](https://github.com/RedTurtle/design-comuni-plone-theme/commit/93e49267e1d896ea08b99ad1860b479f4b7bcd89))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* added autocomplete attribute in search and customer satisfaction fields ([#768](https://github.com/RedTurtle/design-comuni-plone-theme/issues/768)) ([8de28b9](https://github.com/RedTurtle/design-comuni-plone-theme/commit/8de28b9325ffba67e47431d948f035556e100649))
|
|
14
|
+
* added block id to date ids to ensure unique field ids ([#771](https://github.com/RedTurtle/design-comuni-plone-theme/issues/771)) ([4c9f6c1](https://github.com/RedTurtle/design-comuni-plone-theme/commit/4c9f6c1cead8f6185effd7d287823bb6d8cdaa0c))
|
|
15
|
+
* added filter for eventi rassegne in Event Search ([#774](https://github.com/RedTurtle/design-comuni-plone-theme/issues/774)) ([2f6c69c](https://github.com/RedTurtle/design-comuni-plone-theme/commit/2f6c69c20326568350d32d540a75da28bf017b70))
|
|
16
|
+
* added max-width attribute to row to fit elements within page when zoomed in ([#773](https://github.com/RedTurtle/design-comuni-plone-theme/issues/773)) ([92ab586](https://github.com/RedTurtle/design-comuni-plone-theme/commit/92ab5867ee677280e326b9af2af14decbc163cc8))
|
|
17
|
+
* added submit type attribute to search submit buttons ([#769](https://github.com/RedTurtle/design-comuni-plone-theme/issues/769)) ([bf5a9a6](https://github.com/RedTurtle/design-comuni-plone-theme/commit/bf5a9a6f03bbb27322816743b4b8d1e2cbcafdb1))
|
|
18
|
+
* removed id_lighthouse field in cardWithSlideUpTextTemplate ([#762](https://github.com/RedTurtle/design-comuni-plone-theme/issues/762)) ([aa4fe58](https://github.com/RedTurtle/design-comuni-plone-theme/commit/aa4fe58d6db372a2848efe429e78fceb1203f54d))
|
|
19
|
+
* slider styles + arrows in ct gallery ([#764](https://github.com/RedTurtle/design-comuni-plone-theme/issues/764)) ([c1bbdb9](https://github.com/RedTurtle/design-comuni-plone-theme/commit/c1bbdb998a145c608e0fc8da5d23223ddaa0ac12))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Documentation
|
|
23
|
+
|
|
24
|
+
* updated publiccode and release log ([f43b737](https://github.com/RedTurtle/design-comuni-plone-theme/commit/f43b737e4ef0438182f371f46d30002d1459d21d))
|
|
25
|
+
|
|
26
|
+
## [11.22.1](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.22.0...v11.22.1) (2024-09-09)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* removed RemoveBodyClass component in favor of a customized BodyClass component ([61062d8](https://github.com/RedTurtle/design-comuni-plone-theme/commit/61062d84041f52182c2d04716b0411673a98e1f9))
|
|
32
|
+
|
|
3
33
|
## [11.22.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.21.1...v11.22.0) (2024-09-05)
|
|
4
34
|
|
|
5
35
|
|
package/RELEASE.md
CHANGED
|
@@ -41,6 +41,21 @@
|
|
|
41
41
|
- ...
|
|
42
42
|
-->
|
|
43
43
|
|
|
44
|
+
## Versione 11.23.0 (19/09/2024)
|
|
45
|
+
|
|
46
|
+
### Migliorie
|
|
47
|
+
|
|
48
|
+
- Migliorato il layout della galleria immagini nei CT.
|
|
49
|
+
- Nel blocco Cerca Evento, nel caso di un Evento Rassegna, tra i risultati vengono ora visualizzati solo gli appuntamenti della rassegna e non l'evento contenitore.
|
|
50
|
+
|
|
51
|
+
### Novità
|
|
52
|
+
|
|
53
|
+
- Aggiunto campo per l'inserimento del titolo e della descrizione nel blocco Accordion.
|
|
54
|
+
|
|
55
|
+
### Fix
|
|
56
|
+
|
|
57
|
+
- Rimosso il campo "ID lighthouse" dal blocco elenco con variazione Card con Testo Animato perchè entra in contrasto con asseveratore. Pianificato evento per ripristinarlo.
|
|
58
|
+
|
|
44
59
|
## Versione 11.22.0 (05/09/2024)
|
|
45
60
|
|
|
46
61
|
### Migliorie
|
|
@@ -191,6 +191,7 @@ msgstr ""
|
|
|
191
191
|
msgid "Description"
|
|
192
192
|
msgstr ""
|
|
193
193
|
|
|
194
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
194
195
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
195
196
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
196
197
|
# defaultMessage: Descrizione...
|
|
@@ -595,6 +596,7 @@ msgstr ""
|
|
|
595
596
|
msgid "Thank you."
|
|
596
597
|
msgstr ""
|
|
597
598
|
|
|
599
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
598
600
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
599
601
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
600
602
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
|
@@ -176,6 +176,7 @@ msgstr "Between {start} and {end}"
|
|
|
176
176
|
msgid "Description"
|
|
177
177
|
msgstr ""
|
|
178
178
|
|
|
179
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
179
180
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
180
181
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
181
182
|
# defaultMessage: Descrizione...
|
|
@@ -580,6 +581,7 @@ msgstr ""
|
|
|
580
581
|
msgid "Thank you."
|
|
581
582
|
msgstr ""
|
|
582
583
|
|
|
584
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
583
585
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
584
586
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
585
587
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
|
@@ -185,6 +185,7 @@ msgstr ""
|
|
|
185
185
|
msgid "Description"
|
|
186
186
|
msgstr "Descripción..."
|
|
187
187
|
|
|
188
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
188
189
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
189
190
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
190
191
|
# defaultMessage: Descrizione...
|
|
@@ -589,6 +590,7 @@ msgstr "Texto..."
|
|
|
589
590
|
msgid "Thank you."
|
|
590
591
|
msgstr "Gracias."
|
|
591
592
|
|
|
593
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
592
594
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
593
595
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
594
596
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
|
@@ -193,6 +193,7 @@ msgstr ""
|
|
|
193
193
|
msgid "Description"
|
|
194
194
|
msgstr ""
|
|
195
195
|
|
|
196
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
196
197
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
197
198
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
198
199
|
# defaultMessage: Descrizione...
|
|
@@ -597,6 +598,7 @@ msgstr ""
|
|
|
597
598
|
msgid "Thank you."
|
|
598
599
|
msgstr "Merci."
|
|
599
600
|
|
|
601
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
600
602
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
601
603
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
602
604
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
|
@@ -176,6 +176,7 @@ msgstr "Dal {start} al {end}"
|
|
|
176
176
|
msgid "Description"
|
|
177
177
|
msgstr "Descrizione"
|
|
178
178
|
|
|
179
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
179
180
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
180
181
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
181
182
|
# defaultMessage: Descrizione...
|
|
@@ -580,6 +581,7 @@ msgstr "Testo..."
|
|
|
580
581
|
msgid "Thank you."
|
|
581
582
|
msgstr "Grazie."
|
|
582
583
|
|
|
584
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
583
585
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
584
586
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
585
587
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
package/locales/volto.pot
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: Plone\n"
|
|
4
|
-
"POT-Creation-Date: 2024-09-
|
|
4
|
+
"POT-Creation-Date: 2024-09-10T12:46:37.907Z\n"
|
|
5
5
|
"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
6
6
|
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
7
7
|
"MIME-Version: 1.0\n"
|
|
@@ -178,6 +178,7 @@ msgstr ""
|
|
|
178
178
|
msgid "Description"
|
|
179
179
|
msgstr ""
|
|
180
180
|
|
|
181
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
181
182
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
182
183
|
#: components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock
|
|
183
184
|
# defaultMessage: Descrizione...
|
|
@@ -582,6 +583,7 @@ msgstr ""
|
|
|
582
583
|
msgid "Thank you."
|
|
583
584
|
msgstr ""
|
|
584
585
|
|
|
586
|
+
#: components/ItaliaTheme/Blocks/Accordion/Edit
|
|
585
587
|
#: components/ItaliaTheme/Blocks/ContactsBlock/Edit
|
|
586
588
|
#: components/ItaliaTheme/Blocks/IconBlocks/Edit
|
|
587
589
|
#: components/ItaliaTheme/Blocks/VideoGallery/Edit
|
package/package.json
CHANGED
package/publiccode.yml
CHANGED
|
@@ -227,9 +227,9 @@ maintenance:
|
|
|
227
227
|
name: io-Comune - Il sito AgID per Comuni ed Enti Pubblici
|
|
228
228
|
platforms:
|
|
229
229
|
- web
|
|
230
|
-
releaseDate: '2024-09-
|
|
230
|
+
releaseDate: '2024-09-19'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 11.
|
|
232
|
+
softwareVersion: 11.23.0
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import { useSelector } from 'react-redux';
|
|
3
3
|
import { useLocation } from 'react-router-dom';
|
|
4
4
|
import { BodyClass } from '@plone/volto/helpers';
|
|
5
|
-
import { RemoveBodyClass } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
6
5
|
import ScrollToTop from 'design-comuni-plone-theme/components/ItaliaTheme/ScrollToTop/ScrollToTop';
|
|
7
6
|
import { SubsiteLoader } from 'volto-subsites';
|
|
8
7
|
import config from '@plone/volto/registry';
|
|
@@ -28,7 +27,7 @@ const GenericAppExtras = (props) => {
|
|
|
28
27
|
{isPublicUI && (
|
|
29
28
|
<>
|
|
30
29
|
<BodyClass className="public-ui" />
|
|
31
|
-
<
|
|
30
|
+
<BodyClass className="cms-ui" remove={true} />
|
|
32
31
|
</>
|
|
33
32
|
)}
|
|
34
33
|
<ScrollToTop />
|
|
@@ -18,11 +18,21 @@ import Sidebar from './Sidebar.jsx';
|
|
|
18
18
|
|
|
19
19
|
import { defineMessages } from 'react-intl';
|
|
20
20
|
|
|
21
|
+
import { TextEditorWidget } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
22
|
+
|
|
21
23
|
const messages = defineMessages({
|
|
22
24
|
addItem: {
|
|
23
25
|
id: 'Add accordion item',
|
|
24
26
|
defaultMessage: 'Aggiungi elemento',
|
|
25
27
|
},
|
|
28
|
+
title: {
|
|
29
|
+
id: 'Title',
|
|
30
|
+
defaultMessage: 'Titolo...',
|
|
31
|
+
},
|
|
32
|
+
description: {
|
|
33
|
+
id: 'Description placeholder',
|
|
34
|
+
defaultMessage: 'Descrizione...',
|
|
35
|
+
},
|
|
26
36
|
});
|
|
27
37
|
/**
|
|
28
38
|
* Edit Accordion block class.
|
|
@@ -45,6 +55,40 @@ class Edit extends SubblocksEdit {
|
|
|
45
55
|
<Container className="px-md-4">
|
|
46
56
|
<Card className="card-bg rounded" noWrapper={false} space tag="div">
|
|
47
57
|
<CardBody tag="div">
|
|
58
|
+
<TextEditorWidget
|
|
59
|
+
data={this.props.data}
|
|
60
|
+
fieldName="title"
|
|
61
|
+
selected={this.state.selectedField === 'title'}
|
|
62
|
+
block={this.props.block}
|
|
63
|
+
onChangeBlock={(data) => {
|
|
64
|
+
this.props.onChangeBlock(this.props.block, {
|
|
65
|
+
...data,
|
|
66
|
+
});
|
|
67
|
+
}}
|
|
68
|
+
placeholder={this.props.intl.formatMessage(messages.title)}
|
|
69
|
+
showToolbar={false}
|
|
70
|
+
onSelectBlock={() => {}}
|
|
71
|
+
onAddBlock={() => {
|
|
72
|
+
this.setState({ selectedField: 'description' });
|
|
73
|
+
}}
|
|
74
|
+
/>
|
|
75
|
+
<TextEditorWidget
|
|
76
|
+
data={this.props.data}
|
|
77
|
+
fieldName="description"
|
|
78
|
+
selected={this.state.selectedField === 'description'}
|
|
79
|
+
block={this.props.block}
|
|
80
|
+
onChangeBlock={(data) =>
|
|
81
|
+
this.props.onChangeBlock(this.props.block, {
|
|
82
|
+
...data,
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
placeholder={this.props.intl.formatMessage(
|
|
86
|
+
messages.description,
|
|
87
|
+
)}
|
|
88
|
+
showToolbar={true}
|
|
89
|
+
onSelectBlock={() => {}}
|
|
90
|
+
onAddBlock={() => {}}
|
|
91
|
+
/>
|
|
48
92
|
<SubblocksWrapper node={this.node}>
|
|
49
93
|
{this.state.subblocks.map((subblock, subindex) => (
|
|
50
94
|
<div className="accordion-item" key={subblock.id}>
|
|
@@ -7,6 +7,9 @@ import React, { useState } from 'react';
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import ViewBlock from './Block/ViewBlock';
|
|
9
9
|
import { Container, Card, CardBody } from 'design-react-kit';
|
|
10
|
+
import redraft from 'redraft';
|
|
11
|
+
import config from '@plone/volto/registry';
|
|
12
|
+
import { checkRedraftHasContent } from 'design-comuni-plone-theme/helpers';
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* View Accordion block class.
|
|
@@ -25,6 +28,26 @@ const AccordionView = ({ data, block }) => {
|
|
|
25
28
|
<div className="full-width section section-muted section-inset-shadow py-5">
|
|
26
29
|
<Container className="px-md-4">
|
|
27
30
|
<Card className="card-bg rounded" noWrapper={false} space tag="div">
|
|
31
|
+
<div className="block-header">
|
|
32
|
+
{checkRedraftHasContent(data.title) && (
|
|
33
|
+
<div className="title">
|
|
34
|
+
{redraft(
|
|
35
|
+
data.title,
|
|
36
|
+
config.settings.richtextViewSettings.ToHTMLRenderers,
|
|
37
|
+
config.settings.richtextViewSettings.ToHTMLOptions,
|
|
38
|
+
)}
|
|
39
|
+
</div>
|
|
40
|
+
)}
|
|
41
|
+
{checkRedraftHasContent(data.description) && (
|
|
42
|
+
<div className="description">
|
|
43
|
+
{redraft(
|
|
44
|
+
data.description,
|
|
45
|
+
config.settings.richtextViewSettings.ToHTMLRenderers,
|
|
46
|
+
config.settings.richtextViewSettings.ToHTMLOptions,
|
|
47
|
+
)}
|
|
48
|
+
</div>
|
|
49
|
+
)}
|
|
50
|
+
</div>
|
|
28
51
|
<CardBody tag="div">
|
|
29
52
|
{data.subblocks.map((subblock, index) => (
|
|
30
53
|
<ViewBlock
|
|
@@ -167,6 +167,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
167
167
|
<>
|
|
168
168
|
{React.createElement(filterOne.widget.component, {
|
|
169
169
|
...filterOne.widget?.props,
|
|
170
|
+
blockID: id,
|
|
170
171
|
id: 'filterOne',
|
|
171
172
|
onChange: (filter, value) => {
|
|
172
173
|
dispatchFilter({
|
|
@@ -180,6 +181,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
180
181
|
{filterTwo &&
|
|
181
182
|
React.createElement(filterTwo.widget?.component, {
|
|
182
183
|
...filterTwo.widget?.props,
|
|
184
|
+
blockID: id,
|
|
183
185
|
id: 'filterTwo',
|
|
184
186
|
onChange: (filter, value) =>
|
|
185
187
|
dispatchFilter({
|
|
@@ -190,6 +192,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
190
192
|
{filterThree &&
|
|
191
193
|
React.createElement(filterThree.widget?.component, {
|
|
192
194
|
...filterThree.widget?.props,
|
|
195
|
+
blockID: id,
|
|
193
196
|
id: 'filterThree',
|
|
194
197
|
onChange: (filter, value) =>
|
|
195
198
|
dispatchFilter({
|
|
@@ -203,6 +206,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
203
206
|
icon={false}
|
|
204
207
|
tag="button"
|
|
205
208
|
className="my-2 my-lg-1"
|
|
209
|
+
type="submit"
|
|
206
210
|
>
|
|
207
211
|
{intl.formatMessage(messages.find)}
|
|
208
212
|
</Button>
|
|
@@ -188,6 +188,7 @@ const DateFilter = (props) => {
|
|
|
188
188
|
endLabel,
|
|
189
189
|
defaultStart,
|
|
190
190
|
defaultEnd,
|
|
191
|
+
blockID,
|
|
191
192
|
...rest
|
|
192
193
|
} = props;
|
|
193
194
|
const { DateRangePicker } = reactDates;
|
|
@@ -230,12 +231,12 @@ const DateFilter = (props) => {
|
|
|
230
231
|
<DateRangePicker
|
|
231
232
|
{...rest}
|
|
232
233
|
startDate={value?.startDate || defaultStart}
|
|
233
|
-
startDateId=
|
|
234
|
+
startDateId={`start-date-filter-${blockID}`}
|
|
234
235
|
startDatePlaceholderText={
|
|
235
236
|
startLabel ?? intl.formatMessage(messages.eventSearchStartDate)
|
|
236
237
|
}
|
|
237
238
|
endDate={value?.endDate || defaultEnd}
|
|
238
|
-
endDateId=
|
|
239
|
+
endDateId={`end-date-filter-${blockID}`}
|
|
239
240
|
endDatePlaceholderText={
|
|
240
241
|
endLabel ?? intl.formatMessage(messages.eventSearchEndDate)
|
|
241
242
|
}
|
|
@@ -75,6 +75,11 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
75
75
|
o: 'plone.app.querystring.operation.selection.any',
|
|
76
76
|
v: ['Event'],
|
|
77
77
|
},
|
|
78
|
+
{
|
|
79
|
+
i: 'rassegna',
|
|
80
|
+
o: 'plone.app.querystring.operation.boolean.isFalse',
|
|
81
|
+
v: '',
|
|
82
|
+
},
|
|
78
83
|
];
|
|
79
84
|
|
|
80
85
|
[filterOne, filterTwo, filterThree].forEach((f) => {
|
|
@@ -177,6 +182,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
177
182
|
<>
|
|
178
183
|
{React.createElement(filterOne.widget.component, {
|
|
179
184
|
...filterOne.widget?.props,
|
|
185
|
+
blockID: id,
|
|
180
186
|
id: 'filterOne',
|
|
181
187
|
onChange: (filter, value) => {
|
|
182
188
|
dispatchFilter({
|
|
@@ -190,6 +196,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
190
196
|
{filterTwo &&
|
|
191
197
|
React.createElement(filterTwo.widget?.component, {
|
|
192
198
|
...filterTwo.widget?.props,
|
|
199
|
+
blockID: id,
|
|
193
200
|
id: 'filterTwo',
|
|
194
201
|
onChange: (filter, value) =>
|
|
195
202
|
dispatchFilter({
|
|
@@ -200,6 +207,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
200
207
|
{filterThree &&
|
|
201
208
|
React.createElement(filterThree.widget?.component, {
|
|
202
209
|
...filterThree.widget?.props,
|
|
210
|
+
blockID: id,
|
|
203
211
|
id: 'filterThree',
|
|
204
212
|
onChange: (filter, value) =>
|
|
205
213
|
dispatchFilter({
|
|
@@ -213,6 +221,7 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock }) => {
|
|
|
213
221
|
icon={false}
|
|
214
222
|
tag="button"
|
|
215
223
|
className="my-2 my-lg-1"
|
|
224
|
+
type="submit"
|
|
216
225
|
>
|
|
217
226
|
{intl.formatMessage(messages.find)}
|
|
218
227
|
</Button>
|
|
@@ -11,10 +11,7 @@ import { defineMessages, useIntl } from 'react-intl';
|
|
|
11
11
|
import { withRouter } from 'react-router-dom';
|
|
12
12
|
import { Login } from '@plone/volto/components';
|
|
13
13
|
import { Row, Col, Container } from 'design-react-kit';
|
|
14
|
-
import {
|
|
15
|
-
RemoveBodyClass,
|
|
16
|
-
LoginAgidButtons,
|
|
17
|
-
} from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
14
|
+
import { LoginAgidButtons } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
18
15
|
import { Button } from 'design-react-kit';
|
|
19
16
|
import { useLocation } from 'react-router-dom';
|
|
20
17
|
import { getBaseUrl } from '@plone/volto/helpers';
|
|
@@ -72,7 +69,7 @@ const LoginAgid = (props) => {
|
|
|
72
69
|
<div id="page-login">
|
|
73
70
|
<Helmet title={intl.formatMessage(messages.login)} />
|
|
74
71
|
<BodyClass className="public-ui" />
|
|
75
|
-
<
|
|
72
|
+
<BodyClass className="cms-ui" remove={true} />
|
|
76
73
|
<Container className="view-wrapper py-5">
|
|
77
74
|
<Row className="view-container">
|
|
78
75
|
<Col xs={12} lg={{ size: 10, offset: 1 }}>
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import { Skiplink, SkiplinkItem } from 'design-react-kit';
|
|
25
25
|
import { useLocation, useHistory } from 'react-router-dom';
|
|
26
26
|
|
|
27
|
-
import { Helmet, flattenToAppURL } from '@plone/volto/helpers';
|
|
27
|
+
import { Helmet, flattenToAppURL, BodyClass } from '@plone/volto/helpers';
|
|
28
28
|
import { resetSubsite } from 'volto-subsites';
|
|
29
29
|
|
|
30
30
|
import {
|
|
@@ -33,7 +33,6 @@ import {
|
|
|
33
33
|
SearchTopics,
|
|
34
34
|
SearchCTs,
|
|
35
35
|
Icon,
|
|
36
|
-
RemoveBodyClass,
|
|
37
36
|
SearchResultItem,
|
|
38
37
|
} from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
39
38
|
import {
|
|
@@ -727,7 +726,7 @@ const Search = () => {
|
|
|
727
726
|
</Container>
|
|
728
727
|
</div>
|
|
729
728
|
{/*force remove body class for subsite search pages*/}
|
|
730
|
-
<
|
|
729
|
+
<BodyClass className="cms-ui" remove={true} />
|
|
731
730
|
</>
|
|
732
731
|
);
|
|
733
732
|
};
|
|
@@ -13,10 +13,7 @@ import { BodyClass } from '@plone/volto/helpers';
|
|
|
13
13
|
import { useLocation } from 'react-router-dom';
|
|
14
14
|
import { getBaseUrl } from '@plone/volto/helpers';
|
|
15
15
|
import config from '@plone/volto/registry';
|
|
16
|
-
import {
|
|
17
|
-
LoginAgidButtons,
|
|
18
|
-
RemoveBodyClass,
|
|
19
|
-
} from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
16
|
+
import { LoginAgidButtons } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
20
17
|
|
|
21
18
|
/**
|
|
22
19
|
* unauthorized function.
|
|
@@ -58,7 +55,7 @@ const Unauthorized = (props) => {
|
|
|
58
55
|
return (
|
|
59
56
|
<div id="unauthorized-agid" className="view-wrapper">
|
|
60
57
|
<BodyClass className="public-ui" />
|
|
61
|
-
<
|
|
58
|
+
<BodyClass className="cms-ui" remove={true} />
|
|
62
59
|
|
|
63
60
|
<Container className="view-wrapper py-5">
|
|
64
61
|
{spidLoginUrl || spidLogin ? (
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
SingleSlideWrapper,
|
|
14
14
|
CarouselWrapper,
|
|
15
15
|
} from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
16
|
+
import { useSlider } from 'design-comuni-plone-theme/components/ItaliaTheme/Slider/slider';
|
|
16
17
|
import PropTypes from 'prop-types';
|
|
17
18
|
import { contentFolderHasItems } from 'design-comuni-plone-theme/helpers';
|
|
18
19
|
import { UniversalLink } from '@plone/volto/components';
|
|
@@ -50,6 +51,7 @@ const Gallery = ({
|
|
|
50
51
|
reactSlick,
|
|
51
52
|
}) => {
|
|
52
53
|
const Slider = reactSlick.default;
|
|
54
|
+
const { SliderNextArrow, SliderPrevArrow } = useSlider();
|
|
53
55
|
const Image = config.getComponent({ name: 'Image' }).component;
|
|
54
56
|
const getSettings = (nItems, slideToScroll) => {
|
|
55
57
|
return {
|
|
@@ -58,6 +60,8 @@ const Gallery = ({
|
|
|
58
60
|
speed: 500,
|
|
59
61
|
slidesToShow: nItems < 3 ? nItems : 3,
|
|
60
62
|
slidesToScroll: slideToScroll ?? 3,
|
|
63
|
+
nextArrow: <SliderNextArrow intl={intl} />,
|
|
64
|
+
prevArrow: <SliderPrevArrow intl={intl} />,
|
|
61
65
|
responsive: [
|
|
62
66
|
{
|
|
63
67
|
breakpoint: 1024,
|
|
@@ -154,37 +158,40 @@ const Gallery = ({
|
|
|
154
158
|
<Slider {...getSettings(images.length)}>
|
|
155
159
|
{images.map((item, i) => (
|
|
156
160
|
<SingleSlideWrapper key={item['@id']} index={i}>
|
|
157
|
-
<
|
|
158
|
-
<
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
e
|
|
162
|
-
e.stopPropagation();
|
|
163
|
-
setViewImageIndex(i);
|
|
164
|
-
}}
|
|
165
|
-
onKeyDown={(e) => {
|
|
166
|
-
if (e.keyCode === 13) {
|
|
161
|
+
<div className={'slide-wrapper'} role="presentation">
|
|
162
|
+
<figure className="img-wrapper">
|
|
163
|
+
<UniversalLink
|
|
164
|
+
item={item}
|
|
165
|
+
onClick={(e) => {
|
|
167
166
|
e.preventDefault();
|
|
168
167
|
e.stopPropagation();
|
|
169
168
|
setViewImageIndex(i);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
169
|
+
}}
|
|
170
|
+
onKeyDown={(e) => {
|
|
171
|
+
if (e.keyCode === 13) {
|
|
172
|
+
e.preventDefault();
|
|
173
|
+
e.stopPropagation();
|
|
174
|
+
setViewImageIndex(i);
|
|
175
|
+
}
|
|
176
|
+
}}
|
|
177
|
+
aria-label={`${intl.formatMessage(
|
|
178
|
+
messages.viewPreview,
|
|
179
|
+
)} ${item.title}`}
|
|
180
|
+
className="img-wrapper"
|
|
181
|
+
>
|
|
182
|
+
<Image
|
|
183
|
+
item={item}
|
|
184
|
+
alt={item.title}
|
|
185
|
+
className="img-fluid"
|
|
186
|
+
loading="lazy"
|
|
187
|
+
sizes={`(max-width:320px) 300px, (max-width:425px) 400px, ${default_width_image}`}
|
|
188
|
+
/>
|
|
189
|
+
</UniversalLink>
|
|
190
|
+
<figcaption className="figure-caption mt-2">
|
|
191
|
+
{item.title}
|
|
192
|
+
</figcaption>
|
|
193
|
+
</figure>
|
|
194
|
+
</div>
|
|
188
195
|
</SingleSlideWrapper>
|
|
189
196
|
))}
|
|
190
197
|
</Slider>
|
|
@@ -13,7 +13,12 @@ export const addCardWithSlideUpTextTemplateOptions = (
|
|
|
13
13
|
) => {
|
|
14
14
|
let pos = position;
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
// hidden to avoid use of lighthouse on this block
|
|
17
|
+
// which creates problems with asseverazione
|
|
18
|
+
// 1. clients instructed not to use this variation when data-element is needed
|
|
19
|
+
// 2. planned intervention to change structure of variation to allow use of
|
|
20
|
+
// data element without wrapping entire card in link
|
|
21
|
+
// pos = addLighthouseField(schema, intl, pos);
|
|
17
22
|
|
|
18
23
|
pos = addDefaultOptions(schema, formData, intl, pos);
|
|
19
24
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CUSTOMIZATIONS:
|
|
3
|
+
* - handle bodyclass removal
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Children } from 'react';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import withSideEffect from 'react-side-effect';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @export
|
|
11
|
+
* @class BodyClass
|
|
12
|
+
* @extends {Component}
|
|
13
|
+
*/
|
|
14
|
+
class BodyClass extends Component {
|
|
15
|
+
/**
|
|
16
|
+
* Render method.
|
|
17
|
+
* @method render
|
|
18
|
+
* @returns {string} Markup for the component.
|
|
19
|
+
*/
|
|
20
|
+
render() {
|
|
21
|
+
if (this.props.children) {
|
|
22
|
+
return Children.only(this.props.children);
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
BodyClass.propTypes = {
|
|
29
|
+
children: PropTypes.element,
|
|
30
|
+
className: PropTypes.string,
|
|
31
|
+
remove: PropTypes.bool,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
BodyClass.defaultProps = {
|
|
35
|
+
children: null,
|
|
36
|
+
className: null,
|
|
37
|
+
remove: false,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* reducePropsToState
|
|
42
|
+
* @function reducePropsToState
|
|
43
|
+
* @param {*} propsList propsList
|
|
44
|
+
* @returns {List} classList
|
|
45
|
+
*/
|
|
46
|
+
function reducePropsToState(propsList) {
|
|
47
|
+
let classList = [];
|
|
48
|
+
propsList.forEach((props) => {
|
|
49
|
+
if (props.className) {
|
|
50
|
+
if (props.remove) {
|
|
51
|
+
classList = classList.filter((c) => c !== props.className);
|
|
52
|
+
} else {
|
|
53
|
+
classList = classList.concat(props.className.split(' '));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return classList;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* handleStateChangeOnClient
|
|
62
|
+
* @function handleStateChangeOnClient
|
|
63
|
+
* @param {*} classList classList
|
|
64
|
+
* @returns {null} null
|
|
65
|
+
*/
|
|
66
|
+
function handleStateChangeOnClient(classList) {
|
|
67
|
+
document.body.className = '';
|
|
68
|
+
classList.forEach((className) => {
|
|
69
|
+
if (!document.body.classList.contains(className)) {
|
|
70
|
+
document.body.classList.add(className);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export default withSideEffect(
|
|
76
|
+
reducePropsToState,
|
|
77
|
+
handleStateChangeOnClient,
|
|
78
|
+
)(BodyClass);
|
|
@@ -3,6 +3,18 @@ $accordion-icon-color: #7fb2e5;
|
|
|
3
3
|
.block.accordion {
|
|
4
4
|
.section.full-width {
|
|
5
5
|
height: auto;
|
|
6
|
+
.title {
|
|
7
|
+
font-size: 2.35rem !important;
|
|
8
|
+
font-weight: bold;
|
|
9
|
+
line-height: 3rem;
|
|
10
|
+
|
|
11
|
+
.DraftEditor-root {
|
|
12
|
+
.public-DraftEditorPlaceholder-root {
|
|
13
|
+
width: 100%;
|
|
14
|
+
font-size: 2.35rem;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
6
18
|
|
|
7
19
|
@media (max-width: #{map-get($grid-breakpoints, md)}) {
|
|
8
20
|
padding: 0.5em;
|
|
@@ -1,45 +1,50 @@
|
|
|
1
1
|
.public-ui {
|
|
2
2
|
.block.form {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
white-space: normal;
|
|
16
|
-
|
|
17
|
-
&.active {
|
|
3
|
+
.row {
|
|
4
|
+
max-width: 100%;
|
|
5
|
+
|
|
6
|
+
@media (max-width: #{map-get($grid-breakpoints, md)}) {
|
|
7
|
+
.form-group {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
max-width: 100%;
|
|
11
|
+
|
|
12
|
+
label {
|
|
13
|
+
position: relative;
|
|
14
|
+
order: 1;
|
|
18
15
|
font-size: 0.777rem;
|
|
16
|
+
line-height: 1.375rem;
|
|
17
|
+
transform: none;
|
|
19
18
|
transform: none;
|
|
19
|
+
white-space: normal;
|
|
20
|
+
|
|
21
|
+
&.active {
|
|
22
|
+
font-size: 0.777rem;
|
|
23
|
+
transform: none;
|
|
24
|
+
}
|
|
20
25
|
}
|
|
21
|
-
}
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
input,
|
|
28
|
+
textarea,
|
|
29
|
+
.form-input-file {
|
|
30
|
+
order: 2;
|
|
31
|
+
}
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
input[type='date'] ~ label {
|
|
34
|
+
font-size: 0.777rem;
|
|
35
|
+
transform: none;
|
|
36
|
+
}
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
small.form-text {
|
|
39
|
+
position: relative;
|
|
40
|
+
order: 3;
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
|
-
}
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
.form-input-file {
|
|
45
|
+
.dropzone-placeholder {
|
|
46
|
+
margin-top: 0;
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
}
|
|
@@ -65,6 +70,7 @@
|
|
|
65
70
|
&,
|
|
66
71
|
.volto-subblocks-wrapper,
|
|
67
72
|
.form-field {
|
|
73
|
+
max-width: 100%;
|
|
68
74
|
.single-block {
|
|
69
75
|
.dragsubblock {
|
|
70
76
|
top: 0.3rem;
|
|
@@ -367,3 +367,30 @@ dl.trasparenza-fields {
|
|
|
367
367
|
@include rem-size(font-size, 16px);
|
|
368
368
|
@include rem-size(line-height, 24px);
|
|
369
369
|
}
|
|
370
|
+
|
|
371
|
+
// CT gallery slider
|
|
372
|
+
.it-carousel-wrapper {
|
|
373
|
+
.slider-container {
|
|
374
|
+
.slick-list .slick-track {
|
|
375
|
+
.slick-slide {
|
|
376
|
+
position: relative;
|
|
377
|
+
margin: 0 auto;
|
|
378
|
+
|
|
379
|
+
a {
|
|
380
|
+
height: 150px;
|
|
381
|
+
&.img-wrapper {
|
|
382
|
+
position: relative;
|
|
383
|
+
overflow: hidden;
|
|
384
|
+
width: 100%;
|
|
385
|
+
margin: 0;
|
|
386
|
+
|
|
387
|
+
img {
|
|
388
|
+
min-height: 150px;
|
|
389
|
+
object-fit: cover;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|