diff --git a/src/pages/BandiPreInstructor/components/AllBandiPreInstructorTableAsync/index.js b/src/pages/BandiPreInstructor/components/AllBandiPreInstructorTableAsync/index.js index 1ca8a0d..2356004 100644 --- a/src/pages/BandiPreInstructor/components/AllBandiPreInstructorTableAsync/index.js +++ b/src/pages/BandiPreInstructor/components/AllBandiPreInstructorTableAsync/index.js @@ -45,10 +45,11 @@ const AllBandiPreInstructorTableAsync = () => { } }); const statuses = ['DRAFT', 'PUBLISH', 'EXPIRED']; + const initialFetchStatuses = ['PUBLISH', 'EXPIRED']; const role = storeGet('getRole') - const getPaginationQuery = useCallback(() => getQueryParamsForPaginatedEndpoint(lazyState, statuses, 'id'), [lazyState]); + const getPaginationQuery = useCallback(() => getQueryParamsForPaginatedEndpoint(lazyState, initialFetchStatuses, 'id'), [lazyState]); const onPage = (event) => { setLazyState(event); @@ -174,7 +175,7 @@ const AllBandiPreInstructorTableAsync = () => { const paginationQuery = getPaginationQuery(); BandoService.getBandiPaginated(paginationQuery, getCallback, errGetCallbacks); - }, [lazyState]); + }, [lazyState, getPaginationQuery]); return (
diff --git a/src/pages/BandoApplication/index.js b/src/pages/BandoApplication/index.js index 4e79367..2641399 100644 --- a/src/pages/BandoApplication/index.js +++ b/src/pages/BandoApplication/index.js @@ -574,12 +574,17 @@ const BandoApplication = () => { const formula = head(o.settings.filter(o => o.name === 'formula')); if (formula && !isEmpty(formula.value)) { - context = getTokens(formula.value) - .filter(v => !['false', 'null', 'true'].includes(v)) - .reduce((acc, cur) => { - acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); - return acc; - }, context); + try { + context = getTokens(formula.value) + .filter(v => !['false', 'null', 'true'].includes(v)) + .reduce((acc, cur) => { + acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); + return acc; + }, context); + } catch { + console.error('Error in formula', formula) + context = {} + } const mathFormula = renderWithDataVars(formula.value, context); try { diff --git a/src/pages/BandoApplicationPreview/index.js b/src/pages/BandoApplicationPreview/index.js index 3f1d420..cf0d3b7 100644 --- a/src/pages/BandoApplicationPreview/index.js +++ b/src/pages/BandoApplicationPreview/index.js @@ -288,12 +288,17 @@ const BandoApplicationPreview = () => { const formula = head(o.settings.filter(o => o.name === 'formula')); if (formula && !isEmpty(formula.value)) { - context = getTokens(formula.value) - .filter(v => !['false', 'null', 'true'].includes(v)) - .reduce((acc, cur) => { - acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); - return acc; - }, context); + try { + context = getTokens(formula.value) + .filter(v => !['false', 'null', 'true'].includes(v)) + .reduce((acc, cur) => { + acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); + return acc; + }, context); + } catch { + console.error('Error in formula', formula) + context = {} + } const mathFormula = renderWithDataVars(formula.value, context); try { updatedFormValues[o.id] = evaluate(mathFormula); diff --git a/src/pages/BandoFormsEdit/components/BuilderElementSettings/components/ElementSetting/index.js b/src/pages/BandoFormsEdit/components/BuilderElementSettings/components/ElementSetting/index.js index be87424..1acc98a 100644 --- a/src/pages/BandoFormsEdit/components/BuilderElementSettings/components/ElementSetting/index.js +++ b/src/pages/BandoFormsEdit/components/BuilderElementSettings/components/ElementSetting/index.js @@ -22,6 +22,7 @@ import ElementSettingTableColumnsForCsv from '../ElementSettingTableColumnsForCs import { mimeTypes } from '../../../../../../configData'; import ElementSettingReportHeader from '../ElementSettingReportHeader'; import ElementSettingReportEnable from '../ElementSettingReportEnable'; +import getTokens from '../../../../../../helpers/getTokens'; const ElementSetting = ({ setting, changeFn, updateDataFn, bandoStatus }) => { @@ -72,6 +73,15 @@ const ElementSetting = ({ setting, changeFn, updateDataFn, bandoStatus }) => { const header = renderHeader(); + const invalidFormula = (value) => { + try { + const context = getTokens(value) + return false; + } catch { + return __('Potrebbe essere un errore nella formula!') + } + } + const getProperField = (setting) => { if (setting.name === 'options') { return { name={setting.name} bandoStatus={bandoStatus} setDataFn={updateDataFn}/> + } else if (setting.name === 'formula') { + const isInvalid = invalidFormula(setting.value); + return <> + changeFn(e.target.value, setting.name)}/> +

{isInvalid}

+ } else { return { const formula = head(o.settings.filter(o => o.name === 'formula')); if (formula && !isEmpty(formula.value)) { - context = getTokens(formula.value) - .filter(v => !['false', 'null', 'true'].includes(v)) - .reduce((acc, cur) => { - acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); - return acc; - }, context); + try { + context = getTokens(formula.value) + .filter(v => !['false', 'null', 'true'].includes(v)) + .reduce((acc, cur) => { + acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); + return acc; + }, context); + } catch { + console.error('Error in formula', formula) + context = {} + } const mathFormula = renderWithDataVars(formula.value, context); try { updatedFormValues[o.id] = evaluate(mathFormula); diff --git a/src/pages/Dashboard/components/LatestBandiTableAsync/index.js b/src/pages/Dashboard/components/LatestBandiTableAsync/index.js index b5b29de..548ad9a 100644 --- a/src/pages/Dashboard/components/LatestBandiTableAsync/index.js +++ b/src/pages/Dashboard/components/LatestBandiTableAsync/index.js @@ -40,10 +40,10 @@ const LatestBandiTableAsync = () => { name: { value: null, matchMode: 'contains' }, startDate: { value: null, matchMode: 'dateIs' }, endDate: { value: null, matchMode: 'dateIs' }, - status: { value: null, matchMode: 'equals' } + status: { value: 'PUBLISH', matchMode: 'equals' } } }); - const statuses = ['PUBLISH', 'EXPIRED']; + const statuses = ['PUBLISH']; const getPaginationQuery = useCallback(() => getQueryParamsForPaginatedEndpoint(lazyState, statuses, 'id'), [lazyState]); @@ -197,7 +197,7 @@ const LatestBandiTableAsync = () => { const paginationQuery = getPaginationQuery(); BandoService.getBandiPaginated(paginationQuery, getCallback, errGetCallbacks); - }, [lazyState]); + }, [lazyState, getPaginationQuery]); return (
diff --git a/src/pages/DashboardInstructorManager/components/LatestBandiTableInstructorManagerAsync/index.js b/src/pages/DashboardInstructorManager/components/LatestBandiTableInstructorManagerAsync/index.js index c696101..1f6292d 100644 --- a/src/pages/DashboardInstructorManager/components/LatestBandiTableInstructorManagerAsync/index.js +++ b/src/pages/DashboardInstructorManager/components/LatestBandiTableInstructorManagerAsync/index.js @@ -39,10 +39,10 @@ const LatestBandiTableInstructorManagerAsync = () => { name: { value: null, matchMode: 'contains' }, startDate: { value: null, matchMode: 'dateIs' }, endDate: { value: null, matchMode: 'dateIs' }, - status: { value: null, matchMode: 'equals' } + status: { value: 'PUBLISH', matchMode: 'equals' } } }); - const statuses = ['PUBLISH', 'EXPIRED']; + const statuses = ['PUBLISH']; const getPaginationQuery = useCallback(() => getQueryParamsForPaginatedEndpoint(lazyState, statuses, 'id'), [lazyState]); @@ -128,23 +128,23 @@ const LatestBandiTableInstructorManagerAsync = () => { return
} - const exportToCSV = (applicationId) => { + const handleDownloadRanking = (callId) => { setLocalAsyncRequest(true); - ApplicationService.downloadCsvReport( - applicationId, - (resp) => getCsvReportback(resp, applicationId), - errCsvReportCallback - ) + ApplicationService.downloadRanking(callId, + (resp) => downloadSuccessCallback(resp, callId), + downloadErrorCallback) } - const getCsvReportback = (resp, applicationId) => { + const downloadSuccessCallback = (resp, applicationId) => { const file = new Blob([resp], { type: 'text/csv' }); const url = window.URL.createObjectURL(file); const link = document.createElement('a'); @@ -156,7 +156,7 @@ const LatestBandiTableInstructorManagerAsync = () => { setLocalAsyncRequest(false); } - const errCsvReportCallback = (resp) => { + const downloadErrorCallback = (resp) => { set404FromErrorResponse(resp); setLocalAsyncRequest(false); } @@ -172,7 +172,7 @@ const LatestBandiTableInstructorManagerAsync = () => { name: { value: null, matchMode: 'contains' }, startDate: { value: null, matchMode: 'dateIs' }, endDate: { value: null, matchMode: 'dateIs' }, - status: { value: null, matchMode: 'equals' } + status: { value: 'PUBLISH', matchMode: 'equals' } } }); }; @@ -192,7 +192,7 @@ const LatestBandiTableInstructorManagerAsync = () => { const paginationQuery = getPaginationQuery(); BandoService.getBandiPaginated(paginationQuery, getCallback, errGetCallbacks); - }, [lazyState]); + }, [lazyState, getPaginationQuery]); return (
diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js index 0a70d10..f1c63ba 100644 --- a/src/pages/DomandaEditInstructorManager/index.js +++ b/src/pages/DomandaEditInstructorManager/index.js @@ -940,13 +940,17 @@ const DomandaEditInstructorManager = () => { const formula = head(o.settings.filter(o => o.name === 'formula')); if (formula && !isEmpty(formula.value)) { - context = getTokens(formula.value) - .filter(v => !['false', 'null', 'true'].includes(v)) - .reduce((acc, cur) => { - acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); - return acc; - }, context); - + try { + context = getTokens(formula.value) + .filter(v => !['false', 'null', 'true'].includes(v)) + .reduce((acc, cur) => { + acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); + return acc; + }, context); + } catch { + console.error('Error in formula', formula) + context = {} + } const mathFormula = renderWithDataVars(formula.value, context); try { updatedFormValues[o.id] = evaluate(mathFormula); diff --git a/src/pages/DomandaEditPreInstructor/index.js b/src/pages/DomandaEditPreInstructor/index.js index 2d0604c..80be4b7 100644 --- a/src/pages/DomandaEditPreInstructor/index.js +++ b/src/pages/DomandaEditPreInstructor/index.js @@ -940,12 +940,17 @@ const DomandaEditPreInstructor = () => { const formula = head(o.settings.filter(o => o.name === 'formula')); if (formula && !isEmpty(formula.value)) { - context = getTokens(formula.value) - .filter(v => !['false', 'null', 'true'].includes(v)) - .reduce((acc, cur) => { - acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); - return acc; - }, context); + try { + context = getTokens(formula.value) + .filter(v => !['false', 'null', 'true'].includes(v)) + .reduce((acc, cur) => { + acc[cur] = isNil(context[cur]) ? 0 : parseCommaDecimal(context[cur]); + return acc; + }, context); + } catch { + console.error('Error in formula', formula) + context = {} + } const mathFormula = renderWithDataVars(formula.value, context); try {