io-sanita-theme 2.6.0 → 2.8.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/RELEASE.md +7 -1
  3. package/locales/de/LC_MESSAGES/volto.po +10 -0
  4. package/locales/en/LC_MESSAGES/volto.po +10 -0
  5. package/locales/es/LC_MESSAGES/volto.po +10 -0
  6. package/locales/fr/LC_MESSAGES/volto.po +10 -0
  7. package/locales/it/LC_MESSAGES/volto.po +10 -0
  8. package/locales/volto.pot +11 -1
  9. package/package.json +1 -1
  10. package/src/components/Blocks/Accordion/accordion.scss +2 -2
  11. package/src/components/Blocks/Alert/alert.scss +4 -4
  12. package/src/components/Blocks/Icons/icons.scss +2 -2
  13. package/src/components/Blocks/Listing/AttachmentCard/AttachmentCardTemplate.jsx +56 -0
  14. package/src/components/Blocks/Listing/Skeletons/AttachmentCardTemplateSkeleton.jsx +49 -0
  15. package/src/components/Blocks/SearchBandi/Body.jsx +4 -2
  16. package/src/components/Blocks/index.js +2 -0
  17. package/src/components/BrandWrapper/BrandWrapper.jsx +3 -3
  18. package/src/components/Breadcrumbs/Breadcrumbs.jsx +3 -1
  19. package/src/components/Cards/CardFile/CardFile.jsx +7 -3
  20. package/src/components/Search/Search.jsx +1 -0
  21. package/src/components/Widgets/SearchCheckbox/SearchCheckbox.jsx +1 -1
  22. package/src/components/index.js +1 -1
  23. package/src/components/layout/Footer/FooterInfos.jsx +3 -2
  24. package/src/components/layout/Footer/FooterMain.jsx +3 -1
  25. package/src/components/layout/Footer/FooterSmall.jsx +5 -3
  26. package/src/components/layout/Footer/{SubsiteFooter.jsx → SubsiteFooter/SubsiteFooter.jsx} +1 -0
  27. package/src/components/layout/Footer/SubsiteFooter/subsite-footer.scss +23 -0
  28. package/src/components/layout/Header/HeaderSlim/HeaderSlim.jsx +3 -2
  29. package/src/components/layout/Header/HeaderSlim/ParentSiteMenu.jsx +3 -2
  30. package/src/components/layout/Navigation/MegaMenu/MegaMenu.jsx +1 -1
  31. package/src/components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget.jsx +71 -0
  32. package/src/config/blocks/listing/listingVariations.js +17 -0
  33. package/src/config/loadables.js +2 -1
  34. package/src/config/subsites/index.js +28 -0
  35. package/src/config/subsites/light-blue.jsx +1 -0
  36. package/src/config/subsites/light-pink.jsx +1 -0
  37. package/src/config/subsites/light-teal.jsx +1 -0
  38. package/src/config/subsites/light-yellow.jsx +1 -0
  39. package/src/config/subsites/magenta.jsx +1 -0
  40. package/src/config/subsites/teal.jsx +1 -0
  41. package/src/config/subsites/white.jsx +1 -0
  42. package/src/config/subsites/yellow.jsx +1 -0
  43. package/src/config/widgets/widgets.js +7 -0
  44. package/src/helpers/RichText/RichTextSection.jsx +1 -4
  45. package/src/helpers/index.js +3 -1
  46. package/src/helpers/url.js +16 -0
  47. package/src/theme/_cms-ui.scss +7 -2
  48. package/src/theme/_css_variables.scss +1 -0
  49. package/src/theme/_variables.scss +2 -0
  50. package/src/theme/bootstrap-italia/custom/_buttons.scss +2 -2
  51. package/src/theme/io-sanita/_main.scss +8 -3
  52. package/src/theme/io-sanita/components/blocks/_skeleton.scss +0 -11
  53. package/src/theme/io-sanita/components/layout/_footer.scss +2 -4
  54. package/src/theme/io-sanita/subsites/_all_variables.scss +12 -0
  55. package/src/theme/io-sanita/subsites/_common.scss +9 -18
  56. package/src/theme/io-sanita/subsites/_mixin.scss +253 -0
  57. package/src/theme/io-sanita/subsites/bootstrap-italia/_brand-text.scss +58 -0
  58. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_buttons.scss +123 -0
  59. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_card.scss +36 -0
  60. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_chips.scss +66 -0
  61. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_dropdown.scss +17 -0
  62. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_header.scss +48 -0
  63. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_headercenter.scss +121 -0
  64. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_headernavbar.scss +25 -0
  65. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_headerslim.scss +48 -0
  66. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_linklist.scss +48 -0
  67. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_megamenu.scss +53 -0
  68. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_nav.scss +24 -0
  69. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_navigation.scss +168 -0
  70. package/src/theme/io-sanita/subsites/bootstrap-italia/custom/_navscroll.scss +71 -0
  71. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_calendar.scss +12 -0
  72. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_cardWithImageAndInEvidence.scss +25 -0
  73. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_cta.scss +11 -0
  74. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_form.scss +49 -0
  75. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_iconBlock.scss +14 -0
  76. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_ribbonCardTemplate.scss +18 -0
  77. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_squaresImageTemplateAndSlideUp.scss +52 -0
  78. package/src/theme/io-sanita/subsites/io-sanita-theme/Blocks/_tableOfContents.scss +17 -0
  79. package/src/theme/io-sanita/subsites/io-sanita-theme/Components/_cards.scss +11 -0
  80. package/src/theme/io-sanita/subsites/io-sanita-theme/Components/_subsiteFooter.scss +37 -0
  81. package/src/theme/io-sanita/subsites/io-sanita-theme/Components/_subsiteHeader.scss +37 -0
  82. package/src/theme/io-sanita/subsites/io-sanita-theme/Views/_common.scss +107 -0
  83. package/src/theme/io-sanita/subsites/io-sanita-theme/Widgets/reactSelect.scss +14 -0
  84. package/src/theme/io-sanita/subsites/io-sanita-theme/_common.scss +252 -0
  85. package/src/theme/io-sanita/subsites/light-blue.scss +17 -0
  86. package/src/theme/io-sanita/subsites/light-pink.scss +18 -0
  87. package/src/theme/io-sanita/subsites/light-teal.scss +19 -0
  88. package/src/theme/io-sanita/subsites/light-yellow.scss +18 -0
  89. package/src/theme/io-sanita/subsites/magenta.scss +16 -0
  90. package/src/theme/io-sanita/subsites/teal.scss +14 -0
  91. package/src/theme/io-sanita/subsites/templates/_light-pink.scss +21 -0
  92. package/src/theme/io-sanita/subsites/templates/_light-teal.scss +21 -0
  93. package/src/theme/io-sanita/subsites/templates/_light-yellow.scss +21 -0
  94. package/src/theme/io-sanita/subsites/templates/_white.scss +109 -0
  95. package/src/theme/io-sanita/subsites/white.scss +18 -0
  96. package/src/theme/io-sanita/subsites/yellow.scss +17 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.8.0](https://github.com/RedTurtle/io-sanita-theme/compare/2.7.0...2.8.0) (2025-03-19)
4
+
5
+ ### Features
6
+
7
+ * added new listing variation attachments ([#73](https://github.com/RedTurtle/io-sanita-theme/issues/73)) ([2100d3c](https://github.com/RedTurtle/io-sanita-theme/commit/2100d3c65c2368d15fcae6c259c9effbf5600ffa))
8
+
9
+ ### Bug Fixes
10
+
11
+ * a11y for menuItems ([c32015c](https://github.com/RedTurtle/io-sanita-theme/commit/c32015ce6df944f8228d57691411e194a852c230))
12
+ * avoid sass deprecation warning on saturation ([ed6963b](https://github.com/RedTurtle/io-sanita-theme/commit/ed6963b80fa562b9f70695aa4db34c6a7f249d99))
13
+ * subsites css variables ([005b669](https://github.com/RedTurtle/io-sanita-theme/commit/005b669273532f17880009a60d9051118830cd57))
14
+
15
+ ### Maintenance
16
+
17
+ * preparing release 2.8.0 ([79c9414](https://github.com/RedTurtle/io-sanita-theme/commit/79c9414aea0403ae18a329ac7e3debaf0e657790))
18
+
19
+ ## [2.7.0](https://github.com/RedTurtle/io-sanita-theme/compare/2.6.0...2.7.0) (2025-03-12)
20
+
21
+ ### Features
22
+
23
+ * Subsites styles ([#72](https://github.com/RedTurtle/io-sanita-theme/issues/72)) ([813af14](https://github.com/RedTurtle/io-sanita-theme/commit/813af14ea6e8ea1a46b96ddf8c61c925147d6088))
24
+
25
+ ### Maintenance
26
+
27
+ * locales ([f8e4092](https://github.com/RedTurtle/io-sanita-theme/commit/f8e4092efe0edef933fe3a8c785b994a5047670b))
28
+
3
29
  ## [2.6.0](https://github.com/RedTurtle/io-sanita-theme/compare/2.5.3...2.6.0) (2025-03-11)
4
30
 
5
31
  ### Features
package/RELEASE.md CHANGED
@@ -41,7 +41,13 @@
41
41
  - ...
42
42
  -->
43
43
 
44
- ## Versione x.x.x (x/x/x)
44
+ ## Versione 2.8.0 (19/03/2025)
45
+
46
+ ### Novità
47
+
48
+ - Aggiunta variazione del blocco listing Allegati
49
+
50
+ ## Versione 2.6.0 (11/03/2025)
45
51
 
46
52
  ### Novità
47
53
 
@@ -1493,6 +1493,11 @@ msgstr ""
1493
1493
  msgid "documento_servizio_riferimento"
1494
1494
  msgstr ""
1495
1495
 
1496
+ #. Default: "Fatto"
1497
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1498
+ msgid "done_edit_social_links"
1499
+ msgstr ""
1500
+
1496
1501
  #. Default: "Navigazione elementi slider"
1497
1502
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1498
1503
  msgid "dots"
@@ -1513,6 +1518,11 @@ msgstr ""
1513
1518
  msgid "dropdownmenu-close-menu-button"
1514
1519
  msgstr ""
1515
1520
 
1521
+ #. Default: "Modifica i social"
1522
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1523
+ msgid "edit_social_links"
1524
+ msgstr ""
1525
+
1516
1526
  #. Default: "Email"
1517
1527
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1518
1528
  msgid "email"
@@ -1488,6 +1488,11 @@ msgstr "Responsabile"
1488
1488
  msgid "documento_servizio_riferimento"
1489
1489
  msgstr "Referral service"
1490
1490
 
1491
+ #. Default: "Fatto"
1492
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1493
+ msgid "done_edit_social_links"
1494
+ msgstr ""
1495
+
1491
1496
  #. Default: "Navigazione elementi slider"
1492
1497
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1493
1498
  msgid "dots"
@@ -1508,6 +1513,11 @@ msgstr "Open menu"
1508
1513
  msgid "dropdownmenu-close-menu-button"
1509
1514
  msgstr "Close menu"
1510
1515
 
1516
+ #. Default: "Modifica i social"
1517
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1518
+ msgid "edit_social_links"
1519
+ msgstr ""
1520
+
1511
1521
  #. Default: "Email"
1512
1522
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1513
1523
  msgid "email"
@@ -1495,6 +1495,11 @@ msgstr ""
1495
1495
  msgid "documento_servizio_riferimento"
1496
1496
  msgstr ""
1497
1497
 
1498
+ #. Default: "Fatto"
1499
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1500
+ msgid "done_edit_social_links"
1501
+ msgstr ""
1502
+
1498
1503
  #. Default: "Navigazione elementi slider"
1499
1504
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1500
1505
  msgid "dots"
@@ -1515,6 +1520,11 @@ msgstr ""
1515
1520
  msgid "dropdownmenu-close-menu-button"
1516
1521
  msgstr "Cerrar menú"
1517
1522
 
1523
+ #. Default: "Modifica i social"
1524
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1525
+ msgid "edit_social_links"
1526
+ msgstr ""
1527
+
1518
1528
  #. Default: "Email"
1519
1529
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1520
1530
  msgid "email"
@@ -1495,6 +1495,11 @@ msgstr ""
1495
1495
  msgid "documento_servizio_riferimento"
1496
1496
  msgstr ""
1497
1497
 
1498
+ #. Default: "Fatto"
1499
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1500
+ msgid "done_edit_social_links"
1501
+ msgstr ""
1502
+
1498
1503
  #. Default: "Navigazione elementi slider"
1499
1504
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1500
1505
  msgid "dots"
@@ -1515,6 +1520,11 @@ msgstr ""
1515
1520
  msgid "dropdownmenu-close-menu-button"
1516
1521
  msgstr "Fermer le menu"
1517
1522
 
1523
+ #. Default: "Modifica i social"
1524
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1525
+ msgid "edit_social_links"
1526
+ msgstr ""
1527
+
1518
1528
  #. Default: "Email"
1519
1529
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1520
1530
  msgid "email"
@@ -1488,6 +1488,11 @@ msgstr ""
1488
1488
  msgid "documento_servizio_riferimento"
1489
1489
  msgstr ""
1490
1490
 
1491
+ #. Default: "Fatto"
1492
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1493
+ msgid "done_edit_social_links"
1494
+ msgstr ""
1495
+
1491
1496
  #. Default: "Navigazione elementi slider"
1492
1497
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1493
1498
  msgid "dots"
@@ -1508,6 +1513,11 @@ msgstr ""
1508
1513
  msgid "dropdownmenu-close-menu-button"
1509
1514
  msgstr "Chiudi il menu"
1510
1515
 
1516
+ #. Default: "Modifica i social"
1517
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1518
+ msgid "edit_social_links"
1519
+ msgstr ""
1520
+
1511
1521
  #. Default: "Email"
1512
1522
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1513
1523
  msgid "email"
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-03-04T14:56:52.091Z\n"
4
+ "POT-Creation-Date: 2025-03-12T11:53:17.365Z\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
  "Content-Type: text/plain; charset=utf-8\n"
@@ -1490,6 +1490,11 @@ msgstr ""
1490
1490
  msgid "documento_servizio_riferimento"
1491
1491
  msgstr ""
1492
1492
 
1493
+ #. Default: "Fatto"
1494
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1495
+ msgid "done_edit_social_links"
1496
+ msgstr ""
1497
+
1493
1498
  #. Default: "Navigazione elementi slider"
1494
1499
  #: components/Blocks/Listing/Carousel/CarouselTemplate
1495
1500
  msgid "dots"
@@ -1510,6 +1515,11 @@ msgstr ""
1510
1515
  msgid "dropdownmenu-close-menu-button"
1511
1516
  msgstr ""
1512
1517
 
1518
+ #. Default: "Modifica i social"
1519
+ #: components/manage/Widgets/SubsiteSocialLinksWidget/SubsiteSocialLinksWidget
1520
+ msgid "edit_social_links"
1521
+ msgstr ""
1522
+
1513
1523
  #. Default: "Email"
1514
1524
  #: components/View/PuntoDiContatto/PuntoDiContattoContatti
1515
1525
  msgid "email"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "io-sanita-theme",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "description": "io-sanita-theme: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "license": "MIT",
@@ -89,7 +89,7 @@ $accordion-icon-color: #7fb2e5;
89
89
  button {
90
90
  display: flex;
91
91
  align-items: center;
92
- color: var(--bs-primary);
92
+ color: var(--bs-link-color);
93
93
  font-size: 1.2rem;
94
94
  font-weight: bold;
95
95
  text-align: left;
@@ -108,7 +108,7 @@ $accordion-icon-color: #7fb2e5;
108
108
  align-items: center;
109
109
 
110
110
  .title {
111
- color: var(--bs-primary);
111
+ color: var(--bs-link-color);
112
112
  }
113
113
 
114
114
  button {
@@ -15,7 +15,7 @@
15
15
  h5,
16
16
  h6,
17
17
  a {
18
- color: $alert-danger-text;
18
+ color: $alert-danger-text !important;
19
19
  }
20
20
  }
21
21
 
@@ -23,7 +23,7 @@
23
23
  &,
24
24
  .cms-ui &.ui.button,
25
25
  .cms-ui &.ui.button.active {
26
- background-color: $alert-warning;
26
+ background-color: $alert-warning !important;
27
27
  }
28
28
  &,
29
29
  h1,
@@ -33,7 +33,7 @@
33
33
  h5,
34
34
  h6,
35
35
  a {
36
- color: $alert-warning-text;
36
+ color: $alert-warning-text !important;
37
37
  }
38
38
  }
39
39
 
@@ -51,7 +51,7 @@
51
51
  h5,
52
52
  h6,
53
53
  a {
54
- color: $alert-info-text;
54
+ color: $alert-info-text !important;
55
55
  }
56
56
  }
57
57
 
@@ -64,12 +64,12 @@
64
64
  &.bg-primary-lightest:after {
65
65
  background-color: rgb(
66
66
  from var(--primary-lightest) r g b / 85%
67
- ); //rgba( var(--bs-primary), 0.85 ); // serve per fare la trasparenza sull'immagine di sfondo.
67
+ ); // serve per fare la trasparenza sull'immagine di sfondo.
68
68
  }
69
69
  &.bg-primary-dark:after {
70
70
  background-color: rgb(
71
71
  from var(--primary-dark) r g b / 85%
72
- ); // background-color: rgba($secondary, 0.85);; // serve per fare la trasparenza sull'immagine di sfondo.
72
+ ); // serve per fare la trasparenza sull'immagine di sfondo.
73
73
  }
74
74
  &.transparent:after {
75
75
  background-color: none;
@@ -0,0 +1,56 @@
1
+ /* Variation Card Allegati of Listing block */
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink';
5
+ import { Row, Col } from 'design-react-kit';
6
+ import { ListingContainer } from 'io-sanita-theme/components/Blocks';
7
+ import { LinkMore } from 'io-sanita-theme/components';
8
+ import { CardFile } from 'io-sanita-theme/components';
9
+
10
+ import AttachmentCardTemplateSkeleton from '../Skeletons/AttachmentCardTemplateSkeleton';
11
+
12
+ const AttachmentCardTemplate = (props) => {
13
+ const {
14
+ items,
15
+ title,
16
+ isEditMode,
17
+ linkAlign,
18
+ linkTitle,
19
+ linkHref,
20
+ show_block_bg,
21
+ show_pdf_preview,
22
+ linkmore_id_lighthouse,
23
+ } = props;
24
+ return (
25
+ <div className="attachment-card-template">
26
+ <ListingContainer data={props} isEditMode={isEditMode}>
27
+ {items.length > 0 && (
28
+ <Row className="attachments">
29
+ {items.map((item, _i) => (
30
+ <Col lg={4} className="py-lg-2" key={item['@id']}>
31
+ <CardFile item={item} showPDFPreview={show_pdf_preview} />
32
+ </Col>
33
+ ))}
34
+ </Row>
35
+ )}
36
+ <LinkMore
37
+ title={linkTitle}
38
+ href={linkHref}
39
+ linkAlign={linkAlign}
40
+ className="my-4"
41
+ linkmoreIdLighthouse={linkmore_id_lighthouse}
42
+ />
43
+ </ListingContainer>
44
+ </div>
45
+ );
46
+ };
47
+
48
+ AttachmentCardTemplate.propTypes = {
49
+ items: PropTypes.arrayOf(PropTypes.any).isRequired,
50
+ linkTitle: PropTypes.any,
51
+ linkHref: PropTypes.any,
52
+ isEditMode: PropTypes.bool,
53
+ title: PropTypes.string,
54
+ };
55
+
56
+ export default AttachmentCardTemplate;
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Row, Col, Card, CardBody, CardTitle } from 'design-react-kit';
4
+ import { ListingContainer } from 'io-sanita-theme/components/Blocks';
5
+
6
+ const AttachmentCardTemplateSkeleton = (props) => {
7
+ const { isEditMode, title, linkHref, show_block_bg, show_pdf_preview } =
8
+ props;
9
+ return (
10
+ <div className="attachment-card-skeleton-template">
11
+ <ListingContainer data={props} isEditMode={isEditMode}>
12
+ <div className="skeleton-template">
13
+ {title && (
14
+ <Row>
15
+ <Col>
16
+ <h2 className="mb-4">{title}</h2>
17
+ </Col>
18
+ </Row>
19
+ )}
20
+
21
+ <Row>
22
+ {[0, 1, 2].map((i) => (
23
+ <Col lg={4}>
24
+ <Card
25
+ className="align-items-top rounded shadow no-after"
26
+ noWrapper
27
+ teaser
28
+ key={i}
29
+ >
30
+ <CardBody className="pb-5">
31
+ <CardTitle tag="h3"> </CardTitle>
32
+ </CardBody>
33
+ </Card>
34
+ </Col>
35
+ ))}
36
+ </Row>
37
+ </div>
38
+ </ListingContainer>
39
+ </div>
40
+ );
41
+ };
42
+
43
+ AttachmentCardTemplateSkeleton.propTypes = {
44
+ linkHref: PropTypes.any,
45
+ isEditMode: PropTypes.bool,
46
+ title: PropTypes.string,
47
+ };
48
+
49
+ export default AttachmentCardTemplateSkeleton;
@@ -10,7 +10,7 @@ import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
10
10
  import { BandiTemplate } from 'io-sanita-theme/components/Blocks';
11
11
  import { Pagination } from 'io-sanita-theme/components';
12
12
  import { resetQuerystringResults } from 'io-sanita-theme/actions';
13
- import { scrollIntoView } from 'io-sanita-theme/helpers';
13
+ import { scrollIntoView, useHomePath } from 'io-sanita-theme/helpers';
14
14
 
15
15
  const messages = defineMessages({
16
16
  find: {
@@ -30,6 +30,7 @@ const messages = defineMessages({
30
30
  const Body = ({ data, id, inEditMode, path, onChangeBlock, blocksConfig }) => {
31
31
  const intl = useIntl();
32
32
  const b_size = 6;
33
+ const homepath = useHomePath();
33
34
 
34
35
  moment.locale(intl.locale);
35
36
 
@@ -128,7 +129,8 @@ const Body = ({ data, id, inEditMode, path, onChangeBlock, blocksConfig }) => {
128
129
  return newState;
129
130
  };
130
131
 
131
- const pathSearch = data?.location?.length > 0 ? data.location[0]['@id'] : '/';
132
+ const pathSearch =
133
+ data?.location?.length > 0 ? data.location[0]['@id'] : homepath;
132
134
  const FiltersConfigFN = blocksConfig['searchBandi'].filtersConfig;
133
135
  const filtersConfig = FiltersConfigFN
134
136
  ? FiltersConfigFN(null, pathSearch)
@@ -94,6 +94,7 @@ export MapTemplate from 'io-sanita-theme/components/Blocks/Listing/Map/MapTempla
94
94
  export SimpleCardTemplate from 'io-sanita-theme/components/Blocks/Listing/SimpleCard/SimpleCardTemplate';
95
95
  export SimpleListTemplate from 'io-sanita-theme/components/Blocks/Listing/SimpleList/SimpleListTemplate';
96
96
  export SmallBlockLinksTemplate from 'io-sanita-theme/components/Blocks/Listing/SmallBlockLinks/SmallBlockLinksTemplate';
97
+ export AttachmentCardTemplate from 'io-sanita-theme/components/Blocks/Listing/AttachmentCard/AttachmentCardTemplate';
97
98
 
98
99
  /*Skeleton*/
99
100
  export BandiTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listing/Skeletons/BandiTemplateSkeleton';
@@ -106,6 +107,7 @@ export InEvidenceTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listin
106
107
  export MapTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listing/Skeletons/MapTemplateSkeleton';
107
108
  export SimpleListTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listing/Skeletons/SimpleListTemplateSkeleton';
108
109
  export SmallBlockLinksTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listing/Skeletons/SmallBlockLinksTemplateSkeleton';
110
+ export AttachmentCardTemplateSkeleton from 'io-sanita-theme/components/Blocks/Listing/Skeletons/AttachmentCardTemplateSkeleton';
109
111
 
110
112
  /*Rss block (as listing)*/
111
113
  export CardWithoutImageRssTemplate from 'io-sanita-theme/components/Blocks/Rss/CardWithoutImageRssTemplate';
@@ -4,7 +4,7 @@ import { useSelector } from 'react-redux';
4
4
  import { useIntl, defineMessages } from 'react-intl';
5
5
  import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
6
6
  import UniversalLink from '@plone/volto/components/manage/UniversalLink/UniversalLink';
7
- import { getSiteProperty } from 'io-sanita-theme/helpers';
7
+ import { getSiteProperty, useHomePath } from 'io-sanita-theme/helpers';
8
8
  import { Logo, BrandText } from 'io-sanita-theme/components';
9
9
 
10
10
  const messages = defineMessages({
@@ -20,7 +20,7 @@ const messages = defineMessages({
20
20
 
21
21
  const BrandWrapper = ({ mobile = false, setCollapseOpen }) => {
22
22
  const subsite = useSelector((state) => state.subsite?.data);
23
-
23
+ const homepath = useHomePath();
24
24
  const intl = useIntl();
25
25
 
26
26
  let wrapperAttrs = {};
@@ -34,7 +34,7 @@ const BrandWrapper = ({ mobile = false, setCollapseOpen }) => {
34
34
  return (
35
35
  <div className="it-brand-wrapper" {...wrapperAttrs}>
36
36
  <UniversalLink
37
- href={subsite?.['@id'] ? flattenToAppURL(subsite['@id']) : '/'}
37
+ href={subsite?.['@id'] ? flattenToAppURL(subsite['@id']) : homepath}
38
38
  title={intl.formatMessage(messages.homepage)}
39
39
  {...linkAttrs}
40
40
  >
@@ -20,6 +20,7 @@ import UniversalLink from '@plone/volto/components/manage/UniversalLink/Universa
20
20
  import { Row, Col, BreadcrumbItem } from 'design-react-kit';
21
21
  import GoogleBreadcrumbs from 'io-sanita-theme/components/Breadcrumbs/GoogleBreadcrumbs';
22
22
  import config from '@plone/volto/registry';
23
+ import { useHomePath } from 'io-sanita-theme/helpers';
23
24
 
24
25
  const messages = defineMessages({
25
26
  home: {
@@ -36,6 +37,7 @@ const Breadcrumbs = ({ pathname, match }) => {
36
37
  const intl = useIntl();
37
38
  const dispatch = useDispatch();
38
39
  const location = useLocation();
40
+ const homepath = useHomePath();
39
41
 
40
42
  let items =
41
43
  useSelector((state) => {
@@ -142,7 +144,7 @@ const Breadcrumbs = ({ pathname, match }) => {
142
144
  >
143
145
  <ol className="breadcrumb" data-element="breadcrumb">
144
146
  <BreadcrumbItem tag="li">
145
- <UniversalLink href="/">
147
+ <UniversalLink href={homepath}>
146
148
  {intl.formatMessage(messages.home)}
147
149
  </UniversalLink>
148
150
  <span className="separator">/</span>
@@ -56,6 +56,7 @@ export const CardFile = ({
56
56
  file = null,
57
57
  titleDataElement,
58
58
  showModified = false,
59
+ showPDFPreview = false,
59
60
  }) => {
60
61
  const intl = useIntl();
61
62
  let _item = null;
@@ -82,11 +83,14 @@ export const CardFile = ({
82
83
  if (item.file) {
83
84
  _item = item.file;
84
85
  }
85
- if (item['@id'].indexOf('/@@download/') < 0) {
86
+ if (item['@id'].indexOf('/@@download/') < 0 && !showPDFPreview) {
86
87
  _item['@id'] = `${item['@id']}/@@download/file`;
87
88
  } else {
88
89
  _item['@id'] = item['@id'];
89
90
  }
91
+ if (showPDFPreview) {
92
+ _item['@id'] = `${item['@id']}/@@display-file/file`;
93
+ }
90
94
  break;
91
95
  case 'Image':
92
96
  if (item.image) {
@@ -135,12 +139,12 @@ export const CardFile = ({
135
139
  <CardBody>
136
140
  <div className={cx('card-file-content', _item['@type'])}>
137
141
  <CardTitle tag={titleTag} className="d-flex mb-0 align-items-center">
138
- {!file ? (
142
+ {!file || showPDFPreview ? (
139
143
  <UniversalLink
140
144
  item={!isEditMode ? _item : null}
141
145
  href={isEditMode ? '#' : ''}
142
146
  className="card-title-link flex-grow-1 pe-4"
143
- target={_item['@type'] === 'Link' ? '_blank' : '_self'}
147
+ target={_item['@type'] === 'Link' || showPDFPreview ? '_blank' : '_self'}
144
148
  rel={_item['@type'] === 'Link' ? 'noopener noreferrer' : ''}
145
149
  data-element={titleDataElement}
146
150
  >
@@ -20,6 +20,7 @@ import {
20
20
 
21
21
  import Helmet from '@plone/volto/helpers/Helmet/Helmet';
22
22
  import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
23
+ import { resetSubsite } from 'volto-subsites';
23
24
  import { getSearchFilters, getSearchResults } from 'io-sanita-theme/actions';
24
25
  import {
25
26
  SearchBar,
@@ -148,7 +148,7 @@ const SearchCheckbox = ({
148
148
  {/* NUMBER OF CHECKBOX SELECTED */}
149
149
  {showActiveOptions && (
150
150
  <span
151
- className={cx('badge bg-secondary ms-3', {
151
+ className={cx('badge bg-primary ms-3', {
152
152
  'visually-hidden': activeOptions === 0,
153
153
  })}
154
154
  aria-live="polite"
@@ -50,7 +50,7 @@ export FooterInfos from 'io-sanita-theme/components/layout/Footer/FooterInfos';
50
50
  export FooterNewsletterSubscribe from 'io-sanita-theme/components/layout/Footer/FooterInfos';
51
51
  export FooterSocials from 'io-sanita-theme/components/layout/Footer/FooterSocials';
52
52
  export FooterSmall from 'io-sanita-theme/components/layout/Footer/FooterSmall';
53
- export SubsiteFooter from 'io-sanita-theme/components/layout/Footer/SubsiteFooter';
53
+ export SubsiteFooter from 'io-sanita-theme/components/layout/Footer/SubsiteFooter/SubsiteFooter';
54
54
 
55
55
  //Menu
56
56
  export CollapseNavigation from 'io-sanita-theme/components/layout/Navigation/CollapseNavigation';
@@ -19,7 +19,7 @@ import {
19
19
  FooterNewsletterSubscribe,
20
20
  FooterSocials,
21
21
  } from 'io-sanita-theme/components';
22
- import { richTextHasContent } from 'io-sanita-theme/helpers';
22
+ import { richTextHasContent, useHomePath } from 'io-sanita-theme/helpers';
23
23
 
24
24
  import { fromHtml } from 'volto-slate-italia/config/Slate/utils';
25
25
 
@@ -35,6 +35,7 @@ const FooterInfos = () => {
35
35
  const N_COLUMNS = 3;
36
36
  const location = useLocation();
37
37
  const dispatch = useDispatch();
38
+ const homepath = useHomePath();
38
39
 
39
40
  const req = useSelector((state) => state.editableFooterColumns);
40
41
  const footerConfiguration = useSelector(
@@ -50,7 +51,7 @@ const FooterInfos = () => {
50
51
  //filter rootpaths
51
52
  let footerColumns = getItemsByPath(
52
53
  footerConfiguration,
53
- location?.pathname?.length ? location.pathname : '/',
54
+ location?.pathname?.length ? location.pathname : homepath,
54
55
  ).filter((c) => c.visible);
55
56
 
56
57
  footerColumns.forEach((column) => {
@@ -13,6 +13,7 @@ import {
13
13
  LogoFooter,
14
14
  BrandTextFooter,
15
15
  } from 'io-sanita-theme/components/';
16
+ import { useHomePath } from 'io-sanita-theme/helpers';
16
17
 
17
18
  import { FooterTop } from 'volto-editablefooter';
18
19
 
@@ -24,6 +25,7 @@ import { FooterTop } from 'volto-editablefooter';
24
25
  const FooterMain = () => {
25
26
  const footerTopContent = FooterTop();
26
27
  const footerNavigation = FooterNavigation();
28
+ const homepath = useHomePath();
27
29
  return (
28
30
  <div className="it-footer-main">
29
31
  <Container tag="div">
@@ -32,7 +34,7 @@ const FooterMain = () => {
32
34
  <Col sm={12} tag="div" widths={['xs', 'sm', 'md', 'lg', 'xl']}>
33
35
  <div className="it-brand-wrapper">
34
36
  {footerTopContent ?? (
35
- <UniversalLink href="/">
37
+ <UniversalLink href={homepath}>
36
38
  <LogoFooter />
37
39
  <BrandTextFooter />
38
40
  </UniversalLink>
@@ -15,7 +15,7 @@ import { displayBanner } from 'volto-gdpr-privacy';
15
15
 
16
16
  import UniversalLink from '@plone/volto/components/manage/UniversalLink/UniversalLink';
17
17
  import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
18
- import { getSiteProperty } from 'io-sanita-theme/helpers';
18
+ import { getSiteProperty, useHomePath } from 'io-sanita-theme/helpers';
19
19
 
20
20
  const messages = defineMessages({
21
21
  goToPage: {
@@ -37,7 +37,7 @@ const FooterSmall = () => {
37
37
  const intl = useIntl();
38
38
  const pathname = useLocation().pathname;
39
39
  const dispatch = useDispatch();
40
-
40
+ const homepath = useHomePath();
41
41
  const subFooter = useSelector((state) => state.subFooter?.result);
42
42
  const subFooterItems = getItemsByPath(subFooter, pathname)?.filter(
43
43
  (item) => item.visible,
@@ -56,7 +56,9 @@ const FooterSmall = () => {
56
56
  {subFooterItems?.length > 0 &&
57
57
  subFooterItems.map((item, index) => {
58
58
  let url =
59
- item.href || flattenToAppURL(item.linkUrl?.[0]?.['@id']) || '/';
59
+ item.href ||
60
+ flattenToAppURL(item.linkUrl?.[0]?.['@id']) ||
61
+ homepath;
60
62
  return (
61
63
  <li
62
64
  className={cx('list-inline-item', {
@@ -9,6 +9,7 @@ import { useLocation } from 'react-router-dom';
9
9
  import { isCmsUi } from '@plone/volto/helpers/Url/Url';
10
10
  import { flattenHTMLToAppURL } from '@plone/volto/helpers/Url/Url';
11
11
  import { richTextHasContent } from 'io-sanita-theme/helpers';
12
+ import './subsite-footer.scss';
12
13
 
13
14
  const SubsiteFooter = () => {
14
15
  const location = useLocation();