diff --git a/CHANGELOG.md b/CHANGELOG.md index fb208f3b5..5634c7830 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ +## [11.5.1](https://github.com/redturtle/design-comuni-plone-theme/compare/v11.5.0...v11.5.1) (2024-02-19) + + +### Bug Fixes + +* added component to show update_note field on Bandi view ([#543](https://github.com/redturtle/design-comuni-plone-theme/issues/543)) ([a9e33fe](https://github.com/redturtle/design-comuni-plone-theme/commit/a9e33fe6765f5635afc6f856d778495cbe815350)) + + +### Documentation + +* updated publiccode and release log ([0f2200e](https://github.com/redturtle/design-comuni-plone-theme/commit/0f2200e7a433c7721f8521f5f79b617d1b8c6910)) + ## [11.5.0](https://github.com/redturtle/design-comuni-plone-theme/compare/v11.4.1...v11.5.0) (2024-02-16) @@ -6761,4 +6773,4 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - added onclick to viewAll button [`baa258a`](https://github.com/RedTurtle/design-volto-theme/commit/baa258a983f9619b18f9c8d9fb078fe9b17f338b) - todo [`7814f01`](https://github.com/RedTurtle/design-volto-theme/commit/7814f01e5dd883c83bca4ecf53425ada9942d9ab) - updated gitignore with .history [`e73a28c`](https://github.com/RedTurtle/design-volto-theme/commit/e73a28c94176a172219c1a740a97047b5e2fa400) -- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7) \ No newline at end of file +- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7) diff --git a/RELEASE.md b/RELEASE.md index ef5a5c608..57ba87363 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -46,6 +46,32 @@ ### Fix - Le icone social nel menu laterale mobile sono tutte dello stesso colore. +### Migliorie + +- Nel blocco form è stata aggiunta una legenda per i campi obbligatori. + +### Novità + +- Aggiornato il plugin del blocco Form, adesso si ha la possibilità di aggiungere un pulsante per resettare i campi e nella sidebar è presente un nuovo campo per creare un messaggio personalizzato dopo l'invio della form, i campi di tipo: testo, email, data e textarea hanno un identificativo che può essere utilizzato per restituire il valore di quei campi nel messaggio personalizzato. + +### Fix + +- L'icona per aprire il menu in mobile è ora visibile anche quando l'header del sito è bianca. +- La descrizione nelle card per i punti di contatto non mostrano più tutte le iniziali in maiuscolo. +- Il colore dei link nel menu mobile è ora accessibile per tutti i temi. +- Rimosso il title dall'immagine di apertura dei contenuti +- Rimosso attributo title dall'immagine delle card: card con immagine, persona, blocco link completo, contenuto in evidenza, gallery a griglia, in evidenza +- Migliorata l'accessibilità del menu in versione mobile. +- Il layout dei campi di input "in errore" del blocco Form è stato uniformato. +- La tendina delle select nel blocco Form non si sovrappone più ai campi sottostanti. +- Sistemato alert di errore nel blocco Form che nascondeva il form quando un campo non era valido, ora continua a visualizzarsi anche la form. +- Migliorato il testo alternativo per il logo NextGenerationEU nel footer. + +## Versione 11.5.1 (19/02/2024) + +### Migliorie + +- Il campo "Note aggiornamento" nel Tipo di Contenuto Bandi viene ora mostrato in pagina, se compilato. ## Versione 11.5.0 (16/02/2024) @@ -56,7 +82,6 @@ ### Fix - Risolto un problema riguardante la visualizzazione delle date nelle card che rappresentano un CT Evento nei vari listati nel caso in cui l'evento si sviluppi su anni diversi - - Risolto un problema di visualizzazione per la sezione Date e Orari nel CT Evento quando l'evento si sviluppa su anni diversi, ora viene mostrato anche l'anno se si rientra in questa casistica - Nel blocco elenco, sono stati sistemati i filtri per percorso quando si clicca sul bottone configurato. diff --git a/locales/de/LC_MESSAGES/volto.po b/locales/de/LC_MESSAGES/volto.po index 7e81f2187..66db76294 100644 --- a/locales/de/LC_MESSAGES/volto.po +++ b/locales/de/LC_MESSAGES/volto.po @@ -2115,6 +2115,16 @@ msgstr "" msgid "fine_termine" msgstr "" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2275,6 +2285,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2564,6 +2579,11 @@ msgstr "" msgid "nominativo" msgstr "" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/locales/en/LC_MESSAGES/volto.po b/locales/en/LC_MESSAGES/volto.po index cb55378f2..cb59baad6 100644 --- a/locales/en/LC_MESSAGES/volto.po +++ b/locales/en/LC_MESSAGES/volto.po @@ -2100,6 +2100,16 @@ msgstr "Search" msgid "fine_termine" msgstr "End of term" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "Cancel" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "Restart" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2260,6 +2270,11 @@ msgstr "Association service or office" msgid "legami_strutture_figlie" msgstr "Internal services or offices" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "Fields marked with (*) are required." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2549,6 +2564,11 @@ msgstr "" msgid "nominativo" msgstr "nominative" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "Update notes" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/locales/es/LC_MESSAGES/volto.po b/locales/es/LC_MESSAGES/volto.po index f2ddb610a..8d7c6a2b0 100644 --- a/locales/es/LC_MESSAGES/volto.po +++ b/locales/es/LC_MESSAGES/volto.po @@ -2109,6 +2109,16 @@ msgstr "Buscar" msgid "fine_termine" msgstr "Fin de los términos" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2269,6 +2279,11 @@ msgstr "Servicio u oficina de la asociación" msgid "legami_strutture_figlie" msgstr "Servicios internos u oficinas" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2558,6 +2573,11 @@ msgstr "No hay vídeos seleccionados. Agregar un elemento para mostrar un vídeo msgid "nominativo" msgstr "nominativa" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/locales/fr/LC_MESSAGES/volto.po b/locales/fr/LC_MESSAGES/volto.po index 2c0b49649..a0ea1f11f 100644 --- a/locales/fr/LC_MESSAGES/volto.po +++ b/locales/fr/LC_MESSAGES/volto.po @@ -2117,6 +2117,16 @@ msgstr "Rechercher" msgid "fine_termine" msgstr "Fin du mandat" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2277,6 +2287,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "Les champs marqués d'une (*) sont obligatoires." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2566,6 +2581,11 @@ msgstr "" msgid "nominativo" msgstr "nominatif" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/locales/it/LC_MESSAGES/volto.po b/locales/it/LC_MESSAGES/volto.po index e71f4966d..b1da0afda 100644 --- a/locales/it/LC_MESSAGES/volto.po +++ b/locales/it/LC_MESSAGES/volto.po @@ -2100,6 +2100,16 @@ msgstr "Cerca" msgid "fine_termine" msgstr "Fine termine" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "Annulla" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "Ricomincia" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2260,6 +2270,11 @@ msgstr "Unità organizzativa genitore" msgid "legami_strutture_figlie" msgstr "Servizi o uffici interni" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "I campi contrassegnati da (*) sono obbligatori." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2549,6 +2564,11 @@ msgstr "Nessun video selezionato. Aggiungi un elemento per mostrare un video" msgid "nominativo" msgstr "nominativo" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/locales/volto.pot b/locales/volto.pot index 9c408e606..b9a0fdaa9 100644 --- a/locales/volto.pot +++ b/locales/volto.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Plone\n" -"POT-Creation-Date: 2024-02-15T11:19:07.787Z\n" +"POT-Creation-Date: 2024-02-29T16:36:05.160Z\n" "Last-Translator: Plone i18n \n" "Language-Team: Plone i18n \n" "MIME-Version: 1.0\n" @@ -2102,6 +2102,16 @@ msgstr "" msgid "fine_termine" msgstr "" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2262,6 +2272,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" @@ -2551,6 +2566,11 @@ msgstr "" msgid "nominativo" msgstr "" +#: components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento +# defaultMessage: Note di aggiornamento +msgid "note_aggiornamento" +msgstr "" + #: components/ItaliaTheme/View/Commons/RelatedItems # defaultMessage: Novità msgid "novita" diff --git a/package.json b/package.json index e1b3cded1..f8a0fac41 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "design-comuni-plone-theme", "description": "Volto Theme for Italia design guidelines", "license": "GPL-v3", - "version": "11.5.0", + "version": "11.5.1", "main": "src/index.js", "keywords": [ "volto-addon", @@ -146,7 +146,7 @@ "volto-dropdownmenu": "4.1.1", "volto-editablefooter": "5.0.3", "volto-feedback": "0.2.0", - "volto-form-block": "3.1.0", + "volto-form-block": "3.3.1", "volto-gdpr-privacy": "2.1.1", "volto-google-analytics": "2.0.0", "volto-multilingual-widget": "3.0.0", diff --git a/publiccode.yml b/publiccode.yml index eda5aed82..42033cd04 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -227,9 +227,9 @@ maintenance: name: io-Comune - Il sito AgID per Comuni ed Enti Pubblici platforms: - web -releaseDate: '2024-02-16' +releaseDate: '2024-02-19' softwareType: standalone/web -softwareVersion: 11.5.0 +softwareVersion: 11.5.1 url: 'https://github.com/italia/design-comuni-plone-theme' usedBy: - ASP Comuni Modenesi Area Nord diff --git a/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx index a85db4a65..bedd83a4b 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx @@ -93,7 +93,7 @@ const CardWithImageTemplate = (props) => { ) : null; - const image = ListingImage({ item }); + const image = ListingImage({ item, showTitleAttr: false }); const showImage = (index < imagesToShow || always_show_image) && image != null; diff --git a/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx b/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx index cda17063d..f9e128e7a 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx @@ -8,24 +8,27 @@ const ListingImage = ({ showDefault = false, className = 'listing-image', responsive = true, + showTitleAttr = true, sizes = '(max-width:320px) 200px, (max-width:425px) 300px, (max-width:767px) 500px, 410px', ...imageProps }) => { const Image = config.getComponent({ name: 'Image' }).component; - // photogallery needs to check for null image - // https://stackoverflow.com/questions/33136399/is-there-a-way-to-tell-if-reactelement-renders-null - const image = Image({ + let commonImageProps = { item, 'aria-hidden': true, alt: '', role: 'presentation', className, loading, - title: item.title, responsive, sizes, ...imageProps, - }); + }; + if (showTitleAttr) + commonImageProps = { ...commonImageProps, title: item.title }; + // photogallery needs to check for null image + // https://stackoverflow.com/questions/33136399/is-there-a-way-to-tell-if-reactelement-renders-null + const image = Image(commonImageProps); if (image === null) return showDefault ? : null; diff --git a/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx index 6934686e1..9a137d09c 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx @@ -56,7 +56,12 @@ const CompleteBlockLinksTemplate = (props) => { )} {items.map((item, index) => { - const image = ListingImage({ item, className: '', sizes: '60px' }); + const image = ListingImage({ + item, + className: '', + sizes: '60px', + showTitleAttr: false, + }); const BlockExtraTags = getComponentWithFallback({ name: 'BlockExtraTags', diff --git a/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx index 105d6f663..63002c741 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx @@ -70,6 +70,7 @@ const ContentInEvidenceTemplate = (props) => { className: 'item-image', loading: 'eager', sizes: '(max-width:425px) 400px, (max-width:767px) 520px, 650px', + showTitleAttr: false, }); const icon = getItemIcon(item); const BlockExtraTags = getComponentWithFallback({ diff --git a/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx index 1e21911ad..0b311f313 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx @@ -58,6 +58,7 @@ const GridGalleryTemplate = ({ let image = ListingImage({ item, className: '', + showTitleAttr: false, }); let scale = null; if (index % 7 === 0 || index % 7 === 6 || index % 7 === 3) { diff --git a/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx index c67bfbb5b..869f1842b 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx @@ -89,6 +89,7 @@ const InEvidenceTemplate = (props) => { const image = ListingImage({ item, sizes: '(max-width:320px) 200px, 300px', + showTitleAttr: false, }); const category = getCategory(item, show_type, show_section, props); const topics = show_topics ? item.tassonomia_argomenti : null; diff --git a/src/components/ItaliaTheme/Cards/CardPersona.jsx b/src/components/ItaliaTheme/Cards/CardPersona.jsx index 922ce71d2..ac09a27b3 100644 --- a/src/components/ItaliaTheme/Cards/CardPersona.jsx +++ b/src/components/ItaliaTheme/Cards/CardPersona.jsx @@ -23,6 +23,7 @@ export const CardPersona = ({ const image = ListingImage({ item, sizes: '130px', + showTitleAttr: false, }); const hasImage = image !== null && showImage; diff --git a/src/components/ItaliaTheme/Footer/FooterPNRRLogo.jsx b/src/components/ItaliaTheme/Footer/FooterPNRRLogo.jsx index fd118b02c..3669e9d5d 100644 --- a/src/components/ItaliaTheme/Footer/FooterPNRRLogo.jsx +++ b/src/components/ItaliaTheme/Footer/FooterPNRRLogo.jsx @@ -7,7 +7,7 @@ const FooterPNRRLogo = () => { src={logoPNRR} width="167" height="41" - alt="NextGenerationEU" + alt="Finanziato dall'Unione Europea - Next Generation EU" loading="lazy" decoding="async" className="nextGenerationEULogo" diff --git a/src/components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento.jsx b/src/components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento.jsx new file mode 100644 index 000000000..1be37e009 --- /dev/null +++ b/src/components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento.jsx @@ -0,0 +1,29 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + note_aggiornamento: { + id: 'note_aggiornamento', + defaultMessage: 'Note di aggiornamento', + }, +}); + +const BandoNoteAggiornamento = ({ content }) => { + const intl = useIntl(); + return content?.update_note ? ( +
+

