- added new fields;
- corrected route urls;
This commit is contained in:
@@ -1,3 +1,27 @@
|
|||||||
export const isVAT = (v) => {
|
export const isPIVA = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isCodiceFiscale = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isCAP = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isIBAN = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isEmail = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isEmailPEC = (v) => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isUrl = (v) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,15 @@ import { storeSet, useStore } from '../../store';
|
|||||||
import FormsService from '../../service/forms-service';
|
import FormsService from '../../service/forms-service';
|
||||||
|
|
||||||
// tools
|
// tools
|
||||||
import { isVAT } from '../../helpers/validators';
|
import {
|
||||||
|
isPIVA,
|
||||||
|
isCodiceFiscale,
|
||||||
|
isCAP,
|
||||||
|
isIBAN,
|
||||||
|
isEmail,
|
||||||
|
isEmailPEC,
|
||||||
|
isUrl
|
||||||
|
} from '../../helpers/validators';
|
||||||
|
|
||||||
// components
|
// components
|
||||||
import { Skeleton } from 'primereact/skeleton';
|
import { Skeleton } from 'primereact/skeleton';
|
||||||
@@ -22,6 +30,7 @@ import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
|
|||||||
|
|
||||||
import { formData as testformData } from '../../tempData';
|
import { formData as testformData } from '../../tempData';
|
||||||
import BandoService from '../../service/bando-service';
|
import BandoService from '../../service/bando-service';
|
||||||
|
import ApplicationService from '../../service/application-service';
|
||||||
|
|
||||||
const BandoApplication = () => {
|
const BandoApplication = () => {
|
||||||
const { id } = useParams();
|
const { id } = useParams();
|
||||||
@@ -41,20 +50,16 @@ const BandoApplication = () => {
|
|||||||
const values = getValues();
|
const values = getValues();
|
||||||
|
|
||||||
const validationFns = {
|
const validationFns = {
|
||||||
isVAT
|
isPIVA,
|
||||||
|
isCodiceFiscale,
|
||||||
|
isCAP,
|
||||||
|
isIBAN,
|
||||||
|
isEmail,
|
||||||
|
isEmailPEC,
|
||||||
|
isUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
const onSubmit = (formData) => {
|
const onSubmit = () => {};
|
||||||
/*const newFormData = Object.keys(formData).reduce((acc, cur) => {
|
|
||||||
acc.push({
|
|
||||||
'fieldId': cur,
|
|
||||||
'fieldValue': formData[cur] && formData[cur].getMonth ? formData[cur].toISOString() : formData[cur]
|
|
||||||
});
|
|
||||||
return acc;
|
|
||||||
}, []);
|
|
||||||
console.log('newFormData', newFormData);
|
|
||||||
console.log('errors', errors);*/
|
|
||||||
};
|
|
||||||
|
|
||||||
const saveDraft = () => {
|
const saveDraft = () => {
|
||||||
trigger();
|
trigger();
|
||||||
@@ -70,7 +75,7 @@ const BandoApplication = () => {
|
|||||||
console.log('errors', errors);
|
console.log('errors', errors);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getBandoId = () => {
|
const getApplicationId = () => {
|
||||||
const parsed = parseInt(id)
|
const parsed = parseInt(id)
|
||||||
return !isNaN(parsed) ? parsed : 0;
|
return !isNaN(parsed) ? parsed : 0;
|
||||||
}
|
}
|
||||||
@@ -94,11 +99,11 @@ const BandoApplication = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const bandoId = getBandoId();
|
const applId = getApplicationId();
|
||||||
|
|
||||||
if (bandoId) {
|
if (applId) {
|
||||||
storeSet.main.setAsyncRequest();
|
storeSet.main.setAsyncRequest();
|
||||||
FormsService.getFormsForCall(bandoId, getCallback, errGetCallbacks);
|
ApplicationService.getApplication(applId, getCallback, errGetCallbacks);
|
||||||
}
|
}
|
||||||
}, [id]);
|
}, [id]);
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { ItemTypes } from '../ItemTypes';
|
|||||||
import uniqid from '../../../../helpers/uniqid';
|
import uniqid from '../../../../helpers/uniqid';
|
||||||
|
|
||||||
|
|
||||||
const BuilderElementItem = ({ dbId, name, label }) => {
|
const BuilderElementItem = ({ dbId, name, label, description = '' }) => {
|
||||||
const ref = useRef(null);
|
const ref = useRef(null);
|
||||||
|
|
||||||
const [{ isDragging }, drag] = useDrag(() => ({
|
const [{ isDragging }, drag] = useDrag(() => ({
|
||||||
@@ -28,7 +28,11 @@ const BuilderElementItem = ({ dbId, name, label }) => {
|
|||||||
drag(ref);
|
drag(ref);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div ref={ref} className="formBuilder__elementItem" style={{ opacity }}>
|
<div
|
||||||
|
ref={ref}
|
||||||
|
title={description}
|
||||||
|
className="formBuilder__elementItem"
|
||||||
|
style={{ opacity }}>
|
||||||
{label}
|
{label}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ const FormBuilder = () => {
|
|||||||
dbId={item.id}
|
dbId={item.id}
|
||||||
label={item.label}
|
label={item.label}
|
||||||
name={item.name}
|
name={item.name}
|
||||||
|
description={item.description}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}, []);
|
}, []);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import BandoService from '../../service/bando-service';
|
|||||||
import { Messages } from 'primereact/messages';
|
import { Messages } from 'primereact/messages';
|
||||||
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
|
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
|
||||||
import FaqItemService from '../../service/faq-item-service';
|
import FaqItemService from '../../service/faq-item-service';
|
||||||
|
import ApplicationService from '../../service/application-service';
|
||||||
|
|
||||||
const BandoViewBeneficiario = () => {
|
const BandoViewBeneficiario = () => {
|
||||||
const isAsyncRequest = useStore().main.isAsyncRequest();
|
const isAsyncRequest = useStore().main.isAsyncRequest();
|
||||||
@@ -27,12 +28,9 @@ const BandoViewBeneficiario = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [data, setData] = useState({});
|
const [data, setData] = useState({});
|
||||||
const [newQuestion, setNewQuestion] = useState('');
|
const [newQuestion, setNewQuestion] = useState('');
|
||||||
|
const [isApplRequest, setIsApplRequest] = useState(true);
|
||||||
const bandoMsgs = useRef(null);
|
const bandoMsgs = useRef(null);
|
||||||
|
|
||||||
const closePreview = () => {
|
|
||||||
navigate(`/tenders/${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const scaricaBando = () => {
|
const scaricaBando = () => {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -100,14 +98,14 @@ const BandoViewBeneficiario = () => {
|
|||||||
storeSet.main.unsetAsyncRequest();
|
storeSet.main.unsetAsyncRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
const getCallback = (data) => {
|
const getBandoCallback = (data) => {
|
||||||
if (data.status === 'SUCCESS') {
|
if (data.status === 'SUCCESS') {
|
||||||
setData(getFormattedBandiData(data.data));
|
setData(getFormattedBandiData(data.data));
|
||||||
}
|
}
|
||||||
storeSet.main.unsetAsyncRequest();
|
storeSet.main.unsetAsyncRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
const errGetCallback = (data) => {
|
const errGetBandoCallback = (data) => {
|
||||||
if (bandoMsgs.current && data.message) {
|
if (bandoMsgs.current && data.message) {
|
||||||
bandoMsgs.current.show([
|
bandoMsgs.current.show([
|
||||||
{
|
{
|
||||||
@@ -126,11 +124,33 @@ const BandoViewBeneficiario = () => {
|
|||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getApplCallback = (data) => {
|
||||||
|
if (data.status === 'SUCCESS') {
|
||||||
|
console.log(data.data)
|
||||||
|
}
|
||||||
|
storeSet.main.unsetAsyncRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
const errGetApplCallback = (data) => {
|
||||||
|
/*if (bandoMsgs.current && data.message) {
|
||||||
|
bandoMsgs.current.show([
|
||||||
|
{
|
||||||
|
sticky: true, severity: 'error', summary: '',
|
||||||
|
detail: data.message,
|
||||||
|
closable: true
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}*/
|
||||||
|
set404FromErrorResponse(data);
|
||||||
|
storeSet.main.unsetAsyncRequest();
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const parsed = parseInt(id)
|
const parsed = parseInt(id)
|
||||||
const bandoId = !isNaN(parsed) ? parsed : 0;
|
const bandoId = !isNaN(parsed) ? parsed : 0;
|
||||||
storeSet.main.setAsyncRequest();
|
storeSet.main.setAsyncRequest();
|
||||||
BandoService.getBando(bandoId, getCallback, errGetCallback);
|
BandoService.getBando(bandoId, getBandoCallback, errGetBandoCallback);
|
||||||
|
ApplicationService.getApplications(getApplCallback, errGetApplCallback)
|
||||||
}, [id]);
|
}, [id]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -289,6 +309,7 @@ const BandoViewBeneficiario = () => {
|
|||||||
icon="pi pi-download" iconPos="right"/>
|
icon="pi pi-download" iconPos="right"/>
|
||||||
<Button
|
<Button
|
||||||
type="button"
|
type="button"
|
||||||
|
disabled={isApplRequest}
|
||||||
onClick={submitApplication}
|
onClick={submitApplication}
|
||||||
label={__('Presenta Domanda', 'gepafin')}
|
label={__('Presenta Domanda', 'gepafin')}
|
||||||
icon="pi pi-save" iconPos="right"/>
|
icon="pi pi-save" iconPos="right"/>
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ const LatestBandiTable = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const actionsBodyTemplate = (rowData) => {
|
const actionsBodyTemplate = (rowData) => {
|
||||||
return <Link to={`/tenders/${rowData.id}/preview`}>
|
return <Link to={`/tenders/${rowData.id}`}>
|
||||||
<Button severity="info" label={__('Partecipa', 'gepafin')} icon="pi pi-arrow-right" size="small" iconPos="right" />
|
<Button severity="info" label={__('Partecipa', 'gepafin')} icon="pi pi-arrow-right" size="small" iconPos="right" />
|
||||||
</Link>
|
</Link>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ const MyLatestSubmissionsTable = () => {
|
|||||||
modify_date: '2024-08-30T00:00:00+00:00',
|
modify_date: '2024-08-30T00:00:00+00:00',
|
||||||
progress: 50,
|
progress: 50,
|
||||||
status: 'DRAFT',
|
status: 'DRAFT',
|
||||||
id: 11,
|
id: 33,
|
||||||
callId: 11
|
callId: 52
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Bando Sostenibilità 2024',
|
name: 'Bando Sostenibilità 2024',
|
||||||
@@ -47,8 +47,8 @@ const MyLatestSubmissionsTable = () => {
|
|||||||
modify_date: '2024-08-15T00:00:00+00:00',
|
modify_date: '2024-08-15T00:00:00+00:00',
|
||||||
progress: 25,
|
progress: 25,
|
||||||
status: 'DRAFT',
|
status: 'DRAFT',
|
||||||
id: 9,
|
id: 34,
|
||||||
callId: 12
|
callId: 53
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
setItems(getFormattedBandiData(items));
|
setItems(getFormattedBandiData(items));
|
||||||
@@ -140,7 +140,7 @@ const MyLatestSubmissionsTable = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const actionsBodyTemplate = (rowData) => {
|
const actionsBodyTemplate = (rowData) => {
|
||||||
return <Link to={`/tenders/${rowData.callId}/application`}>
|
return <Link to={`/applications/${rowData.id}`}>
|
||||||
<Button severity="info" label={__('Modifica', 'gepafin')} icon="pi pi-pencil" size="small" iconPos="right" />
|
<Button severity="info" label={__('Modifica', 'gepafin')} icon="pi pi-pencil" size="small" iconPos="right" />
|
||||||
</Link>
|
</Link>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,35 +28,44 @@ const routes = ({ role }) => {
|
|||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders" element={<DefaultLayout>
|
<Route path="/tenders" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <Bandi/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <Bandi/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id" element={<DefaultLayout>
|
<Route path="/tenders/:id" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoEdit/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoEdit/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <BandoViewBeneficiario/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/preview" element={<DefaultLayout>
|
<Route path="/tenders/:id/preview" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoView/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoView/> : null}
|
||||||
{'ROLE_BENEFICIARY' === role ? <BandoViewBeneficiario/> : null}
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/preview-evaluation" element={<DefaultLayout>
|
<Route path="/tenders/:id/preview-evaluation" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoView/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoView/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/forms" element={<DefaultLayout>
|
<Route path="/tenders/:id/forms" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoForms/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoForms/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/forms/:formId" element={<DefaultLayout>
|
<Route path="/tenders/:id/forms/:formId" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoFormsEdit/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoFormsEdit/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/forms/:formId/preview" element={<DefaultLayout>
|
<Route path="/tenders/:id/forms/:formId/preview" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoFormsPreview/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoFormsPreview/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/tenders/:id/flow" element={<DefaultLayout>
|
<Route path="/tenders/:id/flow" element={<DefaultLayout>
|
||||||
{'ROLE_SUPER_ADMIN' === role ? <BandoFlowEdit/> : null}
|
{'ROLE_SUPER_ADMIN' === role ? <BandoFlowEdit/> : null}
|
||||||
</DefaultLayout>}/>
|
{'ROLE_BENEFICIARY' === role ? <PageNotFound/> : null}
|
||||||
<Route path="/tenders/:id/application/" element={<DefaultLayout>
|
|
||||||
{'ROLE_BENEFICIARY' === role ? <BandoApplication/> : null}
|
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
<Route path="/applications" element={<DefaultLayout>
|
<Route path="/applications" element={<DefaultLayout>
|
||||||
|
{'ROLE_SUPER_ADMIN' === role ? <PageNotFound/> : null}
|
||||||
{'ROLE_BENEFICIARY' === role ? <Applications/> : null}
|
{'ROLE_BENEFICIARY' === role ? <Applications/> : null}
|
||||||
</DefaultLayout>}/>
|
</DefaultLayout>}/>
|
||||||
|
<Route path="/applications/:id/" element={<DefaultLayout>
|
||||||
|
{'ROLE_SUPER_ADMIN' === role ? <PageNotFound/> : null}
|
||||||
|
{'ROLE_BENEFICIARY' === role ? <BandoApplication/> : null}
|
||||||
|
</DefaultLayout>}/>
|
||||||
</Route>
|
</Route>
|
||||||
<Route exact path="/login" element={<Login/>}/>
|
<Route exact path="/login" element={<Login/>}/>
|
||||||
{/*<Route exact path="/forgot-password" element={<ForgotPassword/>}/>*/}
|
{/*<Route exact path="/forgot-password" element={<ForgotPassword/>}/>*/}
|
||||||
|
|||||||
14
src/service/application-service.js
Normal file
14
src/service/application-service.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { NetworkService } from './network-service';
|
||||||
|
|
||||||
|
const API_BASE_URL = process.env.REACT_APP_API_EXECUTION_ADDRESS;
|
||||||
|
|
||||||
|
export default class ApplicationService {
|
||||||
|
|
||||||
|
static getApplications = (callback, errCallback) => {
|
||||||
|
NetworkService.get(`${API_BASE_URL}/application`, callback, errCallback);
|
||||||
|
};
|
||||||
|
|
||||||
|
static getApplication = (id, callback, errCallback) => {
|
||||||
|
NetworkService.get(`${API_BASE_URL}/application/${id}`, callback, errCallback);
|
||||||
|
};
|
||||||
|
}
|
||||||
151
src/tempData.js
151
src/tempData.js
@@ -551,6 +551,157 @@ export const elementItems = [
|
|||||||
maxSize: 100000,
|
maxSize: 100000,
|
||||||
custom: null
|
custom: null
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 11,
|
||||||
|
sortOrder: 11,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo Partita IVA',
|
||||||
|
description: "Specifico per l'inserimento del numero di Partita IVA",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "Partita IVA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: true,
|
||||||
|
minLength: 11,
|
||||||
|
maxLength: 11,
|
||||||
|
custom: 'isPIVA'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 12,
|
||||||
|
sortOrder: 12,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo Codice Fiscale',
|
||||||
|
description: "Specifico per l'inserimento del Codice Fiscale italiano per persone fisiche e giuridiche",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "Codice Fiscale"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: true,
|
||||||
|
minLength: 11,
|
||||||
|
maxLength: 16,
|
||||||
|
custom: 'isCodiceFiscale'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 13,
|
||||||
|
sortOrder: 13,
|
||||||
|
name: 'numberinput',
|
||||||
|
label: 'Campo CAP',
|
||||||
|
description: "Per l'inserimento del Codice di Avviamento Postale",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "CAP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: true,
|
||||||
|
custom: 'isCAP'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 14,
|
||||||
|
sortOrder: 14,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo IBAN',
|
||||||
|
description: "Per l'inserimento del codice IBAN",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "IBAN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: true,
|
||||||
|
custom: 'isIBAN'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 15,
|
||||||
|
sortOrder: 15,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo Email',
|
||||||
|
description: "Per l'inserimento di indirizzi email standard (non PEC)",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "nome@esempio.it"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: false,
|
||||||
|
custom: 'isEmail'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 16,
|
||||||
|
sortOrder: 16,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo PEC',
|
||||||
|
description: "Specifico per l'inserimento di un indirizzo di Posta Elettronica Certificata",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "nome@pec.it"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: false,
|
||||||
|
custom: 'isEmailPEC'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 17,
|
||||||
|
sortOrder: 17,
|
||||||
|
name: 'textinput',
|
||||||
|
label: 'Campo URL',
|
||||||
|
description: "Per l'inserimento di indirizzi web",
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
name: "label",
|
||||||
|
value: "Indirizzo URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "placeholder",
|
||||||
|
value: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
validators: {
|
||||||
|
isRequired: false,
|
||||||
|
custom: 'isUrl'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user