design-comuni-plone-theme 11.27.0 → 11.28.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/cache/{volto-feedback-npm-0.5.2-c3471099a1-48c0763678.zip → volto-feedback-npm-0.6.0-42c860b5c3-49addbf819.zip} +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +26 -0
- package/RELEASE.md +17 -0
- package/locales/de/LC_MESSAGES/volto.po +10 -0
- package/locales/en/LC_MESSAGES/volto.po +10 -0
- package/locales/es/LC_MESSAGES/volto.po +10 -0
- package/locales/fr/LC_MESSAGES/volto.po +10 -0
- package/locales/it/LC_MESSAGES/volto.po +10 -0
- package/locales/volto.pot +11 -1
- package/package.json +2 -2
- package/publiccode.yml +2 -2
- package/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx +16 -5
- package/src/components/ItaliaTheme/View/PersonaView/PersonaDocumenti.jsx +57 -20
- package/src/config/italiaConfig.js +23 -2
- package/src/customizations/volto/components/manage/Blocks/Search/SearchBlockView.jsx +20 -1
- package/src/customizations/volto/components/manage/Blocks/Search/layout/LeftColumnFacets.jsx +21 -17
- package/src/customizations/volto/components/manage/Blocks/Search/layout/RightColumnFacets.jsx +21 -17
- package/src/customizations/volto/components/theme/Footer/Footer.jsx +12 -5
- package/src/customizations/volto/helpers/FormValidation/FormValidation.js +4 -4
- package/src/theme/ItaliaTheme/Blocks/_search.scss +12 -0
- package/src/theme/ItaliaTheme/Views/_servizio.scss +6 -0
- package/src/theme/bootstrap-override/_bootstrap-italia-site.scss +1 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_form-select.scss +17 -0
|
Binary file
|
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [11.28.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.27.0...v11.28.0) (2025-03-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* feedback customizations for new volto-feedback version ([#897](https://github.com/RedTurtle/design-comuni-plone-theme/issues/897)) ([ac3f292](https://github.com/RedTurtle/design-comuni-plone-theme/commit/ac3f292ba0fd76af35f64d3bc1a7f1e2b5f46ff4))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* added cards to show files uploaded in ct persona trasparenza folders ([#889](https://github.com/RedTurtle/design-comuni-plone-theme/issues/889)) ([5ce0e06](https://github.com/RedTurtle/design-comuni-plone-theme/commit/5ce0e06b24cc9794478e38e95facff7883cd527f))
|
|
14
|
+
* changed draftjs buttons font in accedi al servizio section in service ([#891](https://github.com/RedTurtle/design-comuni-plone-theme/issues/891)) ([c1cc30b](https://github.com/RedTurtle/design-comuni-plone-theme/commit/c1cc30b26da79fa3014bb1f9e38478a8ee9b311d))
|
|
15
|
+
* search block focus styles and scroll into view results when apply filters ([#898](https://github.com/RedTurtle/design-comuni-plone-theme/issues/898)) ([3bbe8d0](https://github.com/RedTurtle/design-comuni-plone-theme/commit/3bbe8d05c811ca6f5729cb76c9efca4715562053))
|
|
16
|
+
* updated locales ([fdbb495](https://github.com/RedTurtle/design-comuni-plone-theme/commit/fdbb495aa72a9987de62b7a53da4839fbf402766))
|
|
17
|
+
* urlRegex syntax ([#894](https://github.com/RedTurtle/design-comuni-plone-theme/issues/894)) ([6eb2ec9](https://github.com/RedTurtle/design-comuni-plone-theme/commit/6eb2ec9325063622335f3174628f1b30cdb1ffbd))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Maintenance
|
|
21
|
+
|
|
22
|
+
* release.md info on BE change ([#895](https://github.com/RedTurtle/design-comuni-plone-theme/issues/895)) ([83409ef](https://github.com/RedTurtle/design-comuni-plone-theme/commit/83409ef52b7edc312c3685159bc9c9df07f92425))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Documentation
|
|
26
|
+
|
|
27
|
+
* updated publiccode and release log ([1c28a3a](https://github.com/RedTurtle/design-comuni-plone-theme/commit/1c28a3a513898b4c87ccdcaf7e380c434b16fac3))
|
|
28
|
+
|
|
3
29
|
## [11.27.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.26.5...v11.27.0) (2025-02-26)
|
|
4
30
|
|
|
5
31
|
|
package/RELEASE.md
CHANGED
|
@@ -41,6 +41,23 @@
|
|
|
41
41
|
- ...
|
|
42
42
|
-->
|
|
43
43
|
|
|
44
|
+
## Versione 11.28.0 (04/03/2025)
|
|
45
|
+
|
|
46
|
+
### Migliorie
|
|
47
|
+
|
|
48
|
+
- Tutti i bottoni della sezione "Accedi al servizio" hanno lo stesso font.
|
|
49
|
+
- Nel blocco 'Cerca' ora viene fatto lo scroll automatico nel punto dove iniziano i risultati di ricerca quando vengono modificati i filtri.
|
|
50
|
+
|
|
51
|
+
### Novità
|
|
52
|
+
|
|
53
|
+
- Nel campo "Assessori di riferimento" nel CT Unità Organizzativa è ora possibile collegare due CT Persona.
|
|
54
|
+
- Per caricare documenti per "Dichiarazioni di insussistenza e incompatibilità" e per "Emolumenti a carico della finanza pubblica" è ora possibile caricare anche documenti multipli dalle cartelle contenute nel CT Persona, non solo dai campi specifici.
|
|
55
|
+
|
|
56
|
+
### Fix
|
|
57
|
+
|
|
58
|
+
- I campi del CT Servizio - sezione Accedi al Servizio funzionano correttamente.
|
|
59
|
+
- Sistemato lo stile del focus nelle select del blocco 'Cerca'.
|
|
60
|
+
|
|
44
61
|
## Versione 11.27.0 (26/02/2025)
|
|
45
62
|
|
|
46
63
|
### Migliorie
|
|
@@ -949,6 +949,11 @@ msgstr ""
|
|
|
949
949
|
msgid "atto_nomina"
|
|
950
950
|
msgstr ""
|
|
951
951
|
|
|
952
|
+
#: config/italiaConfig
|
|
953
|
+
# defaultMessage: Login/Logout
|
|
954
|
+
msgid "auth_ft"
|
|
955
|
+
msgstr ""
|
|
956
|
+
|
|
952
957
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
953
958
|
# defaultMessage: Autoplay
|
|
954
959
|
msgid "autoplay"
|
|
@@ -3890,6 +3895,11 @@ msgstr ""
|
|
|
3890
3895
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3891
3896
|
msgstr ""
|
|
3892
3897
|
|
|
3898
|
+
#: config/italiaConfig
|
|
3899
|
+
# defaultMessage: Sitemap
|
|
3900
|
+
msgid "sitemap_ft"
|
|
3901
|
+
msgstr ""
|
|
3902
|
+
|
|
3893
3903
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3894
3904
|
# defaultMessage: Situazione patrimoniale
|
|
3895
3905
|
msgid "situazione_patrimoniale"
|
|
@@ -934,6 +934,11 @@ msgstr ""
|
|
|
934
934
|
msgid "atto_nomina"
|
|
935
935
|
msgstr "Act of appointment"
|
|
936
936
|
|
|
937
|
+
#: config/italiaConfig
|
|
938
|
+
# defaultMessage: Login/Logout
|
|
939
|
+
msgid "auth_ft"
|
|
940
|
+
msgstr ""
|
|
941
|
+
|
|
937
942
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
938
943
|
# defaultMessage: Autoplay
|
|
939
944
|
msgid "autoplay"
|
|
@@ -3875,6 +3880,11 @@ msgstr ""
|
|
|
3875
3880
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3876
3881
|
msgstr ""
|
|
3877
3882
|
|
|
3883
|
+
#: config/italiaConfig
|
|
3884
|
+
# defaultMessage: Sitemap
|
|
3885
|
+
msgid "sitemap_ft"
|
|
3886
|
+
msgstr ""
|
|
3887
|
+
|
|
3878
3888
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3879
3889
|
# defaultMessage: Situazione patrimoniale
|
|
3880
3890
|
msgid "situazione_patrimoniale"
|
|
@@ -943,6 +943,11 @@ msgstr "Escrituras y documentos que acompañan a la solicitud"
|
|
|
943
943
|
msgid "atto_nomina"
|
|
944
944
|
msgstr "Acto de nombramiento"
|
|
945
945
|
|
|
946
|
+
#: config/italiaConfig
|
|
947
|
+
# defaultMessage: Login/Logout
|
|
948
|
+
msgid "auth_ft"
|
|
949
|
+
msgstr ""
|
|
950
|
+
|
|
946
951
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
947
952
|
# defaultMessage: Autoplay
|
|
948
953
|
msgid "autoplay"
|
|
@@ -3884,6 +3889,11 @@ msgstr "Aquí puede seleccionar un aspecto diferente al predeterminado para la p
|
|
|
3884
3889
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3885
3890
|
msgstr ""
|
|
3886
3891
|
|
|
3892
|
+
#: config/italiaConfig
|
|
3893
|
+
# defaultMessage: Sitemap
|
|
3894
|
+
msgid "sitemap_ft"
|
|
3895
|
+
msgstr ""
|
|
3896
|
+
|
|
3887
3897
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3888
3898
|
# defaultMessage: Situazione patrimoniale
|
|
3889
3899
|
msgid "situazione_patrimoniale"
|
|
@@ -951,6 +951,11 @@ msgstr ""
|
|
|
951
951
|
msgid "atto_nomina"
|
|
952
952
|
msgstr "Acte de nomination"
|
|
953
953
|
|
|
954
|
+
#: config/italiaConfig
|
|
955
|
+
# defaultMessage: Login/Logout
|
|
956
|
+
msgid "auth_ft"
|
|
957
|
+
msgstr ""
|
|
958
|
+
|
|
954
959
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
955
960
|
# defaultMessage: Autoplay
|
|
956
961
|
msgid "autoplay"
|
|
@@ -3892,6 +3897,11 @@ msgstr ""
|
|
|
3892
3897
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3893
3898
|
msgstr ""
|
|
3894
3899
|
|
|
3900
|
+
#: config/italiaConfig
|
|
3901
|
+
# defaultMessage: Sitemap
|
|
3902
|
+
msgid "sitemap_ft"
|
|
3903
|
+
msgstr ""
|
|
3904
|
+
|
|
3895
3905
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3896
3906
|
# defaultMessage: Situazione patrimoniale
|
|
3897
3907
|
msgid "situazione_patrimoniale"
|
|
@@ -934,6 +934,11 @@ msgstr "Atti e documenti a corredo dell'istanza"
|
|
|
934
934
|
msgid "atto_nomina"
|
|
935
935
|
msgstr "Atto di nomina"
|
|
936
936
|
|
|
937
|
+
#: config/italiaConfig
|
|
938
|
+
# defaultMessage: Login/Logout
|
|
939
|
+
msgid "auth_ft"
|
|
940
|
+
msgstr ""
|
|
941
|
+
|
|
937
942
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
938
943
|
# defaultMessage: Autoplay
|
|
939
944
|
msgid "autoplay"
|
|
@@ -3875,6 +3880,11 @@ msgstr "Qui puoi selezionare, per il template 'Card semplice', un aspetto divers
|
|
|
3875
3880
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3876
3881
|
msgstr "Un elemento per riga"
|
|
3877
3882
|
|
|
3883
|
+
#: config/italiaConfig
|
|
3884
|
+
# defaultMessage: Sitemap
|
|
3885
|
+
msgid "sitemap_ft"
|
|
3886
|
+
msgstr ""
|
|
3887
|
+
|
|
3878
3888
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3879
3889
|
# defaultMessage: Situazione patrimoniale
|
|
3880
3890
|
msgid "situazione_patrimoniale"
|
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: 2025-
|
|
4
|
+
"POT-Creation-Date: 2025-03-04T14:31:20.722Z\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"
|
|
@@ -936,6 +936,11 @@ msgstr ""
|
|
|
936
936
|
msgid "atto_nomina"
|
|
937
937
|
msgstr ""
|
|
938
938
|
|
|
939
|
+
#: config/italiaConfig
|
|
940
|
+
# defaultMessage: Login/Logout
|
|
941
|
+
msgid "auth_ft"
|
|
942
|
+
msgstr ""
|
|
943
|
+
|
|
939
944
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
940
945
|
# defaultMessage: Autoplay
|
|
941
946
|
msgid "autoplay"
|
|
@@ -3877,6 +3882,11 @@ msgstr ""
|
|
|
3877
3882
|
msgid "simplecard_listing_appearance_oneforrow"
|
|
3878
3883
|
msgstr ""
|
|
3879
3884
|
|
|
3885
|
+
#: config/italiaConfig
|
|
3886
|
+
# defaultMessage: Sitemap
|
|
3887
|
+
msgid "sitemap_ft"
|
|
3888
|
+
msgstr ""
|
|
3889
|
+
|
|
3880
3890
|
#: components/ItaliaTheme/View/PersonaView/PersonaDocumenti
|
|
3881
3891
|
# defaultMessage: Situazione patrimoniale
|
|
3882
3892
|
msgid "situazione_patrimoniale"
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "design-comuni-plone-theme",
|
|
3
3
|
"description": "Volto Theme for Italia design guidelines",
|
|
4
4
|
"license": "GPL-v3",
|
|
5
|
-
"version": "11.
|
|
5
|
+
"version": "11.28.0",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"volto-data-grid-widget": "2.3.1",
|
|
152
152
|
"volto-dropdownmenu": "4.1.3",
|
|
153
153
|
"volto-editablefooter": "5.1.7",
|
|
154
|
-
"volto-feedback": "0.
|
|
154
|
+
"volto-feedback": "0.6.0",
|
|
155
155
|
"volto-form-block": "3.10.0",
|
|
156
156
|
"volto-gdpr-privacy": "2.2.12",
|
|
157
157
|
"volto-google-analytics": "2.0.0",
|
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: '2025-
|
|
230
|
+
releaseDate: '2025-03-04'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 11.
|
|
232
|
+
softwareVersion: 11.28.0
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -20,6 +20,8 @@ import {
|
|
|
20
20
|
submitFeedback,
|
|
21
21
|
resetSubmitFeedback,
|
|
22
22
|
getFeedbackThreshold,
|
|
23
|
+
isFeedbackEnabledForRoute,
|
|
24
|
+
getStaticFeedbackRouteTitle,
|
|
23
25
|
} from 'volto-feedback';
|
|
24
26
|
import cx from 'classnames';
|
|
25
27
|
import AnswersStep from './Steps/AnswersStep';
|
|
@@ -27,6 +29,8 @@ import CommentsStep from './Steps/CommentsStep';
|
|
|
27
29
|
import RTRating from './Steps/Commons/Rating';
|
|
28
30
|
import { PropTypes } from 'prop-types';
|
|
29
31
|
|
|
32
|
+
import 'volto-feedback/components/FeedbackForm/feedback-form.css';
|
|
33
|
+
|
|
30
34
|
const messages = defineMessages({
|
|
31
35
|
title: {
|
|
32
36
|
id: 'feedback_form_title',
|
|
@@ -234,15 +238,26 @@ const FeedbackForm = ({ title, pathname }) => {
|
|
|
234
238
|
const sendFormData = () => {
|
|
235
239
|
if (invalidForm) return;
|
|
236
240
|
setStep(2);
|
|
241
|
+
let content =
|
|
242
|
+
isFeedbackEnabledForRoute(path) && isCmsUi(path)
|
|
243
|
+
? getStaticFeedbackRouteTitle(path)
|
|
244
|
+
: path;
|
|
245
|
+
if (typeof content === 'object' && content.id)
|
|
246
|
+
content = intl.formatMessage(content);
|
|
237
247
|
const data = {
|
|
238
248
|
...formData,
|
|
239
249
|
...(captcha && { 'g-recaptcha-response': validToken }),
|
|
240
250
|
answer: getTranslatedQuestion(intl, formData.answer),
|
|
251
|
+
content,
|
|
241
252
|
};
|
|
242
|
-
dispatch(submitFeedback(
|
|
253
|
+
dispatch(submitFeedback(data));
|
|
243
254
|
resetFormData();
|
|
244
255
|
};
|
|
245
256
|
|
|
257
|
+
if (!isFeedbackEnabledForRoute(path)) {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
|
|
246
261
|
let action = path?.length > 1 ? path.replace(/\//g, '') : path;
|
|
247
262
|
if (action?.length > 0) {
|
|
248
263
|
action = action?.replace(/-/g, '_');
|
|
@@ -250,10 +265,6 @@ const FeedbackForm = ({ title, pathname }) => {
|
|
|
250
265
|
action = 'homepage';
|
|
251
266
|
}
|
|
252
267
|
|
|
253
|
-
if (isCmsUi(path)) {
|
|
254
|
-
return null;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
268
|
return (
|
|
258
269
|
<section className="bg-primary customer-satisfaction">
|
|
259
270
|
<Container>
|
|
@@ -215,7 +215,11 @@ const PersonaDocumenti = ({ content }) => {
|
|
|
215
215
|
/>
|
|
216
216
|
</RichTextSection>
|
|
217
217
|
)}
|
|
218
|
-
{content.dichiarazioni_di_insussistenza_e_incompatibilita?.download
|
|
218
|
+
{(content.dichiarazioni_di_insussistenza_e_incompatibilita?.download ||
|
|
219
|
+
contentFolderHasItems(
|
|
220
|
+
content,
|
|
221
|
+
'dichiarazione-insussistenza-cause-di-inconferibilita-e-incompatibilita',
|
|
222
|
+
)) && (
|
|
219
223
|
<RichTextSection
|
|
220
224
|
tag_id="dichiarazioni_di_insussistenza_e_incompatibilita"
|
|
221
225
|
title={intl.formatMessage(
|
|
@@ -223,20 +227,39 @@ const PersonaDocumenti = ({ content }) => {
|
|
|
223
227
|
)}
|
|
224
228
|
>
|
|
225
229
|
<div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
230
|
+
{content.dichiarazioni_di_insussistenza_e_incompatibilita
|
|
231
|
+
?.download && (
|
|
232
|
+
<Attachment
|
|
233
|
+
download_url={
|
|
234
|
+
content.dichiarazioni_di_insussistenza_e_incompatibilita
|
|
235
|
+
.download
|
|
236
|
+
}
|
|
237
|
+
title={
|
|
238
|
+
content.dichiarazioni_di_insussistenza_e_incompatibilita
|
|
239
|
+
.filename
|
|
240
|
+
}
|
|
241
|
+
/>
|
|
242
|
+
)}
|
|
243
|
+
{contentFolderHasItems(
|
|
244
|
+
content,
|
|
245
|
+
'dichiarazione-insussistenza-cause-di-inconferibilita-e-incompatibilita',
|
|
246
|
+
) && (
|
|
247
|
+
<Attachments
|
|
248
|
+
content={content}
|
|
249
|
+
folder_name={
|
|
250
|
+
'dichiarazione-insussistenza-cause-di-inconferibilita-e-incompatibilita'
|
|
251
|
+
}
|
|
252
|
+
as_section={false}
|
|
253
|
+
/>
|
|
254
|
+
)}
|
|
236
255
|
</div>
|
|
237
256
|
</RichTextSection>
|
|
238
257
|
)}
|
|
239
|
-
{content.emolumenti_a_carico_della_finanza_pubblica?.download
|
|
258
|
+
{(content.emolumenti_a_carico_della_finanza_pubblica?.download ||
|
|
259
|
+
contentFolderHasItems(
|
|
260
|
+
content,
|
|
261
|
+
'emolumenti-complessivi-percepiti-a-carico-della-finanza-pubblica',
|
|
262
|
+
)) && (
|
|
240
263
|
<RichTextSection
|
|
241
264
|
tag_id="emolumenti_a_carico_della_finanza_pubblica"
|
|
242
265
|
title={intl.formatMessage(
|
|
@@ -244,14 +267,28 @@ const PersonaDocumenti = ({ content }) => {
|
|
|
244
267
|
)}
|
|
245
268
|
>
|
|
246
269
|
<div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
270
|
+
{content.emolumenti_a_carico_della_finanza_pubblica?.download && (
|
|
271
|
+
<Attachment
|
|
272
|
+
download_url={
|
|
273
|
+
content.emolumenti_a_carico_della_finanza_pubblica.download
|
|
274
|
+
}
|
|
275
|
+
title={
|
|
276
|
+
content.emolumenti_a_carico_della_finanza_pubblica.filename
|
|
277
|
+
}
|
|
278
|
+
/>
|
|
279
|
+
)}
|
|
280
|
+
{contentFolderHasItems(
|
|
281
|
+
content,
|
|
282
|
+
'emolumenti-complessivi-percepiti-a-carico-della-finanza-pubblica',
|
|
283
|
+
) && (
|
|
284
|
+
<Attachments
|
|
285
|
+
content={content}
|
|
286
|
+
folder_name={
|
|
287
|
+
'emolumenti-complessivi-percepiti-a-carico-della-finanza-pubblica'
|
|
288
|
+
}
|
|
289
|
+
as_section={false}
|
|
290
|
+
/>
|
|
291
|
+
)}
|
|
255
292
|
</div>
|
|
256
293
|
</RichTextSection>
|
|
257
294
|
)}
|
|
@@ -72,8 +72,8 @@ import {
|
|
|
72
72
|
FALLBACK_IMAGE_SRC_MAX_W,
|
|
73
73
|
} from 'design-comuni-plone-theme/helpers/images';
|
|
74
74
|
|
|
75
|
-
const ReleaseLog = loadable(
|
|
76
|
-
import('design-comuni-plone-theme/components/ReleaseLog/ReleaseLog'),
|
|
75
|
+
const ReleaseLog = loadable(
|
|
76
|
+
() => import('design-comuni-plone-theme/components/ReleaseLog/ReleaseLog'),
|
|
77
77
|
);
|
|
78
78
|
|
|
79
79
|
const messages = defineMessages({
|
|
@@ -81,6 +81,14 @@ const messages = defineMessages({
|
|
|
81
81
|
id: 'search_brdc',
|
|
82
82
|
defaultMessage: 'Ricerca',
|
|
83
83
|
},
|
|
84
|
+
auth_ft: {
|
|
85
|
+
id: 'auth_ft',
|
|
86
|
+
defaultMessage: 'Login/Logout',
|
|
87
|
+
},
|
|
88
|
+
sitemap_ft: {
|
|
89
|
+
id: 'sitemap_ft',
|
|
90
|
+
defaultMessage: 'Sitemap',
|
|
91
|
+
},
|
|
84
92
|
});
|
|
85
93
|
|
|
86
94
|
export default function applyConfig(voltoConfig) {
|
|
@@ -284,6 +292,7 @@ export default function applyConfig(voltoConfig) {
|
|
|
284
292
|
},
|
|
285
293
|
enableFeedbackForm: true,
|
|
286
294
|
noFeedbackFormFor: ['ModelloPratica'],
|
|
295
|
+
enableNoFeedbackFormFor: false,
|
|
287
296
|
enableFeedbackFormCaptcha: false,
|
|
288
297
|
enableVoltoFormBlockCaptcha: true,
|
|
289
298
|
splitMegamenuColumns: true, //se impostato a false, non spezza le colonne con intestazioni nel megamenu
|
|
@@ -360,6 +369,18 @@ export default function applyConfig(voltoConfig) {
|
|
|
360
369
|
pane: CommentsStep,
|
|
361
370
|
},
|
|
362
371
|
],
|
|
372
|
+
// Enable Feedback component in your CMS/Non content routes
|
|
373
|
+
feedbackEnabledNonContentRoutes: [
|
|
374
|
+
...(config.settings['volto-feedback']
|
|
375
|
+
?.feedbackEnabledNonContentRoutes ?? []),
|
|
376
|
+
{
|
|
377
|
+
path: '/login',
|
|
378
|
+
feedbackTitle: messages.auth_ft,
|
|
379
|
+
},
|
|
380
|
+
// { path: '/logout', feedbackTitle: messages.auth_ft },
|
|
381
|
+
{ path: '/sitemap', feedbackTitle: messages.sitemap_ft },
|
|
382
|
+
{ path: '/search', feedbackTitle: messages.search_brdc },
|
|
383
|
+
],
|
|
363
384
|
},
|
|
364
385
|
videoAllowExternalsDefault: false,
|
|
365
386
|
showTrasparenzaFields: false,
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
the way to handle search sort. If searchableText is setted, discard default sorting and uses plone's ranking only if is configured from sidebar. (Changed applyDefaults fn passing usePloneRanking)
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import React from 'react';
|
|
10
|
+
import React, { useState } from 'react';
|
|
11
11
|
|
|
12
12
|
import ListingBody from '@plone/volto/components/manage/Blocks/Listing/ListingBody';
|
|
13
13
|
import { withBlockExtensions } from '@plone/volto/helpers';
|
|
@@ -21,6 +21,7 @@ import cx from 'classnames';
|
|
|
21
21
|
import { isEqual, isFunction } from 'lodash';
|
|
22
22
|
import { useSelector } from 'react-redux';
|
|
23
23
|
import { compose } from 'redux';
|
|
24
|
+
import { useEffect } from 'react';
|
|
24
25
|
|
|
25
26
|
const getListingBodyVariation = (data) => {
|
|
26
27
|
const { variations } = config.blocks.blocksConfig.listing;
|
|
@@ -109,9 +110,26 @@ const SearchBlockView = (props) => {
|
|
|
109
110
|
}, [dataListingBodyVariation, mode]);
|
|
110
111
|
|
|
111
112
|
const root = useSelector((state) => state.breadcrumbs.root);
|
|
113
|
+
const [defaultListingBodyData] = React.useState(
|
|
114
|
+
applyDefaults(searchData, root, data.usePloneRanking),
|
|
115
|
+
);
|
|
112
116
|
const listingBodyData = applyDefaults(searchData, root, data.usePloneRanking);
|
|
117
|
+
|
|
113
118
|
const { variations } = config.blocks.blocksConfig.listing;
|
|
114
119
|
const listingBodyVariation = variations.find(({ id }) => id === selectedView);
|
|
120
|
+
|
|
121
|
+
const query = listingBodyData.query;
|
|
122
|
+
const resultsRef = React.forwardRef(null);
|
|
123
|
+
|
|
124
|
+
useEffect(() => {
|
|
125
|
+
if (
|
|
126
|
+
JSON.stringify(defaultListingBodyData.query) !== JSON.stringify(query)
|
|
127
|
+
) {
|
|
128
|
+
//fai lo scroll solo quando vengono modificati i filtri dall'utente. Evita lo scroll al primo load
|
|
129
|
+
resultsRef.current.scrollIntoView({ behavior: 'smooth' });
|
|
130
|
+
}
|
|
131
|
+
}, [query]);
|
|
132
|
+
|
|
115
133
|
if (!Layout) return null;
|
|
116
134
|
return (
|
|
117
135
|
<div className={cx('block search', { 'public-ui': mode === 'edit' })}>
|
|
@@ -120,6 +138,7 @@ const SearchBlockView = (props) => {
|
|
|
120
138
|
isEditMode={mode === 'edit'}
|
|
121
139
|
selectedView={selectedView}
|
|
122
140
|
setSelectedView={setSelectedView}
|
|
141
|
+
resultsRef={resultsRef}
|
|
123
142
|
>
|
|
124
143
|
{/* Add class .block.listing to benefit from existing listing template styles */}
|
|
125
144
|
<div className="block listing search-results">
|
package/src/customizations/volto/components/manage/Blocks/Search/layout/LeftColumnFacets.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* CUSTOMIZATIONS:
|
|
2
2
|
- Agid styling
|
|
3
|
+
- added resultsRef
|
|
3
4
|
*/
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import {
|
|
@@ -33,6 +34,7 @@ const LeftColumnFacets = (props) => {
|
|
|
33
34
|
isEditMode,
|
|
34
35
|
querystring = {},
|
|
35
36
|
searchData,
|
|
37
|
+
resultsRef,
|
|
36
38
|
// mode = 'view',
|
|
37
39
|
// variation,
|
|
38
40
|
} = props;
|
|
@@ -117,24 +119,26 @@ const LeftColumnFacets = (props) => {
|
|
|
117
119
|
</div>
|
|
118
120
|
)}
|
|
119
121
|
|
|
120
|
-
<div className="
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
122
|
+
<div ref={resultsRef} className="results-wrapper">
|
|
123
|
+
<div className="search-results-count-sort d-flex align-center flex-wrap">
|
|
124
|
+
<SearchDetails
|
|
125
|
+
text={searchedText}
|
|
126
|
+
total={totalItems}
|
|
127
|
+
data={data}
|
|
128
|
+
/>
|
|
129
|
+
<FilterList
|
|
130
|
+
{...props}
|
|
131
|
+
isEditMode={isEditMode}
|
|
132
|
+
setFacets={(f) => {
|
|
133
|
+
flushSync(() => {
|
|
134
|
+
setFacets(f);
|
|
135
|
+
onTriggerSearch(searchedText || '', f);
|
|
136
|
+
});
|
|
137
|
+
}}
|
|
138
|
+
/>
|
|
139
|
+
</div>
|
|
140
|
+
{children}
|
|
136
141
|
</div>
|
|
137
|
-
{children}
|
|
138
142
|
</div>
|
|
139
143
|
</Row>
|
|
140
144
|
</Container>
|
package/src/customizations/volto/components/manage/Blocks/Search/layout/RightColumnFacets.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* CUSTOMIZATIONS:
|
|
2
2
|
- Agid styling
|
|
3
|
+
- added resultsRef
|
|
3
4
|
*/
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import {
|
|
@@ -35,6 +36,7 @@ const RightColumnFacets = (props) => {
|
|
|
35
36
|
isEditMode,
|
|
36
37
|
querystring = {},
|
|
37
38
|
searchData,
|
|
39
|
+
resultsRef,
|
|
38
40
|
// mode = 'view',
|
|
39
41
|
// variation,
|
|
40
42
|
} = props;
|
|
@@ -72,24 +74,26 @@ const RightColumnFacets = (props) => {
|
|
|
72
74
|
</div>
|
|
73
75
|
)}
|
|
74
76
|
|
|
75
|
-
<div className="
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
<div ref={resultsRef} className="results-wrapper">
|
|
78
|
+
<div className="search-results-count-sort d-flex align-center flex-wrap">
|
|
79
|
+
<SearchDetails
|
|
80
|
+
text={searchedText}
|
|
81
|
+
total={totalItems}
|
|
82
|
+
data={data}
|
|
83
|
+
/>
|
|
84
|
+
<FilterList
|
|
85
|
+
{...props}
|
|
86
|
+
isEditMode={isEditMode}
|
|
87
|
+
setFacets={(f) => {
|
|
88
|
+
flushSync(() => {
|
|
89
|
+
setFacets(f);
|
|
90
|
+
onTriggerSearch(searchedText || '', f);
|
|
91
|
+
});
|
|
92
|
+
}}
|
|
93
|
+
/>
|
|
94
|
+
</div>
|
|
95
|
+
{children}
|
|
91
96
|
</div>
|
|
92
|
-
{children}
|
|
93
97
|
</div>
|
|
94
98
|
|
|
95
99
|
{showColumn && (
|
|
@@ -25,15 +25,22 @@ const Footer = () => {
|
|
|
25
25
|
useGoogleAnalytics();
|
|
26
26
|
const currentContent = useSelector((state) => state.content?.data);
|
|
27
27
|
const contentType = currentContent ? currentContent['@type'] : null;
|
|
28
|
-
const noFeedbackFormFor =
|
|
28
|
+
const noFeedbackFormFor =
|
|
29
|
+
config.settings.siteProperties.noFeedbackFormFor || [];
|
|
30
|
+
const showFeedbackForm = config.settings.siteProperties
|
|
31
|
+
.enableNoFeedbackFormFor
|
|
32
|
+
? contentType &&
|
|
33
|
+
!noFeedbackFormFor.includes(contentType) &&
|
|
34
|
+
config.settings.siteProperties.enableFeedbackForm
|
|
35
|
+
: true;
|
|
29
36
|
|
|
30
37
|
return (
|
|
31
38
|
<>
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
config.settings.siteProperties.enableFeedbackForm && (
|
|
39
|
+
{showFeedbackForm && (
|
|
40
|
+
<div className="public-ui" id="customer-satisfaction-form">
|
|
35
41
|
<FeedbackForm />
|
|
36
|
-
|
|
42
|
+
</div>
|
|
43
|
+
)}
|
|
37
44
|
|
|
38
45
|
<SubsiteFooter />
|
|
39
46
|
<footer className="it-footer" id="footer">
|
|
@@ -100,11 +100,11 @@ const widgetValidation = {
|
|
|
100
100
|
url: {
|
|
101
101
|
isValidURL: (urlValue, urlObj, intlFunc) => {
|
|
102
102
|
var urlRegex = new RegExp(
|
|
103
|
-
|
|
103
|
+
'^(https?:\\/\\/)?' + // optional protocol
|
|
104
104
|
'(' +
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
'([a-z\\d]+(-[a-z\\d]+)*\\.)+[a-z]{2,}|' + // validate domain name
|
|
106
|
+
'(\\d{1,3}\\.){3}\\d{1,3}|' + // OR ip (v4) address
|
|
107
|
+
'localhost' + // OR localhost
|
|
108
108
|
')' +
|
|
109
109
|
'(\\:\\d+)?' + // optional port
|
|
110
110
|
'(\\/[-a-z\\d%_.~+]*)*' + // path
|
|
@@ -258,6 +258,18 @@
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
+
|
|
262
|
+
@media (max-width: #{map-get($grid-breakpoints, md)}) {
|
|
263
|
+
//i filtri della colonna di destra vengono mostrati sotto alla barra di ricerca, prima dei risultati, perchè altrimenti su mobile verrebbero mostrati dopo i risultati.
|
|
264
|
+
.searchBlock-facets.right-column-facets {
|
|
265
|
+
> .row > :first-child {
|
|
266
|
+
order: 1;
|
|
267
|
+
}
|
|
268
|
+
.sideColumn {
|
|
269
|
+
order: 0;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
261
273
|
}
|
|
262
274
|
|
|
263
275
|
.cms-ui .block.search .sideColumn .columnText .draftjs-buttons a {
|
|
@@ -109,6 +109,7 @@
|
|
|
109
109
|
@import 'bootstrap-italia/src/scss/custom/form-toggles';
|
|
110
110
|
@import 'bootstrap-italia/src/scss/custom/form-password';
|
|
111
111
|
@import 'bootstrap-italia/src/scss/custom/form-select';
|
|
112
|
+
@import './bootstrap-italia/form-select';
|
|
112
113
|
@import 'bootstrap-italia/src/scss/custom/form-transfer';
|
|
113
114
|
@import 'bootstrap-italia/src/scss/custom/dropdown';
|
|
114
115
|
@import 'bootstrap-italia/src/scss/custom/pager';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.bootstrap-select-wrapper {
|
|
2
|
+
//prevent focus input style, and add focus styles to all select wrapper, because input has a variable width depending on text inputed and if there's no text inside, when it has focus a double vertical lines are displayed.
|
|
3
|
+
input:focus,
|
|
4
|
+
input:focus-within {
|
|
5
|
+
outline: none !important;
|
|
6
|
+
box-shadow: none !important;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&:has(input:focus),
|
|
10
|
+
&:has(input:focus-within) {
|
|
11
|
+
outline: 2px solid $outer-focus-outline !important;
|
|
12
|
+
outline-offset: 2px;
|
|
13
|
+
|
|
14
|
+
border: none !important;
|
|
15
|
+
box-shadow: 0 0 0 2px $inner-focus-shadow !important;
|
|
16
|
+
}
|
|
17
|
+
}
|