- added new settings for call;

- added duplciate form field functionality to form builder;
- added improvements to form builder;
- fixed issue with saving data in evaluation;
This commit is contained in:
Vitalii Kiiko
2025-02-06 17:25:46 +01:00
15 changed files with 944 additions and 337 deletions

View File

@@ -19,7 +19,7 @@ import { MultiSelect } from 'primereact/multiselect';
import { dynamicDataOptions } from '../../../../configData';
const BuilderElementSettings = ({ closeSettingsFn, bandoStatus }) => {
const BuilderElementSettings = ({ closeSettingsFn, callStatus, context }) => {
const elements = useStore().main.formElements();
const activeElement = useStore().main.activeElement();
const criteriaOptions = useStore().main.bandoCriteria();
@@ -123,6 +123,10 @@ const BuilderElementSettings = ({ closeSettingsFn, bandoStatus }) => {
});
}
settings = settings.filter(o => context === 'call'
? !['isRequestedAmount', 'isDelegation'].includes(o.name)
: !['isChecklistItem'].includes(o.name));
if (chosen) {
setActiveElementData(klona(chosen));
setSettings(settings);
@@ -149,7 +153,7 @@ const BuilderElementSettings = ({ closeSettingsFn, bandoStatus }) => {
.map((o) => <ElementSetting
key={o.name}
setting={o}
bandoStatus={bandoStatus}
callStatus={callStatus}
changeFn={onChange}
updateDataFn={onUpdateOptions}/>)
: null}
@@ -220,7 +224,8 @@ const BuilderElementSettings = ({ closeSettingsFn, bandoStatus }) => {
</div> : null}
</div>) : null}
</TabPanel> : null}
<TabPanel header={__('Criteri', 'gepafin')}>
{context === 'application'
? <TabPanel header={__('Criteri', 'gepafin')}>
<div className="formElementSettings__field">
<label htmlFor="criteria">{__('Criteri di valutazione', 'gepafin')}</label>
<MultiSelect
@@ -233,25 +238,28 @@ const BuilderElementSettings = ({ closeSettingsFn, bandoStatus }) => {
display="chip"
placeholder={__('Scegli', 'gepafin')}/>
</div>
</TabPanel>
</TabPanel> : null}
{settings
&& settings
.filter(o => ['variable', 'formula'].includes(o.name)).length > 0
? <TabPanel header={__('Calculation', 'gepafin')}>
? <TabPanel header={__('Calcolo', 'gepafin')}>
{settings
? settings
.filter(o => ['variable', 'formula'].includes(o.name))
.map((o) => <ElementSetting
key={o.name}
setting={o}
bandoStatus={bandoStatus}
callStatus={callStatus}
changeFn={onChange}
updateDataFn={onUpdateOptions}/>)
: null}
</TabPanel> : null}
</TabView>
<Button label={__('Salva', 'gepafin')} onClick={saveSettings}/>
<div style={{display: 'flex', gap: '0.5rem'}}>
<Button label={__('Annulla', 'gepafin')} onClick={closeSettingsFn} severity="danger"/>
<Button label={__('Salva', 'gepafin')} onClick={saveSettings}/>
</div>
</div>
: null
)