design-comuni-plone-theme 11.27.0 → 11.29.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.1-0de05761ad-127b69de40.zip} +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +54 -0
- package/RELEASE.md +33 -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/Blocks/Accordion/Block/ViewBlock.jsx +1 -1
- package/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx +16 -5
- package/src/components/ItaliaTheme/View/Commons/BandoDates.jsx +27 -47
- package/src/components/ItaliaTheme/View/Commons/Dates.jsx +22 -8
- package/src/components/ItaliaTheme/View/Commons/Module.jsx +7 -0
- package/src/components/ItaliaTheme/View/PageView/PageView.jsx +3 -0
- package/src/components/ItaliaTheme/View/PageView/Placeholder/HeaderEnd.jsx +6 -0
- package/src/components/ItaliaTheme/View/PersonaView/PersonaDocumenti.jsx +57 -20
- package/src/components/ItaliaTheme/View/index.js +1 -0
- 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/_gridBlock.scss +25 -23
- package/src/theme/ItaliaTheme/Blocks/_search.scss +12 -0
- package/src/theme/ItaliaTheme/Views/_servizio.scss +6 -0
- package/src/theme/ItaliaTheme/_home.scss +4 -2
- 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,59 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [11.29.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.28.0...v11.29.0) (2025-03-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* added placeholder PagePlaceholderHeaderEnd in PageView ([#903](https://github.com/RedTurtle/design-comuni-plone-theme/issues/903)) ([dd89da5](https://github.com/RedTurtle/design-comuni-plone-theme/commit/dd89da5653dfb22c1fc7d59446b75d0292d6b6c4))
|
|
9
|
+
* allow ct document to contains also File content types and show as a Modulo content type; editors request to handle file cut/paste into ct documento ([#909](https://github.com/RedTurtle/design-comuni-plone-theme/issues/909)) ([71c0f91](https://github.com/RedTurtle/design-comuni-plone-theme/commit/71c0f91e730cabb1e3e9197c93e82e8d1338a73f))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* a11y bando and events timeline ([#906](https://github.com/RedTurtle/design-comuni-plone-theme/issues/906)) ([c8ea5f0](https://github.com/RedTurtle/design-comuni-plone-theme/commit/c8ea5f004b011f5031faabc3a779e45f3b0808ff))
|
|
15
|
+
* **a11y:** changed display mode of homepage and subsite title([#905](https://github.com/RedTurtle/design-comuni-plone-theme/issues/905)) ([48f6db1](https://github.com/RedTurtle/design-comuni-plone-theme/commit/48f6db19f5c1d7a861d6daa397ce0f2212f472c8))
|
|
16
|
+
* changed homepage h1 from display none to visually hidden ([#904](https://github.com/RedTurtle/design-comuni-plone-theme/issues/904)) ([af0e49b](https://github.com/RedTurtle/design-comuni-plone-theme/commit/af0e49b40e5702d92ed8b5ea96fcbb9dd9bb0eda))
|
|
17
|
+
* no toggle accordion on clicking inside links ([#908](https://github.com/RedTurtle/design-comuni-plone-theme/issues/908)) ([23f6857](https://github.com/RedTurtle/design-comuni-plone-theme/commit/23f68575fa7aa960ab2ef9930dda2d57db036576))
|
|
18
|
+
* styles for listing blocks inside grid block on mobile ([#901](https://github.com/RedTurtle/design-comuni-plone-theme/issues/901)) ([59fc1b5](https://github.com/RedTurtle/design-comuni-plone-theme/commit/59fc1b51ec9c5f158b09c11e748983352471b552))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
* updated publiccode and release log ([dfbc39c](https://github.com/RedTurtle/design-comuni-plone-theme/commit/dfbc39cc0d72d73db6b40226e9104467bc6b01fc))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Maintenance
|
|
27
|
+
|
|
28
|
+
* fix lockfile ([2c96be2](https://github.com/RedTurtle/design-comuni-plone-theme/commit/2c96be2e9ee691f287d6c66612bb0f32fc9703cf))
|
|
29
|
+
* volto-feedback 0.6.1 ([#902](https://github.com/RedTurtle/design-comuni-plone-theme/issues/902)) ([c69eb91](https://github.com/RedTurtle/design-comuni-plone-theme/commit/c69eb91a05847e6d0676c2bcb0f606768b85815e))
|
|
30
|
+
|
|
31
|
+
## [11.28.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.27.0...v11.28.0) (2025-03-04)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* 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))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* 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))
|
|
42
|
+
* 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))
|
|
43
|
+
* 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))
|
|
44
|
+
* updated locales ([fdbb495](https://github.com/RedTurtle/design-comuni-plone-theme/commit/fdbb495aa72a9987de62b7a53da4839fbf402766))
|
|
45
|
+
* urlRegex syntax ([#894](https://github.com/RedTurtle/design-comuni-plone-theme/issues/894)) ([6eb2ec9](https://github.com/RedTurtle/design-comuni-plone-theme/commit/6eb2ec9325063622335f3174628f1b30cdb1ffbd))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Maintenance
|
|
49
|
+
|
|
50
|
+
* 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))
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### Documentation
|
|
54
|
+
|
|
55
|
+
* updated publiccode and release log ([1c28a3a](https://github.com/RedTurtle/design-comuni-plone-theme/commit/1c28a3a513898b4c87ccdcaf7e380c434b16fac3))
|
|
56
|
+
|
|
3
57
|
## [11.27.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.26.5...v11.27.0) (2025-02-26)
|
|
4
58
|
|
|
5
59
|
|
package/RELEASE.md
CHANGED
|
@@ -41,6 +41,39 @@
|
|
|
41
41
|
- ...
|
|
42
42
|
-->
|
|
43
43
|
|
|
44
|
+
## Versione 11.29.0 (07/03/2025)
|
|
45
|
+
|
|
46
|
+
### Migliorie
|
|
47
|
+
|
|
48
|
+
- Nel CT Documento ora è possibile gestire anche il CT File tramite taglia/incolla, laddove serva spostare dei File dentro uno specifico documento.
|
|
49
|
+
- Correzione del testo visualizzato sul pulsante "Cancella tutti i commenti" per la Customer Satisfaction, migliorando la leggibilità e conformità.
|
|
50
|
+
- Migliorata l'accessibilità per il widget dei campi di tipo Slate che salvano i dati in formato HTML.
|
|
51
|
+
- Migliorata l'accessibilità per gli elementi di tipo blockquote.
|
|
52
|
+
- Migliorata la lettura delle timeline di date nel dettaglio di Bando e Evento.
|
|
53
|
+
|
|
54
|
+
### Fix
|
|
55
|
+
|
|
56
|
+
- Sistemata la visualizzazione su mobile dei blocchi elenco inseriti all'interno dei blocchi griglia.
|
|
57
|
+
- Il titolo della homepage del sito è ora accessibile.
|
|
58
|
+
- Risolto un problema con i link all'interno dei blocchi Accordion.
|
|
59
|
+
|
|
60
|
+
## Versione 11.28.0 (04/03/2025)
|
|
61
|
+
|
|
62
|
+
### Migliorie
|
|
63
|
+
|
|
64
|
+
- Tutti i bottoni della sezione "Accedi al servizio" hanno lo stesso font.
|
|
65
|
+
- Nel blocco 'Cerca' ora viene fatto lo scroll automatico nel punto dove iniziano i risultati di ricerca quando vengono modificati i filtri.
|
|
66
|
+
|
|
67
|
+
### Novità
|
|
68
|
+
|
|
69
|
+
- Nel campo "Assessori di riferimento" nel CT Unità Organizzativa è ora possibile collegare due CT Persona.
|
|
70
|
+
- 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.
|
|
71
|
+
|
|
72
|
+
### Fix
|
|
73
|
+
|
|
74
|
+
- I campi del CT Servizio - sezione Accedi al Servizio funzionano correttamente.
|
|
75
|
+
- Sistemato lo stile del focus nelle select del blocco 'Cerca'.
|
|
76
|
+
|
|
44
77
|
## Versione 11.27.0 (26/02/2025)
|
|
45
78
|
|
|
46
79
|
### 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.29.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.1",
|
|
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-07'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 11.
|
|
232
|
+
softwareVersion: 11.29.0
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -72,7 +72,7 @@ const ViewBlock = ({ data, isOpen, toggle, id, index }) => {
|
|
|
72
72
|
aria-labelledby={`${id}-${index}`}
|
|
73
73
|
hidden={!isOpen}
|
|
74
74
|
>
|
|
75
|
-
<div className="accordion-inner"
|
|
75
|
+
<div className="accordion-inner">
|
|
76
76
|
{redraft(
|
|
77
77
|
data.text,
|
|
78
78
|
config.settings.richtextViewSettings.ToHTMLRenderers,
|
|
@@ -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>
|
|
@@ -57,18 +57,31 @@ const BandoDates = ({ content }) => {
|
|
|
57
57
|
? viewDate(intl.locale, content.chiusura_procedimento_bando)
|
|
58
58
|
: null;
|
|
59
59
|
|
|
60
|
+
const PointListDate = ({ date }) => {
|
|
61
|
+
return (
|
|
62
|
+
<div
|
|
63
|
+
className="point-list-aside point-list-warning"
|
|
64
|
+
aria-label={date.format('DD MMMM Y')}
|
|
65
|
+
>
|
|
66
|
+
<span className="point-date font-monospace" aria-hidden="true">
|
|
67
|
+
{date.format('DD')}
|
|
68
|
+
</span>
|
|
69
|
+
<span className="point-month" aria-hidden="true">
|
|
70
|
+
{date.format('MMMM')}
|
|
71
|
+
</span>
|
|
72
|
+
<span className="point-month" aria-hidden="true">
|
|
73
|
+
{date.format('Y')}
|
|
74
|
+
</span>
|
|
75
|
+
</div>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
60
78
|
return content ? (
|
|
61
79
|
<>
|
|
62
80
|
<div className="point-list-wrapper my-4 mb-5">
|
|
63
81
|
{effective && (
|
|
64
82
|
<div className="point-list">
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
{effective.format('DD')}
|
|
68
|
-
</span>
|
|
69
|
-
<span className="point-month">{effective.format('MMMM')}</span>
|
|
70
|
-
<span className="point-month">{effective.format('Y')}</span>
|
|
71
|
-
</div>
|
|
83
|
+
<PointListDate date={effective} />
|
|
84
|
+
|
|
72
85
|
<div className="point-list-content">
|
|
73
86
|
<Card
|
|
74
87
|
className="card card-teaser rounded shadow border-left-card"
|
|
@@ -87,15 +100,8 @@ const BandoDates = ({ content }) => {
|
|
|
87
100
|
|
|
88
101
|
{apertura_bando && (
|
|
89
102
|
<div className="point-list">
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
{apertura_bando.format('DD')}
|
|
93
|
-
</span>
|
|
94
|
-
<span className="point-month">
|
|
95
|
-
{apertura_bando.format('MMMM')}
|
|
96
|
-
</span>
|
|
97
|
-
<span className="point-month">{apertura_bando.format('Y')}</span>
|
|
98
|
-
</div>
|
|
103
|
+
<PointListDate date={apertura_bando} />
|
|
104
|
+
|
|
99
105
|
<div className="point-list-content">
|
|
100
106
|
<Card
|
|
101
107
|
className="card card-teaser rounded shadow border-left-card"
|
|
@@ -115,17 +121,8 @@ const BandoDates = ({ content }) => {
|
|
|
115
121
|
|
|
116
122
|
{scadenza_domande_bando && (
|
|
117
123
|
<div className="point-list">
|
|
118
|
-
<
|
|
119
|
-
|
|
120
|
-
{scadenza_domande_bando.format('DD')}
|
|
121
|
-
</span>
|
|
122
|
-
<span className="point-month">
|
|
123
|
-
{scadenza_domande_bando.format('MMMM')}
|
|
124
|
-
</span>
|
|
125
|
-
<span className="point-month">
|
|
126
|
-
{scadenza_domande_bando.format('Y')}
|
|
127
|
-
</span>
|
|
128
|
-
</div>
|
|
124
|
+
<PointListDate date={scadenza_domande_bando} />
|
|
125
|
+
|
|
129
126
|
<div className="point-list-content">
|
|
130
127
|
<Card
|
|
131
128
|
className="card card-teaser rounded shadow border-left-card"
|
|
@@ -145,15 +142,7 @@ const BandoDates = ({ content }) => {
|
|
|
145
142
|
|
|
146
143
|
{scadenza_bando && (
|
|
147
144
|
<div className="point-list">
|
|
148
|
-
<
|
|
149
|
-
<span className="point-date font-monospace">
|
|
150
|
-
{scadenza_bando.format('DD')}
|
|
151
|
-
</span>
|
|
152
|
-
<span className="point-month">
|
|
153
|
-
{scadenza_bando.format('MMMM')}
|
|
154
|
-
</span>
|
|
155
|
-
<span className="point-month">{scadenza_bando.format('Y')}</span>
|
|
156
|
-
</div>
|
|
145
|
+
<PointListDate date={scadenza_bando} />
|
|
157
146
|
<div className="point-list-content">
|
|
158
147
|
<Card
|
|
159
148
|
className="card card-teaser rounded shadow border-left-card"
|
|
@@ -173,17 +162,8 @@ const BandoDates = ({ content }) => {
|
|
|
173
162
|
|
|
174
163
|
{chiusura_procedimento_bando && (
|
|
175
164
|
<div className="point-list">
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
{chiusura_procedimento_bando.format('DD')}
|
|
179
|
-
</span>
|
|
180
|
-
<span className="point-month">
|
|
181
|
-
{chiusura_procedimento_bando.format('MMMM')}
|
|
182
|
-
</span>
|
|
183
|
-
<span className="point-month">
|
|
184
|
-
{chiusura_procedimento_bando.format('Y')}
|
|
185
|
-
</span>
|
|
186
|
-
</div>
|
|
165
|
+
<PointListDate date={chiusura_procedimento_bando} />
|
|
166
|
+
|
|
187
167
|
<div className="point-list-content">
|
|
188
168
|
<Card
|
|
189
169
|
className="card card-teaser rounded shadow border-left-card"
|
|
@@ -100,13 +100,20 @@ const Dates = ({ content, show_image, moment: momentlib, rrule }) => {
|
|
|
100
100
|
<>
|
|
101
101
|
<div className="point-list-wrapper my-4 mb-5">
|
|
102
102
|
<div className="point-list">
|
|
103
|
-
<div
|
|
104
|
-
|
|
103
|
+
<div
|
|
104
|
+
className="point-list-aside point-list-warning"
|
|
105
|
+
aria-label={start.format('DD MMMM Y')}
|
|
106
|
+
>
|
|
107
|
+
<span className="point-date font-monospace" aria-hidden={true}>
|
|
105
108
|
{start.format('DD')}
|
|
106
109
|
</span>
|
|
107
|
-
<span className="point-month"
|
|
110
|
+
<span className="point-month" aria-hidden={true}>
|
|
111
|
+
{start.format('MMMM')}
|
|
112
|
+
</span>
|
|
108
113
|
{!start.isSame(end, 'year') && (
|
|
109
|
-
<span className="point-month"
|
|
114
|
+
<span className="point-month" aria-hidden={true}>
|
|
115
|
+
{start.format('YYYY')}
|
|
116
|
+
</span>
|
|
110
117
|
)}
|
|
111
118
|
</div>
|
|
112
119
|
<div className="point-list-content">
|
|
@@ -131,13 +138,20 @@ const Dates = ({ content, show_image, moment: momentlib, rrule }) => {
|
|
|
131
138
|
</div>
|
|
132
139
|
{!openEnd && (
|
|
133
140
|
<div className="point-list">
|
|
134
|
-
<div
|
|
135
|
-
|
|
141
|
+
<div
|
|
142
|
+
className="point-list-aside point-list-warning"
|
|
143
|
+
aria-label={end.format('DD MMMM Y')}
|
|
144
|
+
>
|
|
145
|
+
<span className="point-date font-monospace" aria-hidden={true}>
|
|
136
146
|
{end?.format('DD')}
|
|
137
147
|
</span>
|
|
138
|
-
<span className="point-month"
|
|
148
|
+
<span className="point-month" aria-hidden={true}>
|
|
149
|
+
{end?.format('MMMM')}
|
|
150
|
+
</span>
|
|
139
151
|
{!end?.isSame(start, 'year') && (
|
|
140
|
-
<span className="point-month"
|
|
152
|
+
<span className="point-month" aria-hidden={true}>
|
|
153
|
+
{end?.format('YYYY')}
|
|
154
|
+
</span>
|
|
141
155
|
)}
|
|
142
156
|
</div>
|
|
143
157
|
<div className="point-list-content">
|
|
@@ -39,6 +39,13 @@ const Module = ({ item }) => {
|
|
|
39
39
|
|
|
40
40
|
{item.description && <p>{item.description}</p>}
|
|
41
41
|
<div className="download-formats">
|
|
42
|
+
<DownloadFileFormat
|
|
43
|
+
file={item.file}
|
|
44
|
+
showLabel={true}
|
|
45
|
+
title={item.title ?? item.file.filename}
|
|
46
|
+
hideFileFormatLabel={true}
|
|
47
|
+
className="mb-4"
|
|
48
|
+
/>
|
|
42
49
|
<DownloadFileFormat
|
|
43
50
|
file={item.file_principale}
|
|
44
51
|
showLabel={true}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
PagePlaceholderAfterContent,
|
|
12
12
|
PagePlaceholderAfterRelatedItems,
|
|
13
13
|
PagePlaceholderTitle,
|
|
14
|
+
PagePlaceholderHeaderEnd,
|
|
14
15
|
TextOrBlocks,
|
|
15
16
|
RichText,
|
|
16
17
|
RelatedItemInEvidence,
|
|
@@ -76,6 +77,7 @@ const PageView = ({ content, token, location, history }) => {
|
|
|
76
77
|
</PagePlaceholderTitle>
|
|
77
78
|
|
|
78
79
|
<p className="description">{content?.description}</p>
|
|
80
|
+
|
|
79
81
|
{content?.ricerca_in_testata && (
|
|
80
82
|
<SearchSectionForm content={content} />
|
|
81
83
|
)}
|
|
@@ -118,6 +120,7 @@ const PageView = ({ content, token, location, history }) => {
|
|
|
118
120
|
</div>
|
|
119
121
|
)}
|
|
120
122
|
</div>
|
|
123
|
+
<PagePlaceholderHeaderEnd content={content} />
|
|
121
124
|
</div>
|
|
122
125
|
|
|
123
126
|
<TextOrBlocks content={content} />
|
|
@@ -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
|
)}
|
|
@@ -138,6 +138,7 @@ export NewsItemMetadata from 'design-comuni-plone-theme/components/ItaliaTheme/V
|
|
|
138
138
|
export PagePlaceholderAfterContent from 'design-comuni-plone-theme/components/ItaliaTheme/View/PageView/Placeholder/AfterContent';
|
|
139
139
|
export PagePlaceholderAfterRelatedItems from 'design-comuni-plone-theme/components/ItaliaTheme/View/PageView/Placeholder/AfterRelatedItems';
|
|
140
140
|
export PagePlaceholderTitle from 'design-comuni-plone-theme/components/ItaliaTheme/View/PageView/Placeholder/Title';
|
|
141
|
+
export PagePlaceholderHeaderEnd from 'design-comuni-plone-theme/components/ItaliaTheme/View/PageView/Placeholder/HeaderEnd';
|
|
141
142
|
export PaginaArgomentoPlaceholderAfterContent from 'design-comuni-plone-theme/components/ItaliaTheme/View/PaginaArgomentoView/Placeholder/AfterContent';
|
|
142
143
|
export PaginaArgomentoPlaceholderAfterRelatedItems from 'design-comuni-plone-theme/components/ItaliaTheme/View/PaginaArgomentoView/Placeholder/AfterRelatedItems';
|
|
143
144
|
export PaginaArgomentoViewNoBlocks from 'design-comuni-plone-theme/components/ItaliaTheme/View/PaginaArgomentoView/PaginaArgomentoViewNoBlocks';
|
|
@@ -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
|
|
@@ -19,36 +19,38 @@
|
|
|
19
19
|
width: auto !important;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
&.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
@media (min-width: #{map-get($grid-breakpoints, md)}) {
|
|
23
|
+
&.listing {
|
|
24
|
+
&.simpleCard,
|
|
25
|
+
&.attachmentCardTemplate {
|
|
26
|
+
.card-teaser-block-3 {
|
|
27
|
+
> .card-teaser {
|
|
28
|
+
flex: 0 0 49%; //invece di 3 elementi per riga, ne mostro due perchè c'è poco spazio
|
|
29
|
+
}
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
|
-
}
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
&.cardWithImageTemplate,
|
|
34
|
+
&.ribbonCardTemplate,
|
|
35
|
+
&.completeBlockLinksTemplate {
|
|
36
|
+
.col-lg-4,
|
|
37
|
+
.col-xl-4,
|
|
38
|
+
.col-lg-3 {
|
|
39
|
+
width: 50%; //invece di 3 elementi per riga, ne mostro due perchè c'è poco spazio
|
|
40
|
+
}
|
|
39
41
|
}
|
|
40
|
-
}
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
&.cardSlideUpTextTemplate,
|
|
44
|
+
&.quaresImageTemplate {
|
|
45
|
+
.grid {
|
|
46
|
+
grid-template-columns: 1fr 1fr;
|
|
47
|
+
}
|
|
46
48
|
}
|
|
47
|
-
}
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
&.bandiInEvidenceTemplate {
|
|
51
|
+
.bandi-in-evidence-cards-wrapper {
|
|
52
|
+
grid-template-columns: 1fr 1fr;
|
|
53
|
+
}
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
}
|
|
@@ -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 {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
body.public-ui.contenttype-lrf {
|
|
3
3
|
.block-editor-title,
|
|
4
4
|
.documentFirstHeading {
|
|
5
|
-
|
|
5
|
+
@include visually-hidden;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -13,7 +13,9 @@ body.public-ui.contenttype-lrf {
|
|
|
13
13
|
body.subsite.subsite-root {
|
|
14
14
|
&,
|
|
15
15
|
.public-ui {
|
|
16
|
-
.documentFirstHeading
|
|
16
|
+
.documentFirstHeading {
|
|
17
|
+
@include visually-hidden;
|
|
18
|
+
}
|
|
17
19
|
#briciole {
|
|
18
20
|
display: none;
|
|
19
21
|
}
|
|
@@ -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
|
+
}
|