{intl.formatMessage(messages.note_aggiornamento)}

+ {content?.update_note} +
+ ) : ( + <> + ); +}; + +BandoNoteAggiornamento.propTypes = { + content: PropTypes.shape({ + update_note: PropTypes.shape(PropTypes.string), + }).isRequired, +}; +export default BandoNoteAggiornamento; diff --git a/src/components/ItaliaTheme/View/BandoView/BandoView.jsx b/src/components/ItaliaTheme/View/BandoView/BandoView.jsx index 3243599a3..0b04c2e8a 100644 --- a/src/components/ItaliaTheme/View/BandoView/BandoView.jsx +++ b/src/components/ItaliaTheme/View/BandoView/BandoView.jsx @@ -17,6 +17,7 @@ import { BandoServizi, BandoDate, BandoApprofondimenti, + BandoNoteAggiornamento, BandoUlterioriInformazioni, RelatedItemInEvidence, SkipToMainContent, @@ -34,6 +35,7 @@ export const BandoViewSectionsOrder = [ { /* ALLEGATI (CARTELLE APPROFONDIMENTI) */ component: BandoApprofondimenti, }, + { /* NOTE AGGIORNAMENTO */ component: BandoNoteAggiornamento }, { /* ULTERIORI INFORMAZIONI */ component: BandoUlterioriInformazioni }, ]; /** diff --git a/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx b/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx index 485636845..358b4fb44 100644 --- a/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx +++ b/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx @@ -57,8 +57,10 @@ const ContactsCard = ({ contact = {}, show_title = false, ...rest }) => { {data?.value_punto_contatto.map((pdc, index) => ( - {pdc.pdc_type} - {pdc.pdc_desc ? ` - ${pdc.pdc_desc}` : ''}:{' '} + {pdc.pdc_type} + + {pdc.pdc_desc ? ` - ${pdc.pdc_desc}` : ''}:{' '} + {renderPDCItemValue(pdc, intl)} diff --git a/src/components/ItaliaTheme/View/Commons/WideImage.jsx b/src/components/ItaliaTheme/View/Commons/WideImage.jsx index f3b0821c2..ed95f0746 100644 --- a/src/components/ItaliaTheme/View/Commons/WideImage.jsx +++ b/src/components/ItaliaTheme/View/Commons/WideImage.jsx @@ -27,7 +27,6 @@ const WideImage = ({ fieldName={fieldName} className={cx('', { 'full-width': fullWidth })} alt="" - title={caption || title} critical loading="eager" sizes={sizes} diff --git a/src/components/ItaliaTheme/View/index.js b/src/components/ItaliaTheme/View/index.js index 697a90bf4..2c6c9c083 100644 --- a/src/components/ItaliaTheme/View/index.js +++ b/src/components/ItaliaTheme/View/index.js @@ -85,6 +85,7 @@ export BandoAreaResponsabile from 'design-comuni-plone-theme/components/ItaliaTh export BandoServizi from 'design-comuni-plone-theme/components/ItaliaTheme/View/BandoView/BandoServizi'; export BandoDate from 'design-comuni-plone-theme/components/ItaliaTheme/View/BandoView/BandoDate'; export BandoApprofondimenti from 'design-comuni-plone-theme/components/ItaliaTheme/View/BandoView/BandoApprofondimenti'; +export BandoNoteAggiornamento from 'design-comuni-plone-theme/components/ItaliaTheme/View/BandoView/BandoNoteAggiornamento'; export BandoUlterioriInformazioni from 'design-comuni-plone-theme/components/ItaliaTheme/View/BandoView/BandoUlterioriInformazioni'; export CartellaModulisticaAfterContent from 'design-comuni-plone-theme/components/ItaliaTheme/View/CartellaModulisticaView/Placeholder/AfterContent'; diff --git a/src/components/ItaliaTheme/manage/Widgets/FileWidget.jsx b/src/components/ItaliaTheme/manage/Widgets/FileWidget.jsx index 003010006..05aa33c98 100644 --- a/src/components/ItaliaTheme/manage/Widgets/FileWidget.jsx +++ b/src/components/ItaliaTheme/manage/Widgets/FileWidget.jsx @@ -56,7 +56,8 @@ const messages = defineMessages({ * @returns {string} Markup of the component. */ const FileWidget = (props) => { - const { id, value, onChange, label, onEdit, infoText } = props; + const { id, value, onChange, label, onEdit, infoText, required, invalid } = + props; const [isImage, setIsImage] = React.useState(false); const intl = useIntl(); @@ -98,8 +99,18 @@ const FileWidget = (props) => { reader.readAsDataURL(files[0]); }; + let attributes = {}; + if (required) { + attributes.required = true; + attributes['aria-required'] = true; + } + + const isInvalid = invalid === true || invalid === 'true'; + if (isInvalid) { + attributes['aria-invalid'] = true; + } return ( -
+
@@ -154,6 +165,7 @@ const FileWidget = (props) => { name={id} type="file" disabled={props.disabled || null} + {...attributes} /> )}
diff --git a/src/customizations/volto-form-block/components/Edit.jsx b/src/customizations/volto-form-block/components/Edit.jsx index 73f080abf..27889ad7d 100644 --- a/src/customizations/volto-form-block/components/Edit.jsx +++ b/src/customizations/volto-form-block/components/Edit.jsx @@ -32,6 +32,10 @@ const messages = defineMessages({ id: 'form_default_submit_label', defaultMessage: 'Invia', }, + default_cancel_label: { + id: 'form_default_cancel_label', + defaultMessage: 'Annulla', + }, warning: { id: 'form_edit_warning', defaultMessage: 'Attenzione!', @@ -116,6 +120,14 @@ class Edit extends SubblocksEdit { + {this.props.data?.show_cancel && ( + + )} - - ) : formState.result ? ( + {formState.result ? (

{intl.formatMessage(messages.success)}


-
) : (
+ {/* Controlla che ci siano campi obbligatori al suo interno e applica una legenda */} + {data.subblocks.some((item) => item.required === true) && ( + + + {intl.formatMessage(messages.legend_required)} + + + )} {data.static_fields && (
{data.static_fields?.map((field) => ( @@ -204,9 +241,32 @@ const FormView = ({

{intl.formatMessage(messages.empty_values)}

)} + {formState.error && ( + +

{intl.formatMessage(messages.error)}

+

{formState.error}

+
+ )} + {data?.show_cancel && ( + + )}