- temp fix: form field items from JS config;

- fixed displaying times for call;
- fixed reading saved flow;
This commit is contained in:
Vitalii Kiiko
2024-10-01 16:28:46 +02:00
parent fefba1acaf
commit b755c6e383
10 changed files with 62 additions and 13 deletions

View File

@@ -24,7 +24,7 @@ function App() {
} }
} }
const errCallback = () => { const errCallback = (data) => {
storeSet.main.doLogout(); storeSet.main.doLogout();
storeSet.main.unsetAsyncRequest(); storeSet.main.unsetAsyncRequest();
} }

View File

@@ -0,0 +1,9 @@
const getTimeParsedFromString = ( t ) => {
let d = new Date();
const time = t.match( /(\d+)(?::(\d\d))?\s*(p?)/ );
d.setHours( parseInt( time[1]) + (time[3] ? 12 : 0) );
d.setMinutes( parseInt( time[2]) || 0 );
return d;
}
export default getTimeParsedFromString;

View File

@@ -7,7 +7,10 @@ const rootEl = document.getElementById('root');
const rootReact = createRoot(rootEl); const rootReact = createRoot(rootEl);
rootReact.render( rootReact.render(
<App/>
);
/*rootReact.render(
<React.StrictMode> <React.StrictMode>
<App/> <App/>
</React.StrictMode> </React.StrictMode>
); );*/

View File

@@ -23,6 +23,8 @@ import { isEmail } from '../../../../helpers/validators';
// store // store
import { storeSet } from '../../../../store'; import { storeSet } from '../../../../store';
import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse';
import getTimeParsedFromString from '../../../../helpers/getTimeParsedFromString';
const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, status }, ref) { const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, status }, ref) {
const navigate = useNavigate(); const navigate = useNavigate();
@@ -119,7 +121,7 @@ const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, st
} }
const errCreateCallback = (data) => { const errCreateCallback = (data) => {
console.log('errCreateCallback', data); set404FromErrorResponse(data);
storeSet.main.unsetAsyncRequest(); storeSet.main.unsetAsyncRequest();
} }
@@ -194,6 +196,17 @@ const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, st
if (!isNil(formInitialData.dates) && formInitialData.dates.length) { if (!isNil(formInitialData.dates) && formInitialData.dates.length) {
newFormData.dates = formInitialData.dates.map(v => is(String, v) ? new Date(v) : (v ? v : '')); newFormData.dates = formInitialData.dates.map(v => is(String, v) ? new Date(v) : (v ? v : ''));
} }
if (!isNil(formInitialData.startTime) && !isEmpty(formInitialData.startTime)) {
newFormData.startTime = is(String, formInitialData.startTime)
? getTimeParsedFromString(formInitialData.startTime)
: formInitialData.startTime;
}
if (!isNil(formInitialData.endTime) && !isEmpty(formInitialData.endTime)) {
newFormData.endTime = is(String, formInitialData.endTime)
? getTimeParsedFromString(formInitialData.endTime)
: formInitialData.endTime;
}
Object.keys(newFormData).map(v => setValue(v, newFormData[v])); Object.keys(newFormData).map(v => setValue(v, newFormData[v]));
}, [formInitialData]); }, [formInitialData]);

View File

@@ -20,6 +20,7 @@ import LookupdataService from '../../../../service/lookupdata-service';
// store // store
import { storeSet } from '../../../../store'; import { storeSet } from '../../../../store';
import getTimeParsedFromString from '../../../../helpers/getTimeParsedFromString';
const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, status }, ref) { const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, status }, ref) {
const navigate = useNavigate(); const navigate = useNavigate();
@@ -186,6 +187,17 @@ const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, st
if (!isNil(formInitialData.dates) && formInitialData.dates.length) { if (!isNil(formInitialData.dates) && formInitialData.dates.length) {
newFormData.dates = formInitialData.dates.map(v => is(String, v) ? new Date(v) : (v ? v : '')); newFormData.dates = formInitialData.dates.map(v => is(String, v) ? new Date(v) : (v ? v : ''));
} }
if (!isNil(formInitialData.startTime) && !isEmpty(formInitialData.startTime)) {
newFormData.startTime = is(String, formInitialData.startTime)
? getTimeParsedFromString(formInitialData.startTime)
: formInitialData.startTime;
}
if (!isNil(formInitialData.endTime) && !isEmpty(formInitialData.endTime)) {
newFormData.endTime = is(String, formInitialData.endTime)
? getTimeParsedFromString(formInitialData.endTime)
: formInitialData.endTime;
}
Object.keys(newFormData).map(v => setValue(v, newFormData[v])); Object.keys(newFormData).map(v => setValue(v, newFormData[v]));
}, [formInitialData]); }, [formInitialData]);

View File

