design-comuni-plone-theme 8.4.5 → 8.5.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/CHANGELOG.md +29 -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 +1 -1
- package/publiccode.yml +3 -2
- package/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx +3 -1
- package/src/components/ItaliaTheme/Blocks/VideoGallery/Body.jsx +49 -3
- package/src/components/ItaliaTheme/Blocks/VideoGallery/Edit.jsx +7 -5
- package/src/components/ItaliaTheme/LoginAgid/LoginAgid.jsx +9 -2
- package/src/components/ItaliaTheme/Search/Search.jsx +76 -67
- package/src/components/ItaliaTheme/Unauthorized/Unauthorized.jsx +9 -6
- package/src/components/ItaliaTheme/View/Commons/OfficeCard.jsx +4 -2
- package/src/components/ItaliaTheme/View/PersonaView/PersonaRuolo.jsx +46 -14
- package/src/components/ItaliaTheme/View/__tests__/PersonaView.test.jsx +938 -928
- package/src/customizations/volto/components/manage/Blocks/Listing/withQuerystringResults.jsx +8 -3
- package/src/theme/ItaliaTheme/Blocks/_calendar.scss +14 -26
- package/src/theme/ItaliaTheme/Blocks/_photogallerytemplate.scss +0 -1
- package/src/theme/ItaliaTheme/Blocks/_sliderTemplate.scss +4 -52
- package/src/theme/ItaliaTheme/Blocks/_videoGallery.scss +26 -3
- package/src/theme/ItaliaTheme/Views/_slider.scss +58 -6
- package/src/theme/extras/_search.scss +6 -0
- /package/src/customizations/volto/components/theme/View/{View.jsx → disabled_View.jsx} +0 -0
- /package/src/customizations/volto/helpers/Api/{Api.jsx → disabled_Api.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [8.5.0](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v8.4.6...v8.5.0) (2023-09-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* added pec to office card info ([#312](https://github.com/RedTurtle/design-comuni-plone-theme/issues/312)) ([a555954](https://github.com/RedTurtle/design-comuni-plone-theme/commit/a555954bbd482f27c711ac314aeda45e01537b06))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* fixed videogallery template block and standardized slider styles ([#301](https://github.com/RedTurtle/design-comuni-plone-theme/issues/301)) ([9abe515](https://github.com/RedTurtle/design-comuni-plone-theme/commit/9abe51584c631a75c6145944f8a14a0c187dd625))
|
|
14
|
+
* incorrect logic for determining if search is ongoing, less layout shifts ([#313](https://github.com/RedTurtle/design-comuni-plone-theme/issues/313)) ([69bc749](https://github.com/RedTurtle/design-comuni-plone-theme/commit/69bc74963760caf6465bdf7cc6e64c0413d8d655))
|
|
15
|
+
* mantiene la querystring nel came_from della login ([#315](https://github.com/RedTurtle/design-comuni-plone-theme/issues/315)) ([5313e8b](https://github.com/RedTurtle/design-comuni-plone-theme/commit/5313e8b4bbcc54b492e07876abf5dc607d5b118b))
|
|
16
|
+
* mostra tutti i campi incarico della persona ([#311](https://github.com/RedTurtle/design-comuni-plone-theme/issues/311)) ([bd9afa2](https://github.com/RedTurtle/design-comuni-plone-theme/commit/bd9afa284f84202fece2f95c6664406bb605d66e))
|
|
17
|
+
* querystring results with additional filters in listing blocks ([#317](https://github.com/RedTurtle/design-comuni-plone-theme/issues/317)) ([ba52c7f](https://github.com/RedTurtle/design-comuni-plone-theme/commit/ba52c7f22b98baf4373ac580cd0a0441dc60ad01))
|
|
18
|
+
* revert SSR redirect backport https://github.com/plone/volto/pull/4854 ([#306](https://github.com/RedTurtle/design-comuni-plone-theme/issues/306)) ([ce80334](https://github.com/RedTurtle/design-comuni-plone-theme/commit/ce803342595693b819e9185990ea4e45777fa055))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
* updated publiccode ([973363a](https://github.com/RedTurtle/design-comuni-plone-theme/commit/973363a7ca46654cf79a1cfd7e9151cb97c77221))
|
|
24
|
+
|
|
25
|
+
## [8.4.6](https://github.com/redturtle/design-comuni-plone-theme/compare/v8.4.5...v8.4.6) (2023-08-31)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* changed conditions for campo importi in CT persona ([65931ac](https://github.com/redturtle/design-comuni-plone-theme/commit/65931acb8d1d8a6e12444067573380b639f03291))
|
|
31
|
+
|
|
3
32
|
## [8.4.5](https://github.com/redturtle/design-comuni-plone-theme/compare/v8.4.4...v8.4.5) (2023-08-30)
|
|
4
33
|
|
|
5
34
|
|
|
@@ -3897,6 +3897,16 @@ msgstr ""
|
|
|
3897
3897
|
msgid "venues"
|
|
3898
3898
|
msgstr ""
|
|
3899
3899
|
|
|
3900
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3901
|
+
# defaultMessage: Prossimo video
|
|
3902
|
+
msgid "videogallery_next_arrow"
|
|
3903
|
+
msgstr ""
|
|
3904
|
+
|
|
3905
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3906
|
+
# defaultMessage: Video precedente
|
|
3907
|
+
msgid "videogallery_prev_arrow"
|
|
3908
|
+
msgstr ""
|
|
3909
|
+
|
|
3900
3910
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3901
3911
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3902
3912
|
msgid "viewImage"
|
|
@@ -3882,6 +3882,16 @@ msgstr "Change in balance sheet"
|
|
|
3882
3882
|
msgid "venues"
|
|
3883
3883
|
msgstr "Venues"
|
|
3884
3884
|
|
|
3885
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3886
|
+
# defaultMessage: Prossimo video
|
|
3887
|
+
msgid "videogallery_next_arrow"
|
|
3888
|
+
msgstr "Next video"
|
|
3889
|
+
|
|
3890
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3891
|
+
# defaultMessage: Video precedente
|
|
3892
|
+
msgid "videogallery_prev_arrow"
|
|
3893
|
+
msgstr "Previous video"
|
|
3894
|
+
|
|
3885
3895
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3886
3896
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3887
3897
|
msgid "viewImage"
|
|
@@ -3891,6 +3891,16 @@ msgstr "Cambio en el balance"
|
|
|
3891
3891
|
msgid "venues"
|
|
3892
3892
|
msgstr "Lugares"
|
|
3893
3893
|
|
|
3894
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3895
|
+
# defaultMessage: Prossimo video
|
|
3896
|
+
msgid "videogallery_next_arrow"
|
|
3897
|
+
msgstr ""
|
|
3898
|
+
|
|
3899
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3900
|
+
# defaultMessage: Video precedente
|
|
3901
|
+
msgid "videogallery_prev_arrow"
|
|
3902
|
+
msgstr ""
|
|
3903
|
+
|
|
3894
3904
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3895
3905
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3896
3906
|
msgid "viewImage"
|
|
@@ -3899,6 +3899,16 @@ msgstr "Changement de bilan"
|
|
|
3899
3899
|
msgid "venues"
|
|
3900
3900
|
msgstr "Lieux"
|
|
3901
3901
|
|
|
3902
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3903
|
+
# defaultMessage: Prossimo video
|
|
3904
|
+
msgid "videogallery_next_arrow"
|
|
3905
|
+
msgstr "Prochaine vidéo"
|
|
3906
|
+
|
|
3907
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3908
|
+
# defaultMessage: Video precedente
|
|
3909
|
+
msgid "videogallery_prev_arrow"
|
|
3910
|
+
msgstr "Vidéo précédente"
|
|
3911
|
+
|
|
3902
3912
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3903
3913
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3904
3914
|
msgid "viewImage"
|
|
@@ -3882,6 +3882,16 @@ msgstr "Variazione situazione patrimoniale"
|
|
|
3882
3882
|
msgid "venues"
|
|
3883
3883
|
msgstr "Luoghi"
|
|
3884
3884
|
|
|
3885
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3886
|
+
# defaultMessage: Prossimo video
|
|
3887
|
+
msgid "videogallery_next_arrow"
|
|
3888
|
+
msgstr "Prossimo video"
|
|
3889
|
+
|
|
3890
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3891
|
+
# defaultMessage: Video precedente
|
|
3892
|
+
msgid "videogallery_prev_arrow"
|
|
3893
|
+
msgstr "Video precedente"
|
|
3894
|
+
|
|
3885
3895
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3886
3896
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3887
3897
|
msgid "viewImage"
|
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: 2023-08-
|
|
4
|
+
"POT-Creation-Date: 2023-08-28T07:32:02.134Z\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"
|
|
@@ -3884,6 +3884,16 @@ msgstr ""
|
|
|
3884
3884
|
msgid "venues"
|
|
3885
3885
|
msgstr ""
|
|
3886
3886
|
|
|
3887
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3888
|
+
# defaultMessage: Prossimo video
|
|
3889
|
+
msgid "videogallery_next_arrow"
|
|
3890
|
+
msgstr ""
|
|
3891
|
+
|
|
3892
|
+
#: components/ItaliaTheme/Blocks/VideoGallery/Body
|
|
3893
|
+
# defaultMessage: Video precedente
|
|
3894
|
+
msgid "videogallery_prev_arrow"
|
|
3895
|
+
msgstr ""
|
|
3896
|
+
|
|
3887
3897
|
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3888
3898
|
# defaultMessage: Sei attualmente in un carosello, per navigare usa le frecce sinistra e destra
|
|
3889
3899
|
msgid "viewImage"
|
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: '2023-
|
|
230
|
+
releaseDate: '2023-09-05'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 8.
|
|
232
|
+
softwareVersion: 8.5.0
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -253,6 +253,7 @@ usedBy:
|
|
|
253
253
|
- Comune di Mirandola
|
|
254
254
|
- Comune di Modena
|
|
255
255
|
- Comune di Montecchio Emilia
|
|
256
|
+
- Comune di Novellara
|
|
256
257
|
- Comune di Parma
|
|
257
258
|
- Comune di Piacenza
|
|
258
259
|
- Comune di Reggio Emilia
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
import { Container } from 'design-react-kit';
|
|
9
8
|
|
|
10
9
|
import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable';
|
|
11
|
-
|
|
10
|
+
import { useIntl, defineMessages } from 'react-intl';
|
|
12
11
|
import { Icon } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
12
|
+
import { FontAwesomeIcon } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
13
|
+
import { Button, Container } from 'design-react-kit';
|
|
13
14
|
import { UniversalLink } from '@plone/volto/components';
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -17,11 +18,56 @@ import { UniversalLink } from '@plone/volto/components';
|
|
|
17
18
|
* @class Body
|
|
18
19
|
* @extends Component
|
|
19
20
|
*/
|
|
21
|
+
|
|
22
|
+
const messages = defineMessages({
|
|
23
|
+
videogallery_next_arrow: {
|
|
24
|
+
id: 'videogallery_next_arrow',
|
|
25
|
+
defaultMessage: 'Prossimo video',
|
|
26
|
+
},
|
|
27
|
+
videogallery_prev_arrow: {
|
|
28
|
+
id: 'videogallery_prev_arrow',
|
|
29
|
+
defaultMessage: 'Video precedente',
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
|
|
20
33
|
const Body = ({ data, children, nItems = 0, reactSlick }) => {
|
|
34
|
+
const intl = useIntl();
|
|
35
|
+
|
|
36
|
+
const NextArrow = (props) => {
|
|
37
|
+
const { onClick, className } = props;
|
|
38
|
+
return (
|
|
39
|
+
<Button
|
|
40
|
+
outline
|
|
41
|
+
color={'unset'}
|
|
42
|
+
className={className}
|
|
43
|
+
onClick={onClick}
|
|
44
|
+
aria-label={intl.formatMessage(messages.videogallery_next_arrow)}
|
|
45
|
+
>
|
|
46
|
+
<FontAwesomeIcon icon={['fas', 'chevron-right']} />
|
|
47
|
+
</Button>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
const PrevArrow = (props) => {
|
|
51
|
+
const { onClick, className } = props;
|
|
52
|
+
return (
|
|
53
|
+
<Button
|
|
54
|
+
outline
|
|
55
|
+
color={'unset'}
|
|
56
|
+
className={className}
|
|
57
|
+
onClick={onClick}
|
|
58
|
+
aria-label={intl.formatMessage(messages.videogallery_prev_arrow)}
|
|
59
|
+
>
|
|
60
|
+
<FontAwesomeIcon icon={['fas', 'chevron-left']} />
|
|
61
|
+
</Button>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
21
65
|
const Slider = reactSlick.default;
|
|
22
66
|
|
|
23
67
|
const settings = {
|
|
24
68
|
dots: true,
|
|
69
|
+
nextArrow: <NextArrow />,
|
|
70
|
+
prevArrow: <PrevArrow />,
|
|
25
71
|
infinite: true,
|
|
26
72
|
speed: 500,
|
|
27
73
|
slidesToShow: nItems < 3 ? nItems : 3,
|
|
@@ -55,7 +101,7 @@ const Body = ({ data, children, nItems = 0, reactSlick }) => {
|
|
|
55
101
|
};
|
|
56
102
|
|
|
57
103
|
return (
|
|
58
|
-
<div className="full-width
|
|
104
|
+
<div className="full-width">
|
|
59
105
|
<Container className="px-md-4">
|
|
60
106
|
{data?.title && <h2>{data.title}</h2>}
|
|
61
107
|
{(data?.channel_link || data?.channel_link_title) && (
|
|
@@ -6,22 +6,24 @@
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { defineMessages } from 'react-intl';
|
|
8
8
|
import { SidebarPortal } from '@plone/volto/components';
|
|
9
|
-
|
|
10
9
|
import {
|
|
11
10
|
withDNDContext,
|
|
12
11
|
SubblocksEdit,
|
|
13
12
|
SubblocksWrapper,
|
|
14
13
|
} from 'volto-subblocks';
|
|
15
|
-
import Sidebar from '
|
|
16
|
-
import
|
|
17
|
-
import
|
|
14
|
+
import Sidebar from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/VideoGallery/Sidebar';
|
|
15
|
+
import Body from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/VideoGallery/Body';
|
|
16
|
+
import EditBlock from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/VideoGallery/Block/EditBlock';
|
|
18
17
|
|
|
19
18
|
const messages = defineMessages({
|
|
20
19
|
addItem: {
|
|
21
20
|
id: 'Add accordion item',
|
|
22
21
|
defaultMessage: 'Aggiungi elemento',
|
|
23
22
|
},
|
|
24
|
-
titlePlaceholder: {
|
|
23
|
+
titlePlaceholder: {
|
|
24
|
+
id: 'Title',
|
|
25
|
+
defaultMessage: 'Titolo',
|
|
26
|
+
},
|
|
25
27
|
noVideos: {
|
|
26
28
|
id: 'noVideos',
|
|
27
29
|
defaultMessage:
|
|
@@ -58,7 +58,11 @@ const LoginAgid = (props) => {
|
|
|
58
58
|
: process.env.RAZZLE_SPID_LOGIN_URL;
|
|
59
59
|
const showFormLogin = !spidLoginUrl || query.get('login_operatore');
|
|
60
60
|
const location = useLocation();
|
|
61
|
-
const came_from =
|
|
61
|
+
const came_from =
|
|
62
|
+
query.get('came_from') ||
|
|
63
|
+
props.origin ||
|
|
64
|
+
`${getBaseUrl(location.pathname)}${location.search}` ||
|
|
65
|
+
'/';
|
|
62
66
|
|
|
63
67
|
return (
|
|
64
68
|
<>
|
|
@@ -91,7 +95,10 @@ const LoginAgid = (props) => {
|
|
|
91
95
|
<Button
|
|
92
96
|
color="primary"
|
|
93
97
|
outline
|
|
94
|
-
href={
|
|
98
|
+
href={`/login?${new URLSearchParams({
|
|
99
|
+
login_operatore: 1,
|
|
100
|
+
return_url: came_from,
|
|
101
|
+
}).toString()}`}
|
|
95
102
|
tag="button"
|
|
96
103
|
>
|
|
97
104
|
<span>{intl.formatMessage(messages.loginPloneUser)}</span>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import React, { useState, useEffect } from 'react';
|
|
7
7
|
import { useDispatch, useSelector } from 'react-redux';
|
|
8
8
|
import { useIntl, defineMessages } from 'react-intl';
|
|
9
|
-
import { values } from 'lodash';
|
|
9
|
+
import { values, isEmpty } from 'lodash';
|
|
10
10
|
import cx from 'classnames';
|
|
11
11
|
import qs from 'query-string';
|
|
12
12
|
import moment from 'moment';
|
|
@@ -324,7 +324,7 @@ const Search = () => {
|
|
|
324
324
|
true,
|
|
325
325
|
);
|
|
326
326
|
|
|
327
|
-
searchResults.result &&
|
|
327
|
+
!isEmpty(searchResults.result) &&
|
|
328
328
|
history.push(
|
|
329
329
|
getSearchParamsURL(
|
|
330
330
|
searchableText,
|
|
@@ -349,7 +349,6 @@ const Search = () => {
|
|
|
349
349
|
}, 0);
|
|
350
350
|
let activeTopics = values(topics).filter((t) => t.value).length;
|
|
351
351
|
let activePortalTypes = values(portalTypes).filter((ct) => ct.value).length;
|
|
352
|
-
|
|
353
352
|
return (
|
|
354
353
|
<>
|
|
355
354
|
<Helmet title={intl.formatMessage(messages.searchResults)} />
|
|
@@ -612,72 +611,82 @@ const Search = () => {
|
|
|
612
611
|
</aside>
|
|
613
612
|
|
|
614
613
|
<Col lg={9} tag="section" className="py-lg-5">
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
options={sortOnOptions}
|
|
646
|
-
/>
|
|
647
|
-
</Col>
|
|
648
|
-
</Row>
|
|
649
|
-
</div>
|
|
650
|
-
<Row>
|
|
651
|
-
{searchResults?.result?.items?.map((item, index) => (
|
|
652
|
-
<Col md={12} key={item['@id']} className="p-0">
|
|
653
|
-
<SearchResultItem
|
|
654
|
-
item={item}
|
|
655
|
-
index={index}
|
|
656
|
-
searchableText={searchableText}
|
|
657
|
-
section={getSectionFromId(item['@id'])}
|
|
658
|
-
/>
|
|
659
|
-
</Col>
|
|
660
|
-
))}
|
|
614
|
+
<div
|
|
615
|
+
className="search-results-wrapper"
|
|
616
|
+
role="region"
|
|
617
|
+
id="search-results-region"
|
|
618
|
+
aria-live="polite"
|
|
619
|
+
>
|
|
620
|
+
<div className="d-block ordering-widget">
|
|
621
|
+
<Row className="pb-3 border-bottom">
|
|
622
|
+
<Col xs={6} className="align-self-center">
|
|
623
|
+
<p className="d-none d-lg-block" aria-live="polite">
|
|
624
|
+
{intl.formatMessage(messages.foundNResults, {
|
|
625
|
+
total: searchResults?.result?.items_total || 0,
|
|
626
|
+
})}
|
|
627
|
+
</p>
|
|
628
|
+
<p className="d-block d-lg-none mb-0 text-end">
|
|
629
|
+
{intl.formatMessage(messages.orderBy)}
|
|
630
|
+
</p>
|
|
631
|
+
</Col>
|
|
632
|
+
<Col xs={6}>
|
|
633
|
+
<SelectInput
|
|
634
|
+
id="search-sort-on"
|
|
635
|
+
value={
|
|
636
|
+
sortOnOptions.filter((o) => o.value === sortOn)[0]
|
|
637
|
+
}
|
|
638
|
+
label={intl.formatMessage(messages.orderBy)}
|
|
639
|
+
placeholder={intl.formatMessage(messages.orderBy)}
|
|
640
|
+
onChange={(opt) => setSortOn(opt.value)}
|
|
641
|
+
options={sortOnOptions}
|
|
642
|
+
/>
|
|
643
|
+
</Col>
|
|
661
644
|
</Row>
|
|
662
|
-
{searchResults?.result?.batching && (
|
|
663
|
-
<Pagination
|
|
664
|
-
activePage={currentPage}
|
|
665
|
-
totalPages={Math.ceil(
|
|
666
|
-
(searchResults?.result?.items_total ?? 0) /
|
|
667
|
-
config.settings.defaultPageSize,
|
|
668
|
-
)}
|
|
669
|
-
onPageChange={handleQueryPaginationChange}
|
|
670
|
-
/>
|
|
671
|
-
)}
|
|
672
645
|
</div>
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
646
|
+
|
|
647
|
+
{searchResults.loadingResults ||
|
|
648
|
+
(!searchResults.hasError && isEmpty(searchResults.result)) ? (
|
|
649
|
+
<div className="searchSpinnerWrapper">
|
|
650
|
+
<Spinner active />
|
|
651
|
+
</div>
|
|
652
|
+
) : searchResults?.result?.items_total > 0 ? (
|
|
653
|
+
<>
|
|
654
|
+
<Row>
|
|
655
|
+
{searchResults?.result?.items?.map((item, index) => (
|
|
656
|
+
<Col md={12} key={item['@id']} className="p-0">
|
|
657
|
+
<SearchResultItem
|
|
658
|
+
item={item}
|
|
659
|
+
index={index}
|
|
660
|
+
searchableText={searchableText}
|
|
661
|
+
section={getSectionFromId(item['@id'])}
|
|
662
|
+
/>
|
|
663
|
+
</Col>
|
|
664
|
+
))}
|
|
665
|
+
</Row>
|
|
666
|
+
{searchResults?.result?.batching && (
|
|
667
|
+
<Pagination
|
|
668
|
+
activePage={currentPage}
|
|
669
|
+
totalPages={Math.ceil(
|
|
670
|
+
(searchResults?.result?.items_total ?? 0) /
|
|
671
|
+
config.settings.defaultPageSize,
|
|
672
|
+
)}
|
|
673
|
+
onPageChange={handleQueryPaginationChange}
|
|
674
|
+
/>
|
|
675
|
+
)}
|
|
676
|
+
</>
|
|
677
|
+
) : searchResults.error ? (
|
|
678
|
+
<Alert color="danger">
|
|
679
|
+
<strong>{intl.formatMessage(messages.attenzione)}</strong>{' '}
|
|
680
|
+
{intl.formatMessage(messages.errors_occured)}
|
|
681
|
+
</Alert>
|
|
682
|
+
) : (
|
|
683
|
+
!searchResults?.hasError &&
|
|
684
|
+
!isEmpty(searchResults?.result) &&
|
|
685
|
+
searchResults.result?.items.length === 0 && (
|
|
686
|
+
<p>{intl.formatMessage(messages.no_results)}</p>
|
|
687
|
+
)
|
|
688
|
+
)}
|
|
689
|
+
</div>
|
|
681
690
|
</Col>
|
|
682
691
|
</Row>
|
|
683
692
|
</Container>
|
|
@@ -53,6 +53,7 @@ const Unauthorized = (props) => {
|
|
|
53
53
|
: process.env.RAZZLE_SPID_LOGIN_URL;
|
|
54
54
|
// BBB: per retrocompatibilità con il vecchio config arLoginUrl
|
|
55
55
|
const spidLogin = config.settings.siteProperties?.spidLogin;
|
|
56
|
+
const came_from = `${getBaseUrl(location.pathname)}${location.search}`;
|
|
56
57
|
|
|
57
58
|
return (
|
|
58
59
|
<div id="unauthorized-agid" className="view-wrapper">
|
|
@@ -88,9 +89,10 @@ const Unauthorized = (props) => {
|
|
|
88
89
|
<Button
|
|
89
90
|
color="primary"
|
|
90
91
|
outline
|
|
91
|
-
href={
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
href={`/login?${new URLSearchParams({
|
|
93
|
+
login_operatore: 1,
|
|
94
|
+
return_url: came_from,
|
|
95
|
+
})}`}
|
|
94
96
|
tag="button"
|
|
95
97
|
>
|
|
96
98
|
<span>{intl.formatMessage(messages.loginPloneUser)}</span>
|
|
@@ -117,9 +119,10 @@ const Unauthorized = (props) => {
|
|
|
117
119
|
values={{
|
|
118
120
|
login: (
|
|
119
121
|
<Link
|
|
120
|
-
to={
|
|
121
|
-
|
|
122
|
-
|
|
122
|
+
to={`/login?${new URLSearchParams({
|
|
123
|
+
login_operatore: 1,
|
|
124
|
+
return_url: came_from,
|
|
125
|
+
})}`}
|
|
123
126
|
>
|
|
124
127
|
<FormattedMessage id="log in" defaultMessage="log in" />
|
|
125
128
|
</Link>
|
|
@@ -42,7 +42,6 @@ const OfficeCard = ({
|
|
|
42
42
|
}, [url]);
|
|
43
43
|
|
|
44
44
|
let office_fo = load_data ? officeContent?.[key]?.data : office;
|
|
45
|
-
|
|
46
45
|
return office_fo ? (
|
|
47
46
|
<div
|
|
48
47
|
className={cx(
|
|
@@ -86,7 +85,10 @@ const OfficeCard = ({
|
|
|
86
85
|
<ContactLink tel={pdc.pdc_value} label={false} />
|
|
87
86
|
</div>
|
|
88
87
|
);
|
|
89
|
-
} else if (
|
|
88
|
+
} else if (
|
|
89
|
+
pdc.pdc_type === 'email' ||
|
|
90
|
+
pdc.pdc_type === 'pec'
|
|
91
|
+
)
|
|
90
92
|
return (
|
|
91
93
|
<div key={i}>
|
|
92
94
|
<ContactLink email={pdc.pdc_value} label={false} />
|
|
@@ -78,7 +78,6 @@ const messages = defineMessages({
|
|
|
78
78
|
|
|
79
79
|
const PersonaRuolo = ({ content }) => {
|
|
80
80
|
const intl = useIntl();
|
|
81
|
-
|
|
82
81
|
return (
|
|
83
82
|
<>
|
|
84
83
|
{content?.incarichi_persona?.length > 0 && (
|
|
@@ -155,7 +154,8 @@ const PersonaRuolo = ({ content }) => {
|
|
|
155
154
|
)}
|
|
156
155
|
data={content.incarichi_persona[0].importi_di_viaggio_e_o_servizi}
|
|
157
156
|
>
|
|
158
|
-
{content.incarichi_persona[0]?.
|
|
157
|
+
{content.incarichi_persona[0]?.importi_di_viaggio_e_o_servizi
|
|
158
|
+
?.length > 0 && (
|
|
159
159
|
<div className="compensi-item mb-2">
|
|
160
160
|
<div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
|
|
161
161
|
{content.incarichi_persona[0]?.importi_di_viaggio_e_o_servizi.map(
|
|
@@ -187,18 +187,50 @@ const PersonaRuolo = ({ content }) => {
|
|
|
187
187
|
)}
|
|
188
188
|
</RichTextSection>
|
|
189
189
|
)}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
190
|
+
{content.incarichi_persona[0].data_insediamento && (
|
|
191
|
+
<RichTextSection
|
|
192
|
+
tag_id="data_insediamento"
|
|
193
|
+
title={intl.formatMessage(messages.data_insediamento)}
|
|
194
|
+
>
|
|
195
|
+
<div className="font-serif">
|
|
196
|
+
{viewDate(
|
|
197
|
+
intl.locale,
|
|
198
|
+
content.incarichi_persona[0].data_insediamento,
|
|
199
|
+
'DD MMMM Y',
|
|
200
|
+
)}
|
|
201
|
+
</div>
|
|
202
|
+
</RichTextSection>
|
|
203
|
+
)}
|
|
204
|
+
{content.incarichi_persona[0].data_inizio_incarico && (
|
|
205
|
+
<RichTextSection
|
|
206
|
+
tag_id="data_inizio_incarico"
|
|
207
|
+
title={intl.formatMessage(messages.data_inizio_incarico)}
|
|
208
|
+
>
|
|
209
|
+
<div className="font-serif">
|
|
210
|
+
{viewDate(
|
|
211
|
+
intl.locale,
|
|
212
|
+
content.incarichi_persona[0].data_inizio_incarico,
|
|
213
|
+
'DD MMMM Y',
|
|
214
|
+
)}
|
|
215
|
+
</div>
|
|
216
|
+
</RichTextSection>
|
|
217
|
+
)}
|
|
218
|
+
{content.incarichi_persona[0].data_conclusione_incarico && (
|
|
219
|
+
<RichTextSection
|
|
220
|
+
tag_id="data_conclusione_incarico"
|
|
221
|
+
title={intl.formatMessage(messages.data_conclusione_incarico, {
|
|
222
|
+
incarico: content.incarichi_persona[0].title,
|
|
223
|
+
})}
|
|
224
|
+
>
|
|
225
|
+
<div className="font-serif">
|
|
226
|
+
{viewDate(
|
|
227
|
+
intl.locale,
|
|
228
|
+
content.incarichi_persona[0].data_conclusione_incarico,
|
|
229
|
+
'DD MMMM Y',
|
|
230
|
+
)}
|
|
231
|
+
</div>
|
|
232
|
+
</RichTextSection>
|
|
233
|
+
)}
|
|
202
234
|
</>
|
|
203
235
|
)}
|
|
204
236
|
{content.assessore_di?.length > 0 && (
|