design-comuni-plone-theme 11.26.1 → 11.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +25 -0
- package/RELEASE.md +6 -0
- package/package.json +1 -1
- package/publiccode.yml +2 -2
- package/src/components/ImageWithErrors/ImageWithErrors.jsx +25 -12
- package/src/config/italiaConfig.js +8 -2
- package/src/customizations/volto/components/manage/Contents/ContentsUploadModal.jsx +5 -3
- package/src/helpers/images.js +53 -0
- package/src/helpers/index.js +5 -1
- package/src/helpers/url.js +7 -0
- package/src/theme/ItaliaTheme/Print/_blocks.scss +12 -0
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [11.26.3](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.26.2...v11.26.3) (2025-01-15)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* image with error on error loop, customizable fallback image in site properties ([#852](https://github.com/RedTurtle/design-comuni-plone-theme/issues/852)) ([7187e5f](https://github.com/RedTurtle/design-comuni-plone-theme/commit/7187e5f74a3eadcf9ff2d38000386cb3f0792696))
|
|
9
|
+
* remove file upload restraint from contents modal if modules are allowed ([#854](https://github.com/RedTurtle/design-comuni-plone-theme/issues/854)) ([46357ae](https://github.com/RedTurtle/design-comuni-plone-theme/commit/46357aee85f05782fc6d1374a23a7e9d9cd89232))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Documentation
|
|
13
|
+
|
|
14
|
+
* updated publiccode and release log ([004915b](https://github.com/RedTurtle/design-comuni-plone-theme/commit/004915b0aee731b88b2d77e93a3c5c2f7ab56330))
|
|
15
|
+
|
|
16
|
+
## [11.26.2](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.26.1...v11.26.2) (2024-12-27)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* theme build bug due to print styles desync ([2aacb6a](https://github.com/RedTurtle/design-comuni-plone-theme/commit/2aacb6a78d6d4c93ef24a4d3b89ff6b587baa698))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Documentation
|
|
25
|
+
|
|
26
|
+
* updated publiccode ([ba2e5c8](https://github.com/RedTurtle/design-comuni-plone-theme/commit/ba2e5c85bfbc0de260a0d0dc8839b2286500656d))
|
|
27
|
+
|
|
3
28
|
## [11.26.1](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v11.26.0...v11.26.1) (2024-12-27)
|
|
4
29
|
|
|
5
30
|
|
package/RELEASE.md
CHANGED
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
- ...
|
|
42
42
|
-->
|
|
43
43
|
|
|
44
|
+
## Versione 11.26.3 (15/01/2025)
|
|
45
|
+
|
|
46
|
+
### Fix
|
|
47
|
+
|
|
48
|
+
- E' possibile caricare moduli in maniera massiva nei documenti all'interno delle aree corrette dentro Documenti e Dati > Modulistica
|
|
49
|
+
|
|
44
50
|
## Versione 11.26.1 (27/12/2024)
|
|
45
51
|
|
|
46
52
|
### Fix
|
package/package.json
CHANGED
package/publiccode.yml
CHANGED
|
@@ -227,9 +227,9 @@ maintenance:
|
|
|
227
227
|
name: io-Comune - Il sito AgID per Comuni ed Enti Pubblici
|
|
228
228
|
platforms:
|
|
229
229
|
- web
|
|
230
|
-
releaseDate: '
|
|
230
|
+
releaseDate: '2025-01-15'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 11.26.
|
|
232
|
+
softwareVersion: 11.26.3
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
2
|
import { Image } from '@plone/volto/components';
|
|
3
|
+
import { useFallbackImageSrc } from 'design-comuni-plone-theme/helpers';
|
|
4
4
|
|
|
5
|
-
const ImageWithErrors = (
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
});
|
|
5
|
+
const ImageWithErrors = ({ src, fallbackSrc = '', ...rest }) => {
|
|
6
|
+
const { className, sizes } = rest;
|
|
7
|
+
const { currentSrc, handleError, getFallbackImageStyle } =
|
|
8
|
+
useFallbackImageSrc({
|
|
9
|
+
src,
|
|
10
|
+
customFallbackSrc: fallbackSrc,
|
|
11
|
+
className,
|
|
12
|
+
sizes,
|
|
13
|
+
});
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
let commonProps = { ...rest };
|
|
16
|
+
const fallbackStyle = getFallbackImageStyle({
|
|
17
|
+
src,
|
|
18
|
+
customFallbackSrc: fallbackSrc,
|
|
19
|
+
className,
|
|
20
|
+
sizes,
|
|
21
|
+
});
|
|
22
|
+
if (fallbackStyle) {
|
|
23
|
+
commonProps = {
|
|
24
|
+
...commonProps,
|
|
25
|
+
style: { ...commonProps.style, ...fallbackStyle },
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return <Image {...commonProps} src={currentSrc} onError={handleError} />;
|
|
17
29
|
};
|
|
30
|
+
|
|
18
31
|
export default ImageWithErrors;
|
|
@@ -67,9 +67,13 @@ import gdprPrivacyPanelConfig from 'design-comuni-plone-theme/config/volto-gdpr-
|
|
|
67
67
|
import { schemaListing } from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/schema.js';
|
|
68
68
|
|
|
69
69
|
import reducers from 'design-comuni-plone-theme/reducers';
|
|
70
|
+
import {
|
|
71
|
+
FALLBACK_IMAGE_SRC,
|
|
72
|
+
FALLBACK_IMAGE_SRC_MAX_W,
|
|
73
|
+
} from 'design-comuni-plone-theme/helpers/images';
|
|
70
74
|
|
|
71
|
-
const ReleaseLog = loadable(
|
|
72
|
-
|
|
75
|
+
const ReleaseLog = loadable(() =>
|
|
76
|
+
import('design-comuni-plone-theme/components/ReleaseLog/ReleaseLog'),
|
|
73
77
|
);
|
|
74
78
|
|
|
75
79
|
const messages = defineMessages({
|
|
@@ -287,6 +291,8 @@ export default function applyConfig(voltoConfig) {
|
|
|
287
291
|
markSpecialLinks: true, // se impostato a false, non marca con icona i link esterni
|
|
288
292
|
markFooterLinks: true, // se impostato a true, viene aggiunta un'icona ai link del footer per renderli riconoscibili
|
|
289
293
|
showContentDateInListingFor: ['Modulo', 'Documento'], // elenco dei content types per i quali mostrare la data di pubblicazione/modifica in listing
|
|
294
|
+
fallbackImageSrc: FALLBACK_IMAGE_SRC,
|
|
295
|
+
fallbackImageSrcMaxW: FALLBACK_IMAGE_SRC_MAX_W,
|
|
290
296
|
},
|
|
291
297
|
apiExpanders: [
|
|
292
298
|
...config.settings.apiExpanders,
|
|
@@ -196,10 +196,12 @@ class ContentsUploadModal extends Component {
|
|
|
196
196
|
// as per agid guidelines, files cannot be uploaded in modulistica folder inside ct servizio
|
|
197
197
|
// show restraint and hide upload button when page is called modulistica and when there's a restraint
|
|
198
198
|
// this is enough to identify this only case bc even if another page is called 'modulistica', it will have 'File'
|
|
199
|
-
// as addable type
|
|
199
|
+
// and "Modulo" as addable type
|
|
200
200
|
const showFileRestraint =
|
|
201
|
-
this.props.pathname.
|
|
202
|
-
!this.props.types.some(
|
|
201
|
+
getBaseUrl(this.props.pathname).match(/\/servizi\/.*\/modulistica\/?$/) &&
|
|
202
|
+
!this.props.types.some(
|
|
203
|
+
(type) => type.id === 'File' || type.id === 'Modulo',
|
|
204
|
+
);
|
|
203
205
|
|
|
204
206
|
return (
|
|
205
207
|
this.props.open && (
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
isResolveUID,
|
|
4
|
+
getSiteProperty,
|
|
5
|
+
} from 'design-comuni-plone-theme/helpers';
|
|
6
|
+
|
|
7
|
+
const FALLBACK_IMAGE_SRC =
|
|
8
|
+
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAMcCAMAAACo9Dz9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEZDRUU0QjREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEZDRUU0QzREQTIxMUU0ODAwMUVCOTYwMzA5MzE3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRkNFRTQ5NERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRkNFRTRBNERBMjExRTQ4MDAxRUI5NjAzMDkzMTc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D7rN8gAAAMZQTFRFvL7A5+jpuLm7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';
|
|
9
|
+
|
|
10
|
+
const FALLBACK_IMAGE_SRC_MAX_W = 200;
|
|
11
|
+
|
|
12
|
+
const getFallbackImageStyle = ({
|
|
13
|
+
src,
|
|
14
|
+
customFallbackSrc,
|
|
15
|
+
className,
|
|
16
|
+
sizes,
|
|
17
|
+
}) => {
|
|
18
|
+
const fallbackSrc = customFallbackSrc || getSiteProperty('fallbackImageSrc');
|
|
19
|
+
if (src === fallbackSrc) {
|
|
20
|
+
if (!className && sizes) return { maxWidth: sizes };
|
|
21
|
+
else if (!className && !sizes)
|
|
22
|
+
return { maxWidth: getSiteProperty('fallbackImageSrcMaxW') };
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
Hook per l'utilizzo di immagini con fallback per immagini rotte.
|
|
28
|
+
NB: il backend a volte torna ./resolveuid/xxxxx se non trova il brain
|
|
29
|
+
dell'immagine nella property per la src. Siamo tutti d'accordo a
|
|
30
|
+
classificarlo come immagine rotta in questo caso.
|
|
31
|
+
*/
|
|
32
|
+
const useFallbackImageSrc = ({
|
|
33
|
+
src,
|
|
34
|
+
customFallbackSrc = '',
|
|
35
|
+
className,
|
|
36
|
+
sizes,
|
|
37
|
+
}) => {
|
|
38
|
+
const [currentSrc, setCurrentSrc] = useState(
|
|
39
|
+
!isResolveUID(src)
|
|
40
|
+
? src
|
|
41
|
+
: customFallbackSrc || getSiteProperty('fallbackImageSrc'),
|
|
42
|
+
);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
setCurrentSrc(src); // Reset the source if props change
|
|
45
|
+
}, [src]);
|
|
46
|
+
|
|
47
|
+
const handleError = () => {
|
|
48
|
+
setCurrentSrc(getSiteProperty('fallbackImageSrc'));
|
|
49
|
+
};
|
|
50
|
+
return { currentSrc, handleError, getFallbackImageStyle };
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { FALLBACK_IMAGE_SRC, FALLBACK_IMAGE_SRC_MAX_W, useFallbackImageSrc };
|
package/src/helpers/index.js
CHANGED
|
@@ -54,5 +54,9 @@ export {
|
|
|
54
54
|
export { commonSearchBlockMessages } from 'design-comuni-plone-theme/helpers/Translations/searchBlockExtendedTranslations';
|
|
55
55
|
|
|
56
56
|
export { getComponentWithFallback } from 'design-comuni-plone-theme/helpers/registry';
|
|
57
|
-
export {
|
|
57
|
+
export {
|
|
58
|
+
useHomePath,
|
|
59
|
+
isResolveUID,
|
|
60
|
+
} from 'design-comuni-plone-theme/helpers/url';
|
|
58
61
|
export { usePaginatedItemsSection } from 'design-comuni-plone-theme/helpers/usePaginatedItemsSection.hook.ts';
|
|
62
|
+
export { useFallbackImageSrc } from 'design-comuni-plone-theme/helpers/images';
|
package/src/helpers/url.js
CHANGED
|
@@ -13,3 +13,10 @@ export const useHomePath = () => {
|
|
|
13
13
|
}, [locale]);
|
|
14
14
|
return path;
|
|
15
15
|
};
|
|
16
|
+
|
|
17
|
+
const RESOLVEUID_RE = /^[./]*resolve[Uu]id\/([^/]*)\/?(.*)$/;
|
|
18
|
+
|
|
19
|
+
export function isResolveUID(url) {
|
|
20
|
+
const match = url?.match(RESOLVEUID_RE);
|
|
21
|
+
return Boolean(match);
|
|
22
|
+
}
|
|
@@ -187,6 +187,16 @@
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
.block.image-text-block {
|
|
191
|
+
.image-text-card-wrapper {
|
|
192
|
+
page-break-inside: avoid;
|
|
193
|
+
|
|
194
|
+
h2 {
|
|
195
|
+
page-break-after: avoid;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
190
200
|
.block.accordion {
|
|
191
201
|
.public-ui {
|
|
192
202
|
width: 100%;
|
|
@@ -219,6 +229,7 @@
|
|
|
219
229
|
}
|
|
220
230
|
}
|
|
221
231
|
}
|
|
232
|
+
}
|
|
222
233
|
|
|
223
234
|
.block.numbersBlock {
|
|
224
235
|
color: #000;
|
|
@@ -344,6 +355,7 @@
|
|
|
344
355
|
}
|
|
345
356
|
}
|
|
346
357
|
|
|
358
|
+
// listing variations
|
|
347
359
|
div.block.listing {
|
|
348
360
|
page-break-inside: avoid;
|
|
349
361
|
|