- saving progress;

This commit is contained in:
Vitalii Kiiko
2024-12-10 16:29:05 +01:00
parent 33d5cd8f2f
commit 27d1ff3922
11 changed files with 65 additions and 32 deletions

View File

@@ -262,7 +262,7 @@
.appPageSection__checklist { .appPageSection__checklist {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 1rem; gap: 1.2rem;
div { div {
display: flex; display: flex;

View File

@@ -1,5 +1,9 @@
.fieldsRepeater { .fieldsRepeater {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 30px;
width: 100%;
} }
.fieldsRepeater form { .fieldsRepeater form {
@@ -7,7 +11,7 @@
} }
.fieldsRepeater__panel { .fieldsRepeater__panel {
width: 100%;
} }
.fieldsRepeater__heading { .fieldsRepeater__heading {
@@ -21,5 +25,4 @@
} }
.fieldsRepeater__addNew { .fieldsRepeater__addNew {
margin-top: 30px;
} }

View File

@@ -21,7 +21,6 @@ const Applications = () => {
navigate('/bandi') navigate('/bandi')
} }
console.log('company', company, chosenCompanyId, companies)
return( return(
<div className="appPage"> <div className="appPage">
<div className="appPage__pageHeader"> <div className="appPage__pageHeader">

View File

@@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { __ } from '@wordpress/i18n'; import { __ } from '@wordpress/i18n';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { isEmpty } from 'ramda'; import { head, isEmpty } from 'ramda';
// store // store
import { useStore } from '../../store'; import { useStore } from '../../store';
@@ -12,11 +12,14 @@ import ErrorBoundary from '../../components/ErrorBoundary';
const BandiBeneficiario = () => { const BandiBeneficiario = () => {
const chosenCompanyId = useStore().main.chosenCompanyId(); const chosenCompanyId = useStore().main.chosenCompanyId();
const companies = useStore().main.companies();
const company = head(companies.filter(o => o.id === chosenCompanyId));
return ( return (
<div className="appPage"> <div className="appPage">
<div className="appPage__pageHeader"> <div className="appPage__pageHeader">
<h1>{__('Bandi disponibili', 'gepafin')}</h1> <h1>{__('Bandi disponibili', 'gepafin')}</h1>
{company ? <span className="companyName">{company.companyName}</span> : null}
</div> </div>
<div className="appPage__spacer"></div> <div className="appPage__spacer"></div>

View File

@@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { __ } from '@wordpress/i18n'; import { __ } from '@wordpress/i18n';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { isEmpty } from 'ramda'; import { head, isEmpty } from 'ramda';
// store // store
import { useStore } from '../../store'; import { useStore } from '../../store';
@@ -11,11 +11,14 @@ import AllBandiAccordion from '../BandiBeneficiario/components/AllBandiAccordion
const BandiPreferredBeneficiario = () => { const BandiPreferredBeneficiario = () => {
const chosenCompanyId = useStore().main.chosenCompanyId(); const chosenCompanyId = useStore().main.chosenCompanyId();
const companies = useStore().main.companies();
const company = head(companies.filter(o => o.id === chosenCompanyId));
return ( return (
<div className="appPage"> <div className="appPage">
<div className="appPage__pageHeader"> <div className="appPage__pageHeader">
<h1>{__('Bandi osservati', 'gepafin')}</h1> <h1>{__('Bandi osservati', 'gepafin')}</h1>
{company ? <span className="companyName">{company.companyName}</span> : null}
</div> </div>
<div className="appPage__spacer"></div> <div className="appPage__spacer"></div>

View File

@@ -21,6 +21,7 @@ const DashboardBeneficiario = () => {
const [mainStats, setMainStats] = useState({}); const [mainStats, setMainStats] = useState({});
const companies = useStore().main.companies(); const companies = useStore().main.companies();
const chosenCompanyId = useStore().main.chosenCompanyId(); const chosenCompanyId = useStore().main.chosenCompanyId();
const company = head(companies.filter(o => o.id === chosenCompanyId));
const goToAllSubmissions = () => { const goToAllSubmissions = () => {
navigate('/bandi'); navigate('/bandi');
@@ -51,6 +52,7 @@ const DashboardBeneficiario = () => {
<div className="appPage"> <div className="appPage">
<div className="appPage__pageHeader"> <div className="appPage__pageHeader">
<h1>{__('Dashboard', 'gepafin')}</h1> <h1>{__('Dashboard', 'gepafin')}</h1>
{company ? <span className="companyName">{company.companyName}</span> : null}
</div> </div>
<div className="appPage__spacer"></div> <div className="appPage__spacer"></div>

View File

@@ -25,6 +25,7 @@ import { Toast } from 'primereact/toast';
import { Dialog } from 'primereact/dialog'; import { Dialog } from 'primereact/dialog';
import FormField from '../../components/FormField'; import FormField from '../../components/FormField';
import SoccorsoComunications from '../SoccorsoEditPreInstructor/components/SoccorsoComunications'; import SoccorsoComunications from '../SoccorsoEditPreInstructor/components/SoccorsoComunications';
import RepeaterFields from '../DomandaEditPreInstructor/components/RepeaterFields';
const DomandaBeneficiario = () => { const DomandaBeneficiario = () => {
const isAsyncRequest = useStore().main.isAsyncRequest(); const isAsyncRequest = useStore().main.isAsyncRequest();
@@ -239,7 +240,7 @@ const DomandaBeneficiario = () => {
{dataAppl.id {dataAppl.id
? <div className="appPageSection__withBorder columns"> ? <div className="appPageSection__withBorder columns">
<p className="appPageSection__pMeta"> <p className="appPageSection__pMeta">
<span>{__('ID domanda', 'gepafin')}</span> <span>{__('ID domanda', 'gepafin')}</span>
<span>{dataAppl.id}</span> <span>{dataAppl.id}</span>
</p> </p>
<p className="appPageSection__pMeta"> <p className="appPageSection__pMeta">
@@ -275,6 +276,12 @@ const DomandaBeneficiario = () => {
</div> : null} </div> : null}
{data.id {data.id
? <div className="appPageSection">
<h2>{__('Documenti richiesti', 'gepafin')}</h2>
<RepeaterFields sourceId={id} sourceName="evaluation"/>
</div> : null}
{/*{data.id
? <div className="appPageSection"> ? <div className="appPageSection">
<h3>{__('Documenti Richiesti', 'gepafin')}</h3> <h3>{__('Documenti Richiesti', 'gepafin')}</h3>
<form className="appForm" onSubmit={handleSubmit(onSubmit)}> <form className="appForm" onSubmit={handleSubmit(onSubmit)}>
@@ -299,37 +306,37 @@ const DomandaBeneficiario = () => {
/> />
}) : null} }) : null}
</form> </form>
{/*<ol className="appPageSection__list"> <ol className="appPageSection__list">
{data.formFields {data.formFields
? data.formFields.map((o, i) => <li key={o.fieldId} ? data.formFields.map((o, i) => <li key={o.fieldId}
style={{ flexDirection: 'row' }}> style={{ flexDirection: 'row' }}>
<span>{o.label}</span> <span>{o.label}</span>
</li>) : null} </li>) : null}
</ol>*/} </ol>
</div> : null} </div> : null}*/}
{data.id {data.id
? <div className="appPageSection"> ? <div className="appPageSection">
<h2>{__('Comunicazioni', 'gepafin')}</h2> <h2>{__('Comunicazioni', 'gepafin')}</h2>
<SoccorsoComunications amendmentId={data.id} soccorsoStatus={data.status}/> <SoccorsoComunications amendmentId={data.id} soccorsoStatus={data.status}/>
</div> : null} </div> : null}
{data.id {data.id
? <div className="appPageSection__message warning"> ? <div className="appPageSection__message warning">
<i className="pi pi-exclamation-triangle"></i> <i className="pi pi-exclamation-triangle"></i>
<span className="summary">{__('Attenzione', 'gepafin')}</span> <span className="summary">{__('Attenzione', 'gepafin')}</span>
<span>{__('Inviare la documentazione richiesta completa delle integrazioni esclusivamente via PEC. In caso contarrio lintegrazione non può essere ritenuta valida.', 'gepafin')}</span> <span>{__('Inviare la documentazione richiesta completa delle integrazioni esclusivamente via PEC. In caso contarrio lintegrazione non può essere ritenuta valida.', 'gepafin')}</span>
</div> : null} </div> : null}
<div className="appPageSection"> <div className="appPageSection">
<div className="appPageSection__actions"> <div className="appPageSection__actions">
{data.id {data.id
? <Button ? <Button
type="button" type="button"
disabled={isAsyncRequest} disabled={isAsyncRequest}
onClick={() => setIsVisibleEmailDialog(true)} onClick={() => setIsVisibleEmailDialog(true)}
label={__('Invia documenti via PEC', 'gepafin')} label={__('Invia documenti via PEC', 'gepafin')}
icon="pi pi-envelope" iconPos="right"/> : null} icon="pi pi-envelope" iconPos="right"/> : null}
<Button <Button
type="button" type="button"
outlined outlined

View File

@@ -29,8 +29,8 @@ const RepeaterFields = ({ sourceId, sourceName }) => {
return formInitialData; return formInitialData;
}, [formInitialData]), mode: 'onChange' }, [formInitialData]), mode: 'onChange'
}); });
const watchName = watch('name'); const watchName = watch('nameValue');
const watchFile = watch('file'); const watchFile = watch('fileValue');
const onSubmit = () => { const onSubmit = () => {
}; };
@@ -42,8 +42,8 @@ const RepeaterFields = ({ sourceId, sourceName }) => {
} }
const addNew = () => { const addNew = () => {
setValue('name', ''); setValue('nameValue', '');
setValue('file', {}); setValue('fileValue', {});
trigger(); trigger();
const uid = uniqid('f'); const uid = uniqid('f');
const newItem = { const newItem = {
@@ -98,23 +98,23 @@ const RepeaterFields = ({ sourceId, sourceName }) => {
? <div className="fieldsRepeater__fields p-panel-content"> ? <div className="fieldsRepeater__fields p-panel-content">
<FormField <FormField
type="textinput" type="textinput"
fieldName="name" fieldName="nameValue"
label={__('Titolo del file', 'gepafin')} label={__('Titolo del file', 'gepafin')}
control={control} control={control}
errors={errors} errors={errors}
defaultValue={formInitialData['name']} defaultValue={formInitialData['nameValue']}
config={{ required: __('È obbligatorio', 'gepafin') }} config={{ required: __('È obbligatorio', 'gepafin') }}
/> />
<FormField <FormField
type="fileupload" type="fileupload"
setDataFn={setValue} setDataFn={setValue}
saveFormCallback={doUpdateAmendment} saveFormCallback={doUpdateAmendment}
fieldName="file" fieldName="fileValue"
label={__('File', 'gepafin')} label={__('File', 'gepafin')}
control={control} control={control}
register={register} register={register}
errors={errors} errors={errors}
defaultValue={formInitialData['file'] ? formInitialData['file'] : []} defaultValue={formInitialData['fileValue'] ? formInitialData['fileValue'] : []}
accept={[]} accept={[]}
source={sourceName} source={sourceName}
sourceId={sourceId} sourceId={sourceId}

View File

@@ -1,14 +1,23 @@
import React from 'react'; import React from 'react';
import { __ } from '@wordpress/i18n'; import { __ } from '@wordpress/i18n';
import { head } from 'ramda';
// store
import { useStore } from '../../store';
// components // components
import BeneficiarioDomandeTable from './components/BeneficiarioDomandeTable'; import BeneficiarioDomandeTable from './components/BeneficiarioDomandeTable';
const DomandePreInstructor = () => { const DomandePreInstructor = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
const companies = useStore().main.companies();
const company = head(companies.filter(o => o.id === chosenCompanyId));
return( return(
<div className="appPage"> <div className="appPage">
<div className="appPage__pageHeader"> <div className="appPage__pageHeader">
<h1>{__('Archivio domande', 'gepafin')}</h1> <h1>{__('Archivio domande', 'gepafin')}</h1>
{company ? <span className="companyName">{company.companyName}</span> : null}
</div> </div>
<div className="appPage__spacer"></div> <div className="appPage__spacer"></div>

View File

@@ -250,13 +250,13 @@ const SoccorsoAddPreInstructor = () => {
<div className="appPageSection__withBorder grey"> <div className="appPageSection__withBorder grey">
<div className="appPageSection__checklist"> <div className="appPageSection__checklist">
{formData.formFields.map((o, i) => <div key={o.fieldId}> {formData.formFields.map((o, i) => <div key={o.fieldId}>
<Checkbox {/*<Checkbox
inputId={`checklist_${o.fieldId}`} inputId={`checklist_${o.fieldId}`}
onChange={(e) => updateEvaluationValue( onChange={(e) => updateEvaluationValue(
e.checked, e.checked,
`formFields.${i}.selected` `formFields.${i}.selected`
)} )}
checked={o.selected}></Checkbox> checked={o.selected}></Checkbox>*/}
<label htmlFor={`checklist_${o.fieldId}`}>{o.label}</label> <label htmlFor={`checklist_${o.fieldId}`}>{o.label}</label>
</div>)} </div>)}
</div> </div>
@@ -281,6 +281,7 @@ const SoccorsoAddPreInstructor = () => {
<Button <Button
type="button" type="button"
outlined outlined
onClick={goToEvaluationPage}
label={__('Anulla', 'gepafin')} label={__('Anulla', 'gepafin')}
icon="pi pi-times" iconPos="right"/> icon="pi pi-times" iconPos="right"/>
<Button <Button

View File

@@ -28,6 +28,7 @@ import FormField from '../../components/FormField';
import { Editor } from 'primereact/editor'; import { Editor } from 'primereact/editor';
import { InputNumber } from 'primereact/inputnumber'; import { InputNumber } from 'primereact/inputnumber';
import SoccorsoComunications from './components/SoccorsoComunications'; import SoccorsoComunications from './components/SoccorsoComunications';
import RepeaterFields from '../DomandaEditPreInstructor/components/RepeaterFields';
const SoccorsoEditPreInstructor = () => { const SoccorsoEditPreInstructor = () => {
@@ -389,6 +390,11 @@ const SoccorsoEditPreInstructor = () => {
</div> </div>
<div className="appPageSection"> <div className="appPageSection">
<h2>{__('Documenti ricevuti', 'gepafin')}</h2>
<RepeaterFields sourceId={id} sourceName="evaluation"/>
</div>
{/*<div className="appPageSection">
<h2>{__('Documenti Ricevuti', 'gepafin')}</h2> <h2>{__('Documenti Ricevuti', 'gepafin')}</h2>
<form className="appForm" onSubmit={handleSubmit(onSubmit)}> <form className="appForm" onSubmit={handleSubmit(onSubmit)}>
@@ -413,7 +419,7 @@ const SoccorsoEditPreInstructor = () => {
/> />
}) : null} }) : null}
</form> </form>
</div> </div>*/}
<div className="appForm__field"> <div className="appForm__field">
<label>{__('Motivazioni / Note Interne', 'gepafin')}</label> <label>{__('Motivazioni / Note Interne', 'gepafin')}</label>