- added two new settings related to CSV report;

This commit is contained in:
Vitalii Kiiko
2025-04-14 10:00:18 +02:00
parent aaad6e0fd7
commit f9b54d6350
5 changed files with 183 additions and 10 deletions

View File

@@ -8,6 +8,7 @@ import { storeSet, useStoreValue } from '../../store';
// api // api
import BandoService from '../../service/bando-service'; import BandoService from '../../service/bando-service';
import FormsService from '../../service/forms-service';
// tools // tools
import getBandoLabel from '../../helpers/getBandoLabel'; import getBandoLabel from '../../helpers/getBandoLabel';
@@ -20,7 +21,6 @@ import { Steps } from 'primereact/steps';
import BandoEditFormStep1 from './components/BandoEditFormStep1'; import BandoEditFormStep1 from './components/BandoEditFormStep1';
import BandoEditFormStep2 from './components/BandoEditFormStep2'; import BandoEditFormStep2 from './components/BandoEditFormStep2';
import { Messages } from 'primereact/messages'; import { Messages } from 'primereact/messages';
import FormsService from '../../service/forms-service';
import BlockingOverlay from '../../components/BlockingOverlay'; import BlockingOverlay from '../../components/BlockingOverlay';
import { Toast } from 'primereact/toast'; import { Toast } from 'primereact/toast';
import BandoEditFormStep3 from './components/BandoEditFormStep3'; import BandoEditFormStep3 from './components/BandoEditFormStep3';

View File

