- updated functionality of re-admit;

This commit is contained in:
Vitalii Kiiko
2025-05-15 11:26:23 +02:00
parent cfed5d3911
commit de0c480458
6 changed files with 53 additions and 10 deletions

View File

@@ -27,7 +27,6 @@ import { Button } from 'primereact/button';
import { Link, useNavigate } from 'react-router-dom'; import { Link, useNavigate } from 'react-router-dom';
import getQueryParamsForPaginatedEndpoint from '../../../../helpers/getQueryParamsForPaginatedEndpoint'; import getQueryParamsForPaginatedEndpoint from '../../../../helpers/getQueryParamsForPaginatedEndpoint';
import SoccorsoResendEmails from '../../../SoccorsoEditPreInstructor/components/SoccorsoResendEmails'; import SoccorsoResendEmails from '../../../SoccorsoEditPreInstructor/components/SoccorsoResendEmails';
import EvaluationReAdmit from '../../../DomandaEditPreInstructor/components/EvaluationReAdmit';
const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const APP_HUB_ID = process.env.REACT_APP_HUB_ID;
@@ -167,7 +166,6 @@ const MieDomandeTableInstructorManagerAsync = ({ userId = null, statuses = [] })
to={`/mie-domande/${rowData.applicationId}`}> to={`/mie-domande/${rowData.applicationId}`}>
<Button severity="info" label={label} icon="pi pi-eye" size="small" iconPos="right"/> <Button severity="info" label={label} icon="pi pi-eye" size="small" iconPos="right"/>
</Link> </Link>
<EvaluationReAdmit id={rowData.applicationId} status={rowData.applicationStatus}/>
<SoccorsoResendEmails <SoccorsoResendEmails
emailsData={rowData.emailSendResponse} emailsData={rowData.emailSendResponse}
setDataEmailsSoccorso={(updateResponse) => updateRowData(rowData.id, updateResponse)}/> setDataEmailsSoccorso={(updateResponse) => updateRowData(rowData.id, updateResponse)}/>

View File

