diff --git a/src/App.js b/src/App.js
index 2c0deea..ad0f6ef 100644
--- a/src/App.js
+++ b/src/App.js
@@ -37,7 +37,7 @@ function App() {
}
useEffect(() => {
- if (role === 'ROLE_BENEFICIARY') {
+ if (['ROLE_BENEFICIARY', 'ROLE_CONFIDI'].includes(role)) {
const userData = storeGet.main.userData();
if (userData.companies && !isEmpty(userData.companies)) {
storeSet.main.companies(userData.companies);
diff --git a/src/components/FormField/components/FileSelect/index.js b/src/components/FormField/components/FileSelect/index.js
index 64f70ac..ba3d0ae 100644
--- a/src/components/FormField/components/FileSelect/index.js
+++ b/src/components/FormField/components/FileSelect/index.js
@@ -8,6 +8,7 @@ import { ListBox } from 'primereact/listbox';
import { Button } from 'primereact/button';
import CompanyDocumentsService from '../../../../service/company-documents-service';
import { Link } from 'react-router-dom';
+import FileUploadService from '../../../../service/file-upload-service';
const FileSelect = ({
fieldName,
@@ -29,6 +30,7 @@ const FileSelect = ({
const [selectedUnconfirmed, setSelectedUnconfirmed] = useState([]);
const [optionsTransformed, setOptionsTransformed] = useState([]);
const [loading, setLoading] = useState(false);
+ const [addNewMode, setAddNewMode] = useState(false);
const attachSelectedFiles = useCallback(() => {
const existingIds = pluck('id', stateFieldData.current);
@@ -43,10 +45,12 @@ const FileSelect = ({
['documentType', source]
])
});
+ setAddNewMode(false);
}, [selectedUnconfirmed]);
- const removeAttached = (id) => {
- console.log('stateFieldData', stateFieldData, id)
+ const doGoBackToListOfFiles = () => {
+ setSelectedUnconfirmed([]);
+ setAddNewMode(false);
}
const callback = (resp) => {
@@ -62,9 +66,30 @@ const FileSelect = ({
setLoading(false);
}
- useEffect(() => {
+ const removeAttached = (id) => {
+ FileUploadService.deleteFile(
+ {},
+ (data) => deleteCallback(data, id),
+ deleteErrorCallback,
+ [['id', id]]
+ );
+ }
+
+ const deleteCallback = (data, id) => {
+ if (data.status === 'SUCCESS') {
+ stateFieldData.current = stateFieldData.current.filter(o => id !== o.id);
+ setDataFn(fieldName, stateFieldData.current, { shouldValidate: true });
+ saveFormCallback();
+ }
+ }
+
+ const deleteErrorCallback = (err) => {
+ console.log('err', err);
+ }
+
+ /*useEffect(() => {
console.log('selectedUnconfirmed', selectedUnconfirmed)
- }, [selectedUnconfirmed]);
+ }, [selectedUnconfirmed]);*/
useEffect(() => {
stateFieldData.current = defaultValue;
@@ -73,6 +98,7 @@ const FileSelect = ({
useEffect(() => {
if (!isEmpty(options)) {
+ console.log('options', options);
const optionsDefault = [
{
label: __('Documenti dell\'Azienda', 'gepafin'),
@@ -92,7 +118,7 @@ const FileSelect = ({
useEffect(() => {
stateFieldData.current = defaultValue;
}, [defaultValue]);
-
+ //console.log([...stateFieldData.current])
return (
<>
-
- setSelectedUnconfirmed(e.value)}
- options={optionsTransformed}
- optionLabel="name"
- optionGroupLabel="label"
- optionGroupChildren="items"
- className="w-full md:w-14rem"
- listStyle={{ maxHeight: '130px' }}/>
- {!isEmpty(optionsTransformed)
- ? : null}
-
- {!isEmpty(optionsTransformed)
+ {addNewMode
+ ?
+ setSelectedUnconfirmed(e.value)}
+ options={optionsTransformed}
+ optionLabel="name"
+ optionGroupLabel="label"
+ optionGroupChildren="items"
+ className="w-full md:w-14rem"
+ listStyle={{ maxHeight: '130px' }}/>
+ {!isEmpty(selectedUnconfirmed)
+ ?
+ : }
+
: null}
+ {!isEmpty(optionsTransformed) && !addNewMode
?
{__('I file selezionati')}
@@ -134,6 +167,12 @@ const FileSelect = ({
)}
+
: null}
{isEmpty(optionsTransformed)
diff --git a/src/components/TopBarProfileMenu/index.js b/src/components/TopBarProfileMenu/index.js
index 296527a..3aee326 100644
--- a/src/components/TopBarProfileMenu/index.js
+++ b/src/components/TopBarProfileMenu/index.js
@@ -55,7 +55,7 @@ const TopBarProfileMenu = ({ menuLeftRef }) => {
command: () => {
navigate('/profilo-aziendale')
},
- enable: intersection(permissions, ['APPLY_CALLS']).length && companies.length > 0
+ enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length && companies.length > 0
},
{
label: __('Seleziona azienda', 'gepafin'),
@@ -67,7 +67,7 @@ const TopBarProfileMenu = ({ menuLeftRef }) => {
command: () => {
navigate('/agguingi-azienda')
},
- enable: intersection(permissions, ['APPLY_CALLS']).length
+ enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length
},
{
separator: true,
diff --git a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
index 8218845..60edd5c 100644
--- a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
+++ b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect} from 'react';
import { __, sprintf } from '@wordpress/i18n';
-import { is, uniq, isNil, isEmpty } from 'ramda';
+import { is, uniq, isNil, isEmpty, head } from 'ramda';
import { wrap } from 'object-path-immutable';
import { useNavigate } from 'react-router-dom';
@@ -37,6 +37,7 @@ const REACT_APP_HUB_ID = process.env.REACT_APP_HUB_ID;
const AllBandiAccordion = ({ showOnlyPreferred = false }) => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const isAsyncRequest = useStore().main.isAsyncRequest();
const [items, setItems] = useState(null);
const [filters, setFilters] = useState(null);
@@ -45,11 +46,15 @@ const AllBandiAccordion = ({ showOnlyPreferred = false }) => {
const navigate = useNavigate();
useEffect(() => {
- storeSet.main.setAsyncRequest();
- BandoService.getBandi(getCallback, errGetCallbacks, [
- ['companyId', chosenCompanyId],
- ['onlyPreferredCall', showOnlyPreferred]
- ]);
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany && !isAsyncRequest) {
+ storeSet.main.setAsyncRequest();
+ BandoService.getBandi(getCallback, errGetCallbacks, [
+ ['companyId', chosenCompanyId],
+ ['onlyPreferredCall', showOnlyPreferred]
+ ]);
+ }
}, [chosenCompanyId]);
const getCallback = (data) => {
diff --git a/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js b/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js
index 874f9e0..c576d1b 100644
--- a/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js
+++ b/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect} from 'react';
import { __ } from '@wordpress/i18n';
-import { is, uniq, isNil, isEmpty } from 'ramda';
+import { is, uniq, isNil, isEmpty, head } from 'ramda';
import { wrap } from 'object-path-immutable';
import { useNavigate } from 'react-router-dom';
@@ -30,6 +30,7 @@ import translationStrings from '../../../../translationStringsForComponents';
const AllBandiPreferredAccordion = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const isAsyncRequest = useStore().main.isAsyncRequest();
const [items, setItems] = useState(null);
const [filters, setFilters] = useState(null);
@@ -38,12 +39,16 @@ const AllBandiPreferredAccordion = () => {
const navigate = useNavigate();
useEffect(() => {
- storeSet.main.setAsyncRequest();
- const userData = storeGet.main.userData();
- PreferredBandoService.getPreferredCalls(getCallback, errGetCallbacks, [
- ['companyId', chosenCompanyId],
- ['userId', userData.id]
- ]);
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany) {
+ storeSet.main.setAsyncRequest();
+ const userData = storeGet.main.userData();
+ PreferredBandoService.getPreferredCalls(getCallback, errGetCallbacks, [
+ ['companyId', chosenCompanyId],
+ ['userId', userData.id]
+ ]);
+ }
}, [chosenCompanyId]);
const getCallback = (data) => {
diff --git a/src/pages/BandoApplicationPreview/index.js b/src/pages/BandoApplicationPreview/index.js
index 84c64e8..52aa372 100644
--- a/src/pages/BandoApplicationPreview/index.js
+++ b/src/pages/BandoApplicationPreview/index.js
@@ -328,7 +328,7 @@ const BandoApplicationPreview = () => {
if (applId) {
storeSet.main.setAsyncRequest();
- const queryParams = 'ROLE_BENEFICIARY' === role
+ const queryParams = ['ROLE_BENEFICIARY', 'ROLE_CONFIDI'].includes(role)
? [
['companyId', chosenCompanyId]
]
diff --git a/src/pages/DashboardBeneficiario/components/MyLatestSubmissionsTable/index.js b/src/pages/DashboardBeneficiario/components/MyLatestSubmissionsTable/index.js
index 3cf30e7..1f5f0a7 100644
--- a/src/pages/DashboardBeneficiario/components/MyLatestSubmissionsTable/index.js
+++ b/src/pages/DashboardBeneficiario/components/MyLatestSubmissionsTable/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
-import { uniq, is, isEmpty } from 'ramda';
+import { uniq, is, head } from 'ramda';
// tools
import getBandoLabel from '../../../../helpers/getBandoLabel';
@@ -28,13 +28,16 @@ import { ConfirmPopup, confirmPopup } from 'primereact/confirmpopup';
const MyLatestSubmissionsTable = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const [localAsyncRequest, setLocalAsyncRequest] = useState(false);
const [items, setItems] = useState(null);
const [filters, setFilters] = useState(null);
const [statuses, setStatuses] = useState([]);
useEffect(() => {
- if (!isEmpty(chosenCompanyId) && chosenCompanyId !== 0) {
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany) {
setLocalAsyncRequest(true);
ApplicationService.getApplications(getApplCallback, errGetApplCallback, [
['companyId', chosenCompanyId],
diff --git a/src/pages/DashboardBeneficiario/index.js b/src/pages/DashboardBeneficiario/index.js
index bceb0ca..7d1f625 100644
--- a/src/pages/DashboardBeneficiario/index.js
+++ b/src/pages/DashboardBeneficiario/index.js
@@ -5,7 +5,7 @@ import { head, isEmpty, pathOr } from 'ramda';
import NumberFlow from '@number-flow/react';
// store
-import { useStore } from '../../store';
+import { storeSet, useStore } from '../../store';
// api
import DashboardService from '../../service/dashboard-service';
diff --git a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js
index fad097a..9b4ff4e 100644
--- a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js
+++ b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
-import { is, uniq } from 'ramda';
+import { head, is, uniq } from 'ramda';
// store
import { useStore } from '../../../../store';
@@ -26,13 +26,16 @@ import { confirmPopup, ConfirmPopup } from 'primereact/confirmpopup';
const DocumentsTable = ({ type, reload = 0 }) => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const [docs, setDocs] = useState([]);
const [filters, setFilters] = useState(null);
const [loading, setLoading] = useState(false);
const [statuses, setStatuses] = useState([]);
useEffect(() => {
- if (!loading && chosenCompanyId && chosenCompanyId !== 0 && reload !== 0) {
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (!loading && existingCompany && reload !== 0) {
setLoading(true);
CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, getCallback, errGetCallbacks, [
['documentType', type]
@@ -41,10 +44,14 @@ const DocumentsTable = ({ type, reload = 0 }) => {
}, [chosenCompanyId, reload]);
useEffect(() => {
- setLoading(true);
- CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, getCallback, errGetCallbacks, [
- ['documentType', type]
- ]);
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany) {
+ setLoading(true);
+ CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, getCallback, errGetCallbacks, [
+ ['documentType', type]
+ ]);
+ }
}, []);
const getCallback = (resp) => {
diff --git a/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js b/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
index 39f0655..8a92fc7 100644
--- a/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
+++ b/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
-import { is, isEmpty, uniq } from 'ramda';
+import { head, is, uniq } from 'ramda';
import { Link } from 'react-router-dom';
// store
@@ -27,13 +27,16 @@ import translationStrings from '../../../../translationStringsForComponents';
const BeneficiarioDomandeTable = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const [items, setItems] = useState(null);
const [filters, setFilters] = useState(null);
const [localAsyncRequest, setLocalAsyncRequest] = useState(false);
const [statuses, setStatuses] = useState([]);
useEffect(() => {
- if (!isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && !localAsyncRequest) {
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany && !localAsyncRequest) {
setLocalAsyncRequest(true);
ApplicationService.getApplications(getApplCallback, errGetApplCallback, [
['companyId', chosenCompanyId],
diff --git a/src/pages/StatsBeneficiary/components/BeneficiarioUltimeDomandeTable/index.js b/src/pages/StatsBeneficiary/components/BeneficiarioUltimeDomandeTable/index.js
index 31c7ec9..c65d3d3 100644
--- a/src/pages/StatsBeneficiary/components/BeneficiarioUltimeDomandeTable/index.js
+++ b/src/pages/StatsBeneficiary/components/BeneficiarioUltimeDomandeTable/index.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
-import { is, isEmpty, uniq } from 'ramda';
+import { head, is, uniq } from 'ramda';
// store
import { useStore } from '../../../../store';
@@ -21,6 +21,7 @@ import translationStrings from '../../../../translationStringsForComponents';
const BeneficiarioUltimeDomandeTable = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const [items, setItems] = useState(null);
// eslint-disable-next-line
const [filters, setFilters] = useState(null);
@@ -43,7 +44,9 @@ const BeneficiarioUltimeDomandeTable = () => {
}
useEffect(() => {
- if (!isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && !localAsyncRequest) {
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany && !localAsyncRequest) {
const bodyParams = getPaginationQuery(
['SOCCORSO', 'APPROVED', 'REJECTED', 'EVALUATION', 'SUBMIT'],
1
diff --git a/src/pages/StatsBeneficiary/index.js b/src/pages/StatsBeneficiary/index.js
index 503393d..6643afc 100644
--- a/src/pages/StatsBeneficiary/index.js
+++ b/src/pages/StatsBeneficiary/index.js
@@ -1,6 +1,6 @@
import React, { useEffect, useState, useCallback } from 'react';
import { __ } from '@wordpress/i18n';
-import { isEmpty, pathOr } from 'ramda';
+import { head, isEmpty, pathOr } from 'ramda';
import NumberFlow from '@number-flow/react';
// store
@@ -16,6 +16,7 @@ const StatsBeneficiary = () => {
const [mainStats, setMainStats] = useState({});
const [chartStats, setChartStats] = useState({});
const chosenCompanyId = useStore().main.chosenCompanyId();
+ const companies = useStore().main.companies();
const getStats = (resp) => {
if (resp.status === 'SUCCESS') {
@@ -31,7 +32,11 @@ const StatsBeneficiary = () => {
}, [mainStats]);
useEffect(() => {
- DashboardService.getBeneficiaryStatsPage(chosenCompanyId, getStats, errGetStats);
+ const existingCompany = head(companies.filter(o => o.id === chosenCompanyId));
+
+ if (existingCompany) {
+ DashboardService.getBeneficiaryStatsPage(chosenCompanyId, getStats, errGetStats);
+ }
}, [chosenCompanyId]);
return(