@@ -252,6 +252,13 @@ const BandoFlowEdit = () => {
} }
}, [forms]); }, [forms]);
useEffect(() => {
const chosenFieldItem = head(flowData.filter(o => !isEmpty(o.chosenField)));
if (chosenFieldItem) {
setMainField(chosenFieldItem.chosenField);
}
}, [flowData])
useEffect(() => { useEffect(() => {
return () => { return () => {
storeSet.main.flowForms([]); storeSet.main.flowForms([]);
@@ -302,7 +309,7 @@ const BandoFlowEdit = () => {
placeholder={__('Scegli il campo', 'gepafin')}/> placeholder={__('Scegli il campo', 'gepafin')}/>
</div> : null} </div> : null}
{forms.length > 2 && mainField && isFlowAllowed || forms.length === 2 && isFlowAllowed {(forms.length > 2 && mainField && isFlowAllowed) || (forms.length === 2 && isFlowAllowed)
? <div className="appForm__field"> ? <div className="appForm__field">
<label htmlFor="finalForm">{__('Scegli form finale', 'gepafin')}</label> <label htmlFor="finalForm">{__('Scegli form finale', 'gepafin')}</label>
<Dropdown <Dropdown

View File

@@ -1,5 +1,6 @@
import React from 'react'; import React from 'react';
import { __ } from '@wordpress/i18n'; import { __ } from '@wordpress/i18n';
import { is } from 'ramda';
// components // components
import ElementSettingRepeater from '../ElementSettingRepeater'; import ElementSettingRepeater from '../ElementSettingRepeater';
@@ -39,14 +40,17 @@ const ElementSetting = ({ setting, changeFn, updateDataFn }) => {
}; };
const header = renderHeader(); const header = renderHeader();
console.log('setting', setting)
return <div className="formElementSettings__field" key={setting.name}> return <div className="formElementSettings__field" key={setting.name}>
<label htmlFor={setting.name}>{settingLabels[setting.name]}</label> <label htmlFor={setting.name}>{settingLabels[setting.name]}</label>
{setting.name === 'options' {setting.name === 'options'
? <ElementSettingRepeater value={setting.value} name={setting.name} setDataFn={updateDataFn}/> ? <ElementSettingRepeater
value={is(Array, setting.value) ? setting.value : []}
name={setting.name}
setDataFn={updateDataFn}/>
: setting.name === 'mime' : setting.name === 'mime'
? <MultiSelect ? <MultiSelect
value={setting.value} value={is(Array, setting.value) ? setting.value : []}
onChange={(e) => updateDataFn(setting.name, e.value)} onChange={(e) => updateDataFn(setting.name, e.value)}
options={mimeTypes} options={mimeTypes}
optionLabel="name" optionLabel="name"

View File

@@ -45,9 +45,10 @@ const ElementSettingRepeater = ({
}, []); }, []);
useEffect(() => { useEffect(() => {
console.log('useEffect', [...stateFieldData])
setDataFn(name, [...stateFieldData]); setDataFn(name, [...stateFieldData]);
}, [stateFieldData]) }, [stateFieldData])
console.log('stateFieldData', stateFieldData, value)
return ( return (
<div className="formElementSettings__repeater"> <div className="formElementSettings__repeater">
{stateFieldData.map((o, i) => <div key={i} className="formElementSettings__repeaterItem"> {stateFieldData.map((o, i) => <div key={i} className="formElementSettings__repeaterItem">

View File

@@ -23,7 +23,7 @@ import FormsService from '../../service/forms-service';
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
// TODO temp data // TODO temp data
//import { elementItems } from '../../tempData'; import { elementItems } from '../../tempData';
const BandoFormsEdit = () => { const BandoFormsEdit = () => {
const { id, formId } = useParams(); const { id, formId } = useParams();
@@ -208,8 +208,8 @@ const BandoFormsEdit = () => {
const getElementItemsCallback = (data) => { const getElementItemsCallback = (data) => {
if (data.status === 'SUCCESS') { if (data.status === 'SUCCESS') {
//storeSet.main.elementItems(elementItems.sort((a, b) => a.sortOrder - b.sortOrder)); storeSet.main.elementItems(elementItems.sort((a, b) => a.sortOrder - b.sortOrder));
storeSet.main.elementItems(data.data.sort((a, b) => a.sortOrder - b.sortOrder)); //storeSet.main.elementItems(data.data.sort((a, b) => a.sortOrder - b.sortOrder));
} }
storeSet.main.unsetAsyncRequest(); storeSet.main.unsetAsyncRequest();
} }

View File

@@ -734,7 +734,7 @@ export const elementItems = [
], ],
validators: {} validators: {}
}, },
{ /*{
id: 20, id: 20,
sortOrder: 20, sortOrder: 20,
name: 'table', name: 'table',
@@ -747,5 +747,5 @@ export const elementItems = [
} }
], ],
validators: {} validators: {}
} }*/
] ]