- added FLOW_ID env variable;

- implemented two types of evaluation flow;
- refactored component related to communication messages;
- fixed displaying elements based on evaluation status;
- fixed some styles;
This commit is contained in:
Vitalii Kiiko
2024-11-22 16:37:59 +01:00
parent 9465cbd55a
commit fdda72b617
10 changed files with 294 additions and 363 deletions

View File

@@ -28,8 +28,8 @@ import BlockingOverlay from '../../components/BlockingOverlay';
import { Toast } from 'primereact/toast';
import HelpIcon from '../../icons/HelpIcon';
import { Dialog } from 'primereact/dialog';
import { classNames } from 'primereact/utils';
import { Dropdown } from 'primereact/dropdown';
const APP_EVALUATION_FLOW_ID = process.env.REACT_APP_EVALUATION_FLOW_ID;
const DomandaEditPreInstructor = () => {
const isAsyncRequest = useStore().main.isAsyncRequest();
@@ -63,6 +63,7 @@ const DomandaEditPreInstructor = () => {
const getCallback = (data) => {
if (data.status === 'SUCCESS') {
setData(getFormattedData(data.data));
setMotivation(data.data.motivation);
}
storeSet.main.unsetAsyncRequest();
}
@@ -158,8 +159,10 @@ const DomandaEditPreInstructor = () => {
criteria: klona(data.criteria),
checklist: klona(data.checklist),
files: klona(data.files),
note: data.note
note: data.note,
motivation
}
ApplicationEvaluationService.updateEvaluation(data.assignedApplicationId, formData, updateStatusCallback, errUpdateStatusCallback);
}
@@ -169,8 +172,10 @@ const DomandaEditPreInstructor = () => {
criteria: klona(data.criteria),
checklist: klona(data.checklist),
files: klona(data.files),
note: data.note
note: data.note,
motivation
}
ApplicationEvaluationService.updateEvaluation(data.assignedApplicationId, formData, updateStatusCallback, errUpdateStatusCallback);
}
@@ -273,7 +278,8 @@ const DomandaEditPreInstructor = () => {
}
const shouldDisableField = (fieldName) => {
return !['EVALUATION', 'OPEN'].includes(data.status) || (['ADMISSIBLE'].includes(data.status) && fieldName !== 'criteria')
return !['EVALUATION'].includes(data.applicationStatus)
|| (['ADMISSIBLE'].includes(data.applicationStatus) && fieldName !== 'criteria')
}
const headerCompleteDialog = () => {
@@ -285,6 +291,7 @@ const DomandaEditPreInstructor = () => {
const hideCompleteDialog = () => {
setIsVisibleCompleteDialog(false);
setOperationType('');
setMotivation('');
}
const footerCompleteDialog = () => {
@@ -304,10 +311,18 @@ const DomandaEditPreInstructor = () => {
}
const initiateRejecting = () => {
setOperationType('approve');
setOperationType('reject');
setIsVisibleCompleteDialog(true);
}
const doCreateAppointment = () => {
// TODO
}
const doMakeAdmisible = () => {
// TODO
}
useEffect(() => {
const maxScore = pathOr(0, ['minScore'], data);
const criteria = pathOr([], ['criteria'], data);
@@ -565,18 +580,21 @@ const DomandaEditPreInstructor = () => {
<div className="appPageSection">
<div className="appPageSection__actions">
<Button
{['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus)
? <Button
type="button"
disabled={!data.id || data.status === 'CLOSE'}
onClick={doNewSoccorso}
outlined
label={<>
{__('Richiedi Soccorso Istruttorio', 'gepafin')}
{data.applicationStatus === 'EVALUATION'
? __('Richiedi Soccorso Istruttorio', 'gepafin')
: __('Apri Soccorso Istruttorio', 'gepafin')}
<i style={{ marginLeft: 7 }}>
<HelpIcon/>
</i>
</>}
/>
/> : null}
{data.id
? <Button
type="button"
@@ -590,17 +608,32 @@ const DomandaEditPreInstructor = () => {
onClick={doSaveDraft}
label={__('Crea valutazione', 'gepafin')}
icon="pi pi-save" iconPos="right"/>}
{APP_EVALUATION_FLOW_ID === '1' && ['EVALUATION'].includes(data.applicationStatus)
? <Button
type="button"
disabled={!data.id}
onClick={doCreateAppointment}
label={__('Crea l\'appuntamento', 'gepafin')}
/> : null}
{APP_EVALUATION_FLOW_ID === '1' && ['APPOINTMENT'].includes(data.applicationStatus)
? <Button
type="button"
disabled={!data.id}
onClick={doMakeAdmisible}
label={__('Ammissibile', 'gepafin')}
/> : null}
{data.id
? <Button
type="button"
disabled={!isAdmissible || ['CLOSE', 'SOCCORSO'].includes(data.status)}
disabled={!isAdmissible
|| (APP_EVALUATION_FLOW_ID === '1' && !['ADMISSIBLE', 'APPOINTMENT'].includes(data.applicationStatus))}
onClick={initiateApproving}
label={__('Approva Domanda', 'gepafin')}
icon="pi pi-check" iconPos="right"/> : null}
{data.id
? <Button
type="button"
disabled={['CLOSE', 'SOCCORSO'].includes(data.status)}
disabled={APP_EVALUATION_FLOW_ID === '1' && !['ADMISSIBLE', 'APPOINTMENT'].includes(data.applicationStatus)}
onClick={initiateRejecting}
label={__('Respingi Domanda', 'gepafin')}
icon="pi pi-times" iconPos="right"/> : null}