- added table validation custom function;

This commit is contained in:
Vitalii Kiiko
2024-10-13 12:41:40 +02:00
parent e2d630b92f
commit 131b2dbf57
4 changed files with 28 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
import validate from 'validate.js'; import validate from 'validate.js';
import { match, isEmpty, is } from 'ramda'; import { match, isEmpty, is, pathOr, isNil } from 'ramda';
import CodiceFiscale from 'codice-fiscale-js'; import CodiceFiscale from 'codice-fiscale-js';
export const isPIVA = (v) => { export const isPIVA = (v) => {
@@ -67,12 +67,31 @@ export const maxChecks = (v, num) => {
return is(Array, v) ? v.length <= parseInt(num) : false; return is(Array, v) ? v.length <= parseInt(num) : false;
} }
export const nonEmptyTables = (v = [], colsCfg = []) => { export const nonEmptyTables = (v = [], tableCfg = []) => {
//console.log('nonEmptyTables',v) //console.log('nonEmptyTables',v)
/*const cellValues = v.map(row => { const colsCfg = pathOr([], ['stateFieldData'], tableCfg);
const nonPredefinedCells = colsCfg
.filter(o => !o.predefined)
.map(o => o.name);
let isTableValid = true;
let atLeastOneCellFilled = false
return isEmpty(row) // eslint-disable-next-line array-callback-return
v.map((row) => {
if (isEmpty(row)) {
isTableValid = false;
} else {
// eslint-disable-next-line array-callback-return
nonPredefinedCells.map((k) => {
if (isNil(row[k]) || isEmpty(row[k])) {
isTableValid = atLeastOneCellFilled;
} else {
atLeastOneCellFilled = true;
isTableValid = true;
}
});
}
}); });
console.log('cellValues', cellValues, colsCfg)*/
return is(Array, v) ? v.length >= 1 : false; return is(Array, v) ? v.length >= 1 && isTableValid : false;
} }

View File

@@ -156,6 +156,7 @@ const BandoApplication = () => {
const saveDraft = (saveAndMove = '') => { const saveDraft = (saveAndMove = '') => {
trigger(); trigger();
const formValues = getValues(); const formValues = getValues();
const usedFieldsIds = pluck('id', formData); const usedFieldsIds = pluck('id', formData);
const newFormValues = Object.keys(formValues) const newFormValues = Object.keys(formValues)

View File

@@ -14,7 +14,6 @@ import { TabView, TabPanel } from 'primereact/tabview';
import { InputSwitch } from 'primereact/inputswitch'; import { InputSwitch } from 'primereact/inputswitch';
import ElementSetting from './components/ElementSetting'; import ElementSetting from './components/ElementSetting';
import { Dropdown } from 'primereact/dropdown'; import { Dropdown } from 'primereact/dropdown';
import { maxChecks, minChecks } from '../../../../helpers/validators';
const BuilderElementSettings = ({ closeSettings }) => { const BuilderElementSettings = ({ closeSettings }) => {
const elements = useStore().main.formElements(); const elements = useStore().main.formElements();

View File

@@ -65,7 +65,7 @@ const DashboardBeneficiario = () => {
<Button <Button
onClick={goToAllSubmissions} onClick={goToAllSubmissions}
label={__('Nuova domanda', 'gepafin')} icon="pi pi-plus" iconPos="right"/> label={__('Nuova domanda', 'gepafin')} icon="pi pi-plus" iconPos="right"/>
<Button {/*<Button
disabled={true} disabled={true}
outlined outlined
onClick={() => { onClick={() => {
@@ -76,7 +76,7 @@ const DashboardBeneficiario = () => {
outlined outlined
onClick={() => { onClick={() => {
}} }}
label={__('Contatta assistenza', 'gepafin')} icon="pi pi-envelope" iconPos="right"/> label={__('Contatta assistenza', 'gepafin')} icon="pi pi-envelope" iconPos="right"/>*/}
</div> </div>
</div> </div>
</div> </div>