@@ -27,7 +27,6 @@ import { Calendar } from 'primereact/calendar';
import { Button } from 'primereact/button'; import { Button } from 'primereact/button';
import { Link, useNavigate } from 'react-router-dom'; import { Link, useNavigate } from 'react-router-dom';
import SoccorsoResendEmails from '../../../SoccorsoEditPreInstructor/components/SoccorsoResendEmails'; import SoccorsoResendEmails from '../../../SoccorsoEditPreInstructor/components/SoccorsoResendEmails';
import EvaluationReAdmit from '../../../DomandaEditPreInstructor/components/EvaluationReAdmit';
const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const APP_HUB_ID = process.env.REACT_APP_HUB_ID;
@@ -171,7 +170,6 @@ const DomandeTablePreInstructorAsync = ({ userId = null, statuses = [] }) => {
<Button severity="info" label={__('Anteprima', 'gepafin')} icon="pi pi-eye" size="small" <Button severity="info" label={__('Anteprima', 'gepafin')} icon="pi pi-eye" size="small"
iconPos="right"/> iconPos="right"/>
</Link> </Link>
<EvaluationReAdmit id={rowData.applicationId} status={rowData.applicationStatus}/>
<SoccorsoResendEmails <SoccorsoResendEmails
emailsData={rowData.emailSendResponse} emailsData={rowData.emailSendResponse}
setDataEmailsSoccorso={(updateResponse) => updateRowData(rowData.id, updateResponse)}/> setDataEmailsSoccorso={(updateResponse) => updateRowData(rowData.id, updateResponse)}/>

View File

@@ -788,6 +788,11 @@ const DomandaEditInstructorManager = () => {
} }
} }
const updateStatusOfAppl = useCallback((newStatus) => {
const newData = wrap(data).set(['applicationStatus'], newStatus).value();
setData(newData);
}, [data]);
const actionBtns = () => { const actionBtns = () => {
return <div className="appPageSection__actions"> return <div className="appPageSection__actions">
{['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus) {['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus)
@@ -881,7 +886,7 @@ const DomandaEditInstructorManager = () => {
<SoccorsoResendEmails <SoccorsoResendEmails
emailsData={emailSendResponse} emailsData={emailSendResponse}
setDataEmailsSoccorso={updateEmailSendResponses}/> setDataEmailsSoccorso={updateEmailSendResponses}/>
<EvaluationReAdmit id={data.applicationId} status={data.applicationStatus}/> <EvaluationReAdmit id={data.applicationId} status={data.applicationStatus} statusUpdateFn={updateStatusOfAppl}/>
</div> </div>
} }

View File

@@ -12,9 +12,11 @@ import { useStoreValue } from '../../../../store';
import { Toast } from 'primereact/toast'; import { Toast } from 'primereact/toast';
import { Button } from 'primereact/button'; import { Button } from 'primereact/button';
import { Dialog } from 'primereact/dialog';
const EvaluationReAdmit = ({ id, status }) => { const EvaluationReAdmit = ({ id, status, statusUpdateFn }) => {
const [isSendingRequest, setIsSendingRequest] = useState(false); const [isSendingRequest, setIsSendingRequest] = useState(false);
const [isVisibleConfirmDialog, setIsVisibleConfirmDialog] = useState(false);
const toast = useRef(null); const toast = useRef(null);
const role = useStoreValue('getRole'); const role = useStoreValue('getRole');
@@ -33,7 +35,9 @@ const EvaluationReAdmit = ({ id, status }) => {
detail: resp.message detail: resp.message
}); });
} }
window.location.reload(); if (statusUpdateFn) {
statusUpdateFn(resp.data.status);
}
} }
setIsSendingRequest(false); setIsSendingRequest(false);
} }
@@ -50,6 +54,28 @@ const EvaluationReAdmit = ({ id, status }) => {
setIsSendingRequest(false); setIsSendingRequest(false);
} }
const headerConfirmDialog = () => {
return <span>{__('Richiesta di conferma', 'gepafin')}</span>;
}
const hideConfirmDialog = () => {
setIsVisibleConfirmDialog(false);
}
const footerConfirmDialog = () => {
return <div>
<Button type="button" label={__('No', 'gepafin')} onClick={() => setIsVisibleConfirmDialog(false)} outlined/>
<Button
type="button"
label={__('Si', 'gepafin')} onClick={doConfirm}/>
</div>
}
const doConfirm = () => {
setIsVisibleConfirmDialog(false);
doReAdmit();
}
return ( return (
['ROLE_SUPER_ADMIN', 'ROLE_INSTRUCTOR_MANAGER'].includes(role) && ['REJECTED'].includes(status) ['ROLE_SUPER_ADMIN', 'ROLE_INSTRUCTOR_MANAGER'].includes(role) && ['REJECTED'].includes(status)
? <> ? <>
@@ -58,9 +84,20 @@ const EvaluationReAdmit = ({ id, status }) => {
type="button" type="button"
disabled={isSendingRequest} disabled={isSendingRequest}
severity="warning" severity="warning"
onClick={doReAdmit} onClick={() => setIsVisibleConfirmDialog(true)}
label={__('Riammetti', 'gepafin')} label={__('Riammetti', 'gepafin')}
icon="pi pi-arrow-circle-up" iconPos="right"/> icon="pi pi-arrow-circle-up" iconPos="right"/>
<Dialog
visible={isVisibleConfirmDialog}
modal
header={headerConfirmDialog}
footer={footerConfirmDialog}
style={{ maxWidth: '600px', width: '100%' }}
onHide={hideConfirmDialog}>
<div className="appForm__field">
<p>{__('È autorizzato dal direttore e autorizzazione caricata su portale a seguito del quale parte l\'email?', 'gepafin')}</p>
</div>
</Dialog>
</> : null </> : null
) )
} }

View File

@@ -787,6 +787,11 @@ const DomandaEditPreInstructor = () => {
} }
} }
const updateStatusOfAppl = useCallback((newStatus) => {
const newData = wrap(data).set(['applicationStatus'], newStatus).value();
setData(newData);
}, [data]);
const actionBtns = () => { const actionBtns = () => {
return <div className="appPageSection__actions"> return <div className="appPageSection__actions">
{['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus) {['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus)
@@ -882,7 +887,7 @@ const DomandaEditPreInstructor = () => {
<SoccorsoResendEmails <SoccorsoResendEmails
emailsData={emailSendResponse} emailsData={emailSendResponse}
setDataEmailsSoccorso={updateEmailSendResponses}/> setDataEmailsSoccorso={updateEmailSendResponses}/>
<EvaluationReAdmit id={data.applicationId} status={data.applicationStatus}/> <EvaluationReAdmit id={data.applicationId} status={data.applicationStatus} statusUpdateFn={updateStatusOfAppl}/>
</div> </div>
} }

View File

@@ -32,7 +32,7 @@ const SoccorsoAddPreInstructor = () => {
const [data, setData] = useState({}); const [data, setData] = useState({});
const [evaluationId, setEvaluationId] = useState(0); const [evaluationId, setEvaluationId] = useState(0);
const [formData, setFormData] = useState({}); const [formData, setFormData] = useState({});
const [isVisibleConfirmDialog, setIsVisibleConfirmDialog] = useState(false) const [isVisibleConfirmDialog, setIsVisibleConfirmDialog] = useState(false);
const toast = useRef(null); const toast = useRef(null);
const goToEvaluationPage = () => { const goToEvaluationPage = () => {