@@ -40,6 +40,8 @@ const ElementSetting = ({ setting, changeFn, updateDataFn, bandoStatus }) => {
variable: __('Variabile (lettere, cifre e "_"; il primo carattere deve essere una lettera!)', 'gepafin'), variable: __('Variabile (lettere, cifre e "_"; il primo carattere deve essere una lettera!)', 'gepafin'),
formula: __('Formula di calcolo automatico', 'gepafin'), formula: __('Formula di calcolo automatico', 'gepafin'),
isChecklistItem: __('Fa parte di "checklist"?', 'gepafin'), isChecklistItem: __('Fa parte di "checklist"?', 'gepafin'),
reportEnable: __('Aggiungere nel report CSV?', 'gepafin'),
reportHeader: __('Nome della colonna nel CSV', 'gepafin')
} }
const settingDescription = { const settingDescription = {
@@ -114,7 +116,7 @@ const ElementSetting = ({ setting, changeFn, updateDataFn, bandoStatus }) => {
name={setting.name} name={setting.name}
bandoStatus={bandoStatus} bandoStatus={bandoStatus}
setDataFn={updateDataFn}/> setDataFn={updateDataFn}/>
} else if (['isRequestedAmount', 'isDelegation', 'isChecklistItem'].includes(setting.name)) { } else if (['isRequestedAmount', 'isDelegation', 'isChecklistItem', 'reportEnable'].includes(setting.name)) {
return <InputSwitch return <InputSwitch
checked={setting.value} checked={setting.value}
onChange={(e) => changeFn(e.value, setting.name)}/> onChange={(e) => changeFn(e.value, setting.name)}/>

View File

@@ -27,6 +27,7 @@ const BuilderElementSettings = ({ closeSettingsFn, callStatus, context }) => {
const [settings, setSettings] = useState([]); const [settings, setSettings] = useState([]);
const [validators, setValidators] = useState({}); const [validators, setValidators] = useState({});
const [dynamicData, setDynamicData] = useState([]); const [dynamicData, setDynamicData] = useState([]);
const [reportData, setReportData] = useState({});
const [criteria, setCriteria] = useState([]); const [criteria, setCriteria] = useState([]);
const numberBasedValidatorFields = ['min', 'max', 'minLength', 'maxLength']; const numberBasedValidatorFields = ['min', 'max', 'minLength', 'maxLength'];
const customValidationOptions = [ const customValidationOptions = [
@@ -150,7 +151,7 @@ const BuilderElementSettings = ({ closeSettingsFn, callStatus, context }) => {
<TabPanel header={__('Presentation', 'gepafin')}> <TabPanel header={__('Presentation', 'gepafin')}>
{settings {settings
? settings ? settings
.filter(o => !['variable', 'formula'].includes(o.name)) .filter(o => !['variable', 'formula', 'reportEnable', 'reportHeader'].includes(o.name))
.map((o) => <ElementSetting .map((o) => <ElementSetting
key={o.name} key={o.name}
setting={o} setting={o}
@@ -242,8 +243,7 @@ const BuilderElementSettings = ({ closeSettingsFn, callStatus, context }) => {
placeholder={__('Scegli', 'gepafin')}/> placeholder={__('Scegli', 'gepafin')}/>
</div> </div>
</TabPanel> : null} </TabPanel> : null}
{settings {settings && settings
&& settings
.filter(o => ['variable', 'formula'].includes(o.name)).length > 0 .filter(o => ['variable', 'formula'].includes(o.name)).length > 0
? <TabPanel header={__('Calcolo', 'gepafin')}> ? <TabPanel header={__('Calcolo', 'gepafin')}>
{settings {settings
@@ -257,9 +257,21 @@ const BuilderElementSettings = ({ closeSettingsFn, callStatus, context }) => {
updateDataFn={onUpdateOptions}/>) updateDataFn={onUpdateOptions}/>)
: null} : null}
</TabPanel> : null} </TabPanel> : null}
<TabPanel header={__('Rapporto CSV', 'gepafin')}>
{settings
? settings
.filter(o => ['reportEnable', 'reportHeader'].includes(o.name))
.map((o) => <ElementSetting
key={o.name}
setting={o}
callStatus={callStatus}
changeFn={onChange}
updateDataFn={onUpdateOptions}/>)
: null}
</TabPanel>
</TabView> </TabView>
<div style={{display: 'flex', gap: '0.5rem'}}> <div style={{ display: 'flex', gap: '0.5rem' }}>
<Button label={__('Annulla', 'gepafin')} onClick={closeSettingsFn} severity="danger"/> <Button label={__('Annulla', 'gepafin')} onClick={closeSettingsFn} severity="danger"/>
<Button label={__('Salva', 'gepafin')} onClick={saveSettings}/> <Button label={__('Salva', 'gepafin')} onClick={saveSettings}/>
</div> </div>

View File

@@ -24,9 +24,6 @@ import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
// api // api
import FormsService from '../../service/forms-service'; import FormsService from '../../service/forms-service';
import BandoService from '../../service/bando-service'; import BandoService from '../../service/bando-service';
// TODO temp data
import { elementItems } from '../../tempData';
import DocumentCategoryService from '../../service/document-category-service'; import DocumentCategoryService from '../../service/document-category-service';
// TODO temp data // TODO temp data
@@ -222,7 +219,9 @@ const BandoFormsEdit = () => {
const getElementItemsCallback = (data) => { const getElementItemsCallback = (data) => {
if (data.status === 'SUCCESS') { if (data.status === 'SUCCESS') {
//storeSet('elementItems', elementItems.sort((a, b) => a.sortOrder - b.sortOrder)); /*storeSet('elementItems', elementItems
.filter(o => o.id !== 22)
.sort((a, b) => a.sortOrder - b.sortOrder));*/
storeSet('elementItems', data.data storeSet('elementItems', data.data
.filter(o => o.id !== 22) .filter(o => o.id !== 22)
.sort((a, b) => a.sortOrder - b.sortOrder)); .sort((a, b) => a.sortOrder - b.sortOrder));

View File

@@ -13,6 +13,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -37,6 +45,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -61,6 +77,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -101,6 +125,14 @@ export const elementItems = [
name: "formula", name: "formula",
value: "" value: ""
}, },
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
}
], ],
validators: { validators: {
isRequired: false, isRequired: false,
@@ -124,6 +156,14 @@ export const elementItems = [
{ {
name: "options", name: "options",
value: [] value: []
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -145,6 +185,14 @@ export const elementItems = [
{ {
name: "options", name: "options",
value: [] value: []
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -166,6 +214,14 @@ export const elementItems = [
{ {
name: "options", name: "options",
value: [] value: []
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -189,6 +245,14 @@ export const elementItems = [
{ {
name: "isChecklistItem", name: "isChecklistItem",
value: false value: false
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -205,6 +269,14 @@ export const elementItems = [
{ {
name: "label", name: "label",
value: "Data" value: "Data"
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -252,6 +324,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -273,6 +353,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -294,6 +382,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -315,6 +411,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -336,6 +440,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "nome@esempio.it" value: "nome@esempio.it"
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -357,6 +469,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "nome@pec.it" value: "nome@pec.it"
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -378,6 +498,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "" value: ""
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -399,6 +527,14 @@ export const elementItems = [
{ {
name: "placeholder", name: "placeholder",
value: "Numero identificativo" value: "Numero identificativo"
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -434,6 +570,14 @@ export const elementItems = [
{ {
name: "table_columns", name: "table_columns",
value: {} value: {}
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -458,6 +602,14 @@ export const elementItems = [
{ {
name: "variable", name: "variable",
value: [] value: []
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {
@@ -478,6 +630,14 @@ export const elementItems = [
{ {
name: "isChecklistItem", name: "isChecklistItem",
value: true value: true
},
{
name: "reportEnable",
value: false
},
{
name: "reportHeader",
value: ""
} }
], ],
validators: { validators: {