- added registartion page;

- implemented validation helper-functions;
- fixed form fields datepicker and datepicker range;
- updated routes logic;
- fixed FAQ items editing/submission;
This commit is contained in:
Vitalii Kiiko
2024-09-23 10:05:43 +02:00
parent cf149485e0
commit bbf117eb9b
58 changed files with 1238 additions and 392 deletions

View File

@@ -21,6 +21,7 @@ import { Messages } from 'primereact/messages';
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
import FaqItemService from '../../service/faq-item-service';
import ApplicationService from '../../service/application-service';
import renderHtmlContent from '../../helpers/renderHtmlContent';
const BandoViewBeneficiario = () => {
const isAsyncRequest = useStore().main.isAsyncRequest();
@@ -28,7 +29,7 @@ const BandoViewBeneficiario = () => {
const navigate = useNavigate();
const [data, setData] = useState({});
const [newQuestion, setNewQuestion] = useState('');
const [isApplRequest, setIsApplRequest] = useState(true);
const [applicationObj, setApplicationObj] = useState(true);
const bandoMsgs = useRef(null);
const scaricaBando = () => {
@@ -39,8 +40,38 @@ const BandoViewBeneficiario = () => {
}
const getBandoId = () => {
const parsed = parseInt(id)
return !isNaN(parsed) ? parsed : 0;
}
const submitApplication = () => {
navigate(`/tenders/${id}/application`);
if (applicationObj && applicationObj.id) {
navigate(`/imieibandi/${applicationObj.id}`);
} else {
const bandoId = getBandoId();
ApplicationService.createApplication(bandoId, {}, createApplCallback, errCreateApplCallback)
}
}
const createApplCallback = (data) => {
storeSet.main.unsetAsyncRequest();
if (data.status === 'SUCCESS') {
navigate(`/imieibandi/${data.data.id}`);
}
}
const errCreateApplCallback = (data) => {
if (bandoMsgs.current && data.message) {
bandoMsgs.current.show([
{
sticky: true, severity: 'error', summary: '',
detail: data.message,
closable: true
}
]);
}
storeSet.main.unsetAsyncRequest();
}
const saveToFavourites = () => {
@@ -102,7 +133,6 @@ const BandoViewBeneficiario = () => {
if (data.status === 'SUCCESS') {
setData(getFormattedBandiData(data.data));
}
storeSet.main.unsetAsyncRequest();
}
const errGetBandoCallback = (data) => {
@@ -116,7 +146,6 @@ const BandoViewBeneficiario = () => {
]);
}
set404FromErrorResponse(data);
storeSet.main.unsetAsyncRequest();
}
const getFormattedBandiData = (data) => {
@@ -126,31 +155,23 @@ const BandoViewBeneficiario = () => {
const getApplCallback = (data) => {
if (data.status === 'SUCCESS') {
console.log(data.data)
if(data.data.length) {
setApplicationObj(data.data[0]);
}
}
storeSet.main.unsetAsyncRequest();
}
const errGetApplCallback = (data) => {
/*if (bandoMsgs.current && data.message) {
bandoMsgs.current.show([
{
sticky: true, severity: 'error', summary: '',
detail: data.message,
closable: true
}
]);
}*/
set404FromErrorResponse(data);
storeSet.main.unsetAsyncRequest();
}
useEffect(() => {
const parsed = parseInt(id)
const bandoId = !isNaN(parsed) ? parsed : 0;
const bandoId = getBandoId();
storeSet.main.setAsyncRequest();
BandoService.getBando(bandoId, getBandoCallback, errGetBandoCallback);
ApplicationService.getApplications(getApplCallback, errGetApplCallback)
ApplicationService.getApplications(getApplCallback, errGetApplCallback, [['callId', bandoId]])
}, [id]);
return (
@@ -181,7 +202,7 @@ const BandoViewBeneficiario = () => {
<div className="appPageSection__withBorder">
<h2>{__('Descrizione breve', 'gepafin')}</h2>
<div className="row rowContent">
<p>{data.descriptionShort}</p>
{renderHtmlContent(data.descriptionShort)}
</div>
</div>
@@ -212,7 +233,7 @@ const BandoViewBeneficiario = () => {
<div className="appPageSection__withBorder">
<h2>{__('Descrizione dettagliata', 'gepafin')}</h2>
<div className="row rowContent">
<p>{data.descriptionLong}</p>
{renderHtmlContent(data.descriptionLong)}
</div>
</div>
@@ -309,7 +330,7 @@ const BandoViewBeneficiario = () => {
icon="pi pi-download" iconPos="right"/>
<Button
type="button"
disabled={isApplRequest}
disabled={isAsyncRequest}
onClick={submitApplication}
label={__('Presenta Domanda', 'gepafin')}
icon="pi pi-save" iconPos="right"/>