-
+ {withIcon && (
+
+ )}
{title || 'Questa sezione è ancora vuota'}
{subtitle &&
{subtitle} }
{buttons &&
}
diff --git a/fe-piattaforma/src/components/PageTitle/pageTitle.tsx b/fe-piattaforma/src/components/PageTitle/pageTitle.tsx
index f1de02bd1..1faeedcbd 100644
--- a/fe-piattaforma/src/components/PageTitle/pageTitle.tsx
+++ b/fe-piattaforma/src/components/PageTitle/pageTitle.tsx
@@ -1,7 +1,11 @@
import clsx from 'clsx';
-import { Container } from 'design-react-kit';
-import React, { memo } from 'react';
+import { Button, Container, Icon } from 'design-react-kit';
+import React, { memo, useState } from 'react';
import './pageTitle.scss';
+import SectionInfo from '../../components/SectionInfo/sectionInfo';
+import '../SectionInfo/sectionInfo.scss';
+import { useLocation } from 'react-router-dom';
+import { surveyBody } from '../SectionInfo/bodies';
interface BreadcrumbI {
label?: string;
@@ -11,28 +15,61 @@ export interface PageTitleI {
breadcrumb?: BreadcrumbI[];
title?: string;
hasBackground?: boolean;
+ sectionInfo?: boolean;
}
const PageTitle: React.FC
= (props) => {
- const { hasBackground, title } = props;
+ const { hasBackground, title, sectionInfo } = props;
+
+ const [sectionInfoOpened, setSectionInfoOpened] = useState(false);
+ /* const [sectionBody, setSectionBody] = useState(''); */
+ const location = useLocation();
+
+ const openSectionInfo = () => {
+ console.log('open section info');
+ setSectionInfoOpened(true);
+ };
+
+ const correctSectionInfo = () => {
+ switch (location.pathname) {
+ case '/area-amministrativa/questionari':
+ return surveyBody;
+ default:
+ return '';
+ }
+ };
return (
-
-
+
+
{title && (
{title}
)}
+ {sectionInfo ? (
+ {
+ openSectionInfo();
+ }}
+ >
+
+
+ ) : null}
+
+ {sectionInfoOpened ? (
+
+ ) : null}
);
diff --git a/fe-piattaforma/src/components/SectionInfo/bodies.tsx b/fe-piattaforma/src/components/SectionInfo/bodies.tsx
new file mode 100644
index 000000000..b42510120
--- /dev/null
+++ b/fe-piattaforma/src/components/SectionInfo/bodies.tsx
@@ -0,0 +1,38 @@
+export const surveyBody = `
+
+ Questa sezione consente di gestire i questionari da erogare ai
+ cittadini. Ogni questionario caricato sulla piattaforma presenta le
+ seguenti informazioni:
+
+
+
+ Nome
+
+
+ Data ultima modifica
+
+
+ Default SCD:
+ pulsante interruttore che, se selezionato, indica che il
+ questionario sa associabile di default a tutti
+ i programmi dell'intervento SCD
+
+
+ ID
+
+
+ Stato
+
+
+ Default RFD:
+ pulsante interruttore che, se selezionato,
+ indica che il questionario sarà associabile
+ di default a tutti i programmi dell'intervento RFD.
+
+
+
+ In base ai permessi assegnati all'utente,
+ è possibile visualizzare il dettaglio del
+ questionario oppure modificarlo e duplicarlo.
+
+ `;
diff --git a/fe-piattaforma/src/components/SectionInfo/sectionInfo.scss b/fe-piattaforma/src/components/SectionInfo/sectionInfo.scss
new file mode 100644
index 000000000..08db06a7f
--- /dev/null
+++ b/fe-piattaforma/src/components/SectionInfo/sectionInfo.scss
@@ -0,0 +1,94 @@
+.section-info-card {
+ box-shadow: 0 0 40px rgba(0, 0, 0, 0.1);
+ border-radius: 10px;
+ animation: value-system-textFadeIn 0.2s linear;
+ p {
+ min-width: 200px !important;
+ }
+
+ .section-info-list {
+ ul {
+ list-style: none;
+ }
+ ul li::before {
+ content: '•';
+ font-family: sans-serif;
+ font-size: 20pt;
+ color: #0066cc;
+ font-weight: bolder;
+ display: inline-block;
+ width: 0.5em;
+ margin-left: -1em;
+ }
+ }
+
+ &__maxWidthCard {
+ max-width: rem(376px);
+ }
+
+ &__line {
+ margin: 0;
+ width: 90%;
+ }
+
+ &__last-comment {
+ box-shadow: 0 0 40px rgba(0, 0, 0, 0.1);
+ }
+
+ &__picture-comment {
+ width: 32px;
+ height: 32px;
+ }
+
+ &__white-card {
+ border-top-right-radius: 10px;
+ border-bottom-right-radius: 10px;
+ }
+
+ &__dots {
+ background-color: #0066cc;
+ vertical-align: middle;
+ border-radius: 50%;
+ height: 8px;
+ width: 8px;
+ display: inline-block;
+ }
+
+ &__maxLinesTitle {
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ font-weight: 600;
+ }
+
+ &__maxLinesParagraph {
+ display: -webkit-box;
+ -webkit-line-clamp: 6;
+ -webkit-box-orient: vertical;
+ }
+
+ .close-button {
+ position: absolute;
+ right: 0;
+ top: -12px;
+
+ @media screen and (max-width: 576px) {
+ .close-button {
+ right: 0;
+ top: -12px;
+ }
+ }
+ }
+}
+
+@keyframes value-system-textFadeIn {
+ from {
+ opacity: 0;
+ transform: translateY(-50px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+}
diff --git a/fe-piattaforma/src/components/SectionInfo/sectionInfo.tsx b/fe-piattaforma/src/components/SectionInfo/sectionInfo.tsx
new file mode 100644
index 000000000..efd562c49
--- /dev/null
+++ b/fe-piattaforma/src/components/SectionInfo/sectionInfo.tsx
@@ -0,0 +1,80 @@
+import clsx from 'clsx';
+import { Button, CardProps, CardTitle, Col, Icon } from 'design-react-kit';
+import React, { memo, useState } from 'react';
+import { selectDevice } from '../../redux/features/app/appSlice';
+import { useAppSelector } from '../../redux/hooks';
+import './sectionInfo.scss';
+
+export interface SectionInfoI extends CardProps {
+ title?: string;
+ body?: string;
+}
+
+const SectionInfo: React.FC = (props) => {
+ const { title, body = '' } = props;
+
+ const [sectionInfoClose, setSectionInfoClose] = useState(true);
+
+ const closeSectionInfo = () => {
+ console.log('close section info');
+ setSectionInfoClose(!sectionInfoClose);
+ };
+
+ const device = useAppSelector(selectDevice);
+
+ return (
+
+ {sectionInfoClose ? (
+
+
+
+
+
+
+ {title}
+
+
+ {
+ closeSectionInfo();
+ }}
+ className='close-button pr-0 pt-0'
+ >
+
+
+
+
+
+
+
+ ) : null}
+
+ );
+};
+
+export default memo(SectionInfo);
diff --git a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/SurveyQuestion/surveyQuestion.tsx b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/SurveyQuestion/surveyQuestion.tsx
index 9f81e21bb..d52eb59ab 100644
--- a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/SurveyQuestion/surveyQuestion.tsx
+++ b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/SurveyQuestion/surveyQuestion.tsx
@@ -245,7 +245,7 @@ const SurveyQuestion: React.FC = (props) => {
'ml-lg-5',
'ml-0',
'pl-lg-0',
- device.mediaIsPhone || device.mediaIsTablet && 'pl-4'
+ !device.mediaIsDesktop && 'pl-4'
)}
>
diff --git a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/surveyTemplate.tsx b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/surveyTemplate.tsx
index 995d0a881..d28541451 100644
--- a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/surveyTemplate.tsx
+++ b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveyDetailsEdit/components/surveyTemplate.tsx
@@ -14,9 +14,7 @@ import {
selectSurveyForm,
setSurveyFormFieldValue,
} from '../../../../../../../redux/features/administrativeArea/surveys/surveysSlice';
-import {
- SetSurveyQuestion,
-} from '../../../../../../../redux/features/administrativeArea/surveys/surveysThunk';
+import { SetSurveyQuestion } from '../../../../../../../redux/features/administrativeArea/surveys/surveysThunk';
interface SurveyTemplateI {
editMode?: boolean;
@@ -87,9 +85,7 @@ const SurveyTemplate: React.FC
= ({
>
= ({
'w-100'
)}
>
- {!modal && section.id !== 'anagraphic-citizen-section' &&
+ {!modal &&
+ section.id !== 'anagraphic-citizen-section' &&
section.id !== 'anagraphic-booking-section' && (
handleNewQuestion(section?.id || '')}
diff --git a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveys.tsx b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveys.tsx
index c2e97fbf7..81a5f5b4e 100644
--- a/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveys.tsx
+++ b/fe-piattaforma/src/pages/administrator/AdministrativeArea/Entities/Surveys/surveys.tsx
@@ -311,6 +311,7 @@ const Surveys = () => {
? 'Elenco Questionari'
: 'Elenco Addendum'
}
+ sectionInfo
/>
{
const [inputValue, setInputValue] = useState(baseFrameURL);
- const [frameUrl, setFrameUrl] = useState(baseFrameURL);
+ const [frameUrl, setFrameUrl] = useState('');
const handleUpdateFrame = () => {
- setFrameUrl(inputValue);
+ getDashboardURL();
};
+ const getDashboardURL = async () => {
+ const res = await API.get(inputValue);
+ console.log('Dashboard getUrl', res);
+ if (res?.data?.EmbedUrl) {
+ setFrameUrl(`${res.data.EmbedUrl}&locale=it-IT&programma=`);
+ }
+ };
+
+ useEffect(() => {
+ getDashboardURL();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
return (
diff --git a/fe-piattaforma/src/utils/common.ts b/fe-piattaforma/src/utils/common.ts
index 04423c40f..fb2ca4aba 100644
--- a/fe-piattaforma/src/utils/common.ts
+++ b/fe-piattaforma/src/utils/common.ts
@@ -78,14 +78,14 @@ export interface FormActionsI {
export interface ItemListElemI {
nome: string;
- actions: CRUDActionsI;
- status?: string;
- stato?: string;
- id?: string;
- fullInfo?: {
- [key: string]: string;
- };
- default?: boolean;
+ actions: CRUDActionsI;
+ status?: string;
+ stato?: string;
+ id?: string;
+ fullInfo?: {
+ [key: string]: string;
+ };
+ default?: boolean;
}
export interface ItemsListI {