diff --git a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js index 5c132ce..61171ce 100644 --- a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js +++ b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js @@ -57,7 +57,7 @@ const DocumentsTable = ({ type, reload = 0, companyId: companyIdProp }) => { ['documentType', type] ]); } - }, []); + }, [effectiveCompanyId, companies]); const getCallback = (resp) => { if (resp.status === 'SUCCESS') { diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js index 94522ed..9f17dfa 100644 --- a/src/pages/DomandaEditInstructorManager/index.js +++ b/src/pages/DomandaEditInstructorManager/index.js @@ -1388,12 +1388,17 @@ const DomandaEditInstructorManager = () => { setIsAdmissible(scoreSum >= maxScore); }, [data]); - useEffect(() => { - const parsed = parseInt(id) + const refetchEvaluation = useCallback(() => { + const parsed = parseInt(id); const entityId = !isNaN(parsed) ? parsed : 0; - storeSet('setAsyncRequest'); ApplicationEvaluationService.getEvaluationVersionByApplId(entityId, getVersion, errGetVersion); + }, [id]); + + useEffect(() => { + refetchEvaluation(); + const parsed = parseInt(id) + const entityId = !isNaN(parsed) ? parsed : 0; AmendmentsService.getSoccorsoByApplId(entityId, getAmendmentsCallback, errGetAmendmentsCallback, [ ['statuses', ['AWAITING', 'RESPONSE_RECEIVED']] ]); @@ -1458,6 +1463,7 @@ const DomandaEditInstructorManager = () => { }) )) })} + refetchFn={refetchEvaluation} shouldDisable={['APPROVED', 'REJECTED'].includes(data.applicationStatus) || evaluationBlockedForUser(data)} sourceId={data.id} applicationId={data.applicationId} diff --git a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/components/CompanyDocsTable/index.js b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/components/CompanyDocsTable/index.js index a708c24..fe34499 100644 --- a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/components/CompanyDocsTable/index.js +++ b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/components/CompanyDocsTable/index.js @@ -12,7 +12,6 @@ import getDateFromISOstring from '../../../../../../helpers/getDateFromISOstring // api import CompanyDocumentsService from '../../../../../../service/company-documents-service'; -import ApplicationService from '../../../../../../service/application-service'; // components import { FilterMatchMode, FilterOperator } from 'primereact/api'; @@ -25,7 +24,7 @@ import { Tag } from 'primereact/tag'; import { Toast } from 'primereact/toast'; import ProperBandoLabel from '../../../../../../components/ProperBandoLabel'; -const CompanyDocsTable = ({ type, reload = 0, companyId: companyIdProp, applicationId }) => { +const CompanyDocsTable = ({ type, reload = 0, companyId: companyIdProp, applicationId, onImportSuccess = () => {} }) => { const storedCompanyId = useStoreValue('chosenCompanyId'); const effectiveCompanyId = companyIdProp || storedCompanyId; const companies = useStoreValue('companies'); @@ -145,9 +144,10 @@ const CompanyDocsTable = ({ type, reload = 0, companyId: companyIdProp, applicat const handleImportDoc = (id) => { setLoading(true); - ApplicationService.setApplicationDocuments(applicationId, importCallback, errImportCallback, [ - ['companyDocumentIds', [id]] - ]); + CompanyDocumentsService.attachCompanyDocumentToAppl(id, importCallback, errImportCallback, [ + ['applicationId', applicationId], + ['documentType', 'DOCUMENT'] + ]) }; const importCallback = (resp) => { @@ -159,6 +159,9 @@ const CompanyDocsTable = ({ type, reload = 0, companyId: companyIdProp, applicat detail: resp.message }); } + if (resp.status === 'SUCCESS') { + onImportSuccess(); + } }; const errImportCallback = (resp) => { diff --git a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js index cc6f15b..7aaee5a 100644 --- a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js +++ b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js @@ -35,6 +35,8 @@ const EvaluationExtraFiles = ({ }, updateCallbackFn = () => { }, + refetchFn = () => { + }, defaultValue = [], shouldDisable = false }) => { @@ -198,6 +200,7 @@ const EvaluationExtraFiles = ({ if (resp.status === 'SUCCESS') { hideAddDocDialog(); setReloadHash(new Date().getTime()); + refetchFn(); } else { if (toast.current && resp.message) { toast.current.show({ @@ -316,7 +319,12 @@ const EvaluationExtraFiles = ({ iconPos="right" onClick={openAddDocDialog}/> - + refetchFn()}/> { setIsAdmissible(scoreSum >= maxScore); }, [data]); - useEffect(() => { - const parsed = parseInt(id) + const refetchEvaluation = useCallback(() => { + const parsed = parseInt(id); const entityId = !isNaN(parsed) ? parsed : 0; - storeSet('setAsyncRequest'); ApplicationEvaluationService.getEvaluationVersionByApplId(entityId, getVersion, errGetVersion); + }, [id]); + + useEffect(() => { + refetchEvaluation(); + const parsed = parseInt(id) + const entityId = !isNaN(parsed) ? parsed : 0; AmendmentsService.getSoccorsoByApplId(entityId, getAmendmentsCallback, errGetAmendmentsCallback, [ ['statuses', ['AWAITING', 'RESPONSE_RECEIVED', 'DRAFT']] ]); @@ -1365,6 +1370,7 @@ const DomandaEditPreInstructor = () => { }) )) })} + refetchFn={refetchEvaluation} shouldDisable={['APPROVED', 'REJECTED'].includes(data.applicationStatus) || evaluationBlockedForUser(data)} sourceId={data.id} applicationId={data.applicationId} diff --git a/src/service/network-service.js b/src/service/network-service.js index 79e3e71..fd40ad1 100644 --- a/src/service/network-service.js +++ b/src/service/network-service.js @@ -17,24 +17,7 @@ export class NetworkService { } static post = (url, body, callback, errorCallback, queryParams) => { - - if (queryParams) { - url += '?' - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') { - url = url.substring(0, url.length - 1); - } - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'POST', @@ -62,23 +45,7 @@ export class NetworkService { }; static postMultiPart = (url, body, callback, errorCallback, queryParams) => { - - if (queryParams) { - url += '?' - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'POST', @@ -105,23 +72,7 @@ export class NetworkService { }; static postBlob = (url, body, callback, errorCallback, queryParams) => { - - if (queryParams) { - url += '?' - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'POST', @@ -173,22 +124,7 @@ export class NetworkService { }; static unauthorizedPost = (url, body, callback, errorCallback, queryParams) => { - if (queryParams) { - url += '?' - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'POST', @@ -215,23 +151,7 @@ export class NetworkService { }; static put = (url, body, callback, errorCallback, queryParams = null) => { - if (queryParams) { - url += '?' - - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'PUT', @@ -259,23 +179,7 @@ export class NetworkService { }; static putMultiPart = (url, body, callback, errorCallback, queryParams = null) => { - if (queryParams) { - url += '?' - - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'PUT', @@ -305,24 +209,16 @@ export class NetworkService { return value !== null && value !== undefined && value !== '' } + static buildUrl(url, queryParams) { + if (!queryParams || !queryParams.length) return url; + const parts = queryParams + .filter(p => p && this.isNotBlank(p[0]) && this.isNotBlank(p[1])) + .map(p => encodeURIComponent(p[0]) + '=' + encodeURIComponent(p[1])); + return parts.length ? url + '?' + parts.join('&') : url; + } + static get = (url, callback, errorCallback, queryParams = null) => { - if (queryParams) { - url += '?' - - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); if (url.includes('user/me') && isEmpty(storeGet('getToken'))) { return; @@ -357,23 +253,7 @@ export class NetworkService { }; static getBlob = (url, callback, errorCallback, queryParams) => { - - if (queryParams) { - url += '?' - for (let i = 0; i < queryParams.length; i++) { - if (queryParams[i] && this.isNotBlank(queryParams[i][0]) && this.isNotBlank(queryParams[i][1])) { - let param = queryParams[i][0] + '=' + queryParams[i][1] - - if (i !== queryParams.length - 1) - param += '&' - - url += param; - } - } - - if (url.charAt(url.length) === '&') - url = url.substring(0, url.length - 1); - } + url = this.buildUrl(url, queryParams); fetch(url, { method: 'GET', @@ -400,18 +280,8 @@ export class NetworkService { }; static delete = (url, body, callback, errorCallback, queryParams = null) => { - if (queryParams) { - let params = '?' + url = this.buildUrl(url, queryParams); - for (let i = 0; i < queryParams.length; i++) { - params += queryParams[i][0] + '=' + queryParams[i][1] - if (queryParams.length !== i + 1) - params += '&' - url += params - params = '' - } - - } fetch(url, { method: 'DELETE', mode: 'cors',