diff --git a/src/pages/Bandi/components/AllBandiTable/index.js b/src/pages/Bandi/components/AllBandiTable/index.js index 8276815..236098e 100644 --- a/src/pages/Bandi/components/AllBandiTable/index.js +++ b/src/pages/Bandi/components/AllBandiTable/index.js @@ -23,6 +23,7 @@ import { Calendar } from 'primereact/calendar'; import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import { Link } from 'react-router-dom'; +import translationStrings from '../../../../translationStringsForComponents'; const AllBandiTable = () => { @@ -115,7 +116,7 @@ const AllBandiTable = () => { }; const statusFilterTemplate = (options) => { - return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder="Select One" className="p-column-filter" showClear />; + return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" showClear />; }; const statusItemTemplate = (option) => { @@ -136,7 +137,7 @@ const AllBandiTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} onFilter={(e) => setFilters(e.filters)}> { +const AllBandiAccordion = ({ showOnlyPreferred = false }) => { const chosenCompanyId = useStore().main.chosenCompanyId(); const isAsyncRequest = useStore().main.isAsyncRequest(); const [items, setItems] = useState(null); @@ -40,7 +42,8 @@ const AllBandiAccordion = () => { useEffect(() => { storeSet.main.setAsyncRequest(); BandoService.getBandi(getCallback, errGetCallbacks, [ - ['companyId', chosenCompanyId] + ['companyId', chosenCompanyId], + ['onlyPreferredCall', showOnlyPreferred] ]); }, [chosenCompanyId]); @@ -81,7 +84,19 @@ const AllBandiAccordion = () => { } const amountBodyTemplate = (rowData) => { - return getNumberWithCurrency(rowData.amount); + return { + let newExpandedRows; + if (isNil(expandedRows) || isNil(expandedRows[rowData.id])) { + newExpandedRows = isNil(expandedRows) + ? wrap({}).set([rowData.id], true).value() + : wrap(expandedRows).set([rowData.id], true).value(); + } else { + newExpandedRows = wrap(expandedRows).del([rowData.id]).value(); + } + setExpandedRows(newExpandedRows); + }}>{getNumberWithCurrency(rowData.amount)}; }; const statusBodyTemplate = (rowData) => { @@ -89,11 +104,14 @@ const AllBandiAccordion = () => { }; const statusFilterTemplate = (options) => { - return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder="Select One" className="p-column-filter" showClear />; + return options.filterCallback(e.value, options.index)} + itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" + showClear/>; }; const statusItemTemplate = (option) => { - return ; + return ; }; const addToFavourites = (id, preferredId) => { @@ -188,7 +206,7 @@ const AllBandiAccordion = () => { loading={isAsyncRequest} dataKey="id" filters={filters} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} expandedRows={expandedRows} onRowToggle={(e) => setExpandedRows(e.data)} rowExpansionTemplate={rowExpansionTemplate} @@ -198,7 +216,7 @@ const AllBandiAccordion = () => { body={nameBodyTemplate} style={{ minWidth: '12rem' }}/> + style={{ minWidth: '10rem' }} body={amountBodyTemplate}/> diff --git a/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js b/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js index f1c7495..3a8ca31 100644 --- a/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js +++ b/src/pages/BandiPreferredBeneficiario/components/AllBandiPreferredAccordion/index.js @@ -25,6 +25,7 @@ import { Dropdown } from 'primereact/dropdown'; import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import { Button } from 'primereact/button'; +import translationStrings from '../../../../translationStringsForComponents'; const AllBandiPreferredAccordion = () => { @@ -90,7 +91,7 @@ const AllBandiPreferredAccordion = () => { }; const statusFilterTemplate = (options) => { - return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder="Select One" className="p-column-filter" showClear />; + return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" showClear />; }; const statusItemTemplate = (option) => { @@ -189,7 +190,7 @@ const AllBandiPreferredAccordion = () => { loading={isAsyncRequest} dataKey="id" filters={filters} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} expandedRows={expandedRows} onRowToggle={(e) => setExpandedRows(e.data)} rowExpansionTemplate={rowExpansionTemplate} diff --git a/src/pages/BandiPreferredBeneficiario/index.js b/src/pages/BandiPreferredBeneficiario/index.js index 360090f..e6e2063 100644 --- a/src/pages/BandiPreferredBeneficiario/index.js +++ b/src/pages/BandiPreferredBeneficiario/index.js @@ -7,7 +7,7 @@ import { isEmpty } from 'ramda'; import { useStore } from '../../store'; // components -import AllBandiPreferredAccordion from './components/AllBandiPreferredAccordion'; +import AllBandiAccordion from '../BandiBeneficiario/components/AllBandiAccordion'; const BandiPreferredBeneficiario = () => { const chosenCompanyId = useStore().main.chosenCompanyId(); @@ -34,7 +34,7 @@ const BandiPreferredBeneficiario = () => { : null}
- +
) diff --git a/src/pages/Dashboard/components/DraftApplicationsTable/index.js b/src/pages/Dashboard/components/DraftApplicationsTable/index.js index 63518ff..e3d9a5c 100644 --- a/src/pages/Dashboard/components/DraftApplicationsTable/index.js +++ b/src/pages/Dashboard/components/DraftApplicationsTable/index.js @@ -26,6 +26,7 @@ import { Button } from 'primereact/button'; import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import { Link } from 'react-router-dom'; +import translationStrings from '../../../../translationStringsForComponents'; const DraftApplicationsTable = () => { const chosenCompanyId = useStore().main.chosenCompanyId(); @@ -142,7 +143,7 @@ const DraftApplicationsTable = () => { const statusFilterTemplate = (options) => { return options.filterCallback(e.value, options.index)} - itemTemplate={statusItemTemplate} placeholder="Select One" className="p-column-filter" + itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" showClear/>; }; @@ -169,7 +170,7 @@ const DraftApplicationsTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} onFilter={(e) => setFilters(e.filters)}> { @@ -23,7 +24,7 @@ const LatestBandiTable = () => { const [filters, setFilters] = useState(null); const [localAsyncRequest, setLocalAsyncRequest] = useState(false); const [globalFilterValue, setGlobalFilterValue] = useState(''); - const [statuses, setStatuses] = useState([]); + const [, setStatuses] = useState([]); useEffect(() => { setLocalAsyncRequest(true); @@ -128,7 +129,7 @@ const LatestBandiTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} onFilter={(e) => setFilters(e.filters)}> diff --git a/src/pages/Dashboard/components/LatestUsersActivityTable/index.js b/src/pages/Dashboard/components/LatestUsersActivityTable/index.js index 3473117..1c015c1 100644 --- a/src/pages/Dashboard/components/LatestUsersActivityTable/index.js +++ b/src/pages/Dashboard/components/LatestUsersActivityTable/index.js @@ -107,7 +107,7 @@ const LatestUsersActivityTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage}{__('Nessun dato disponibile', 'gepafin')} onFilter={(e) => setFilters(e.filters)}> { @@ -29,7 +33,7 @@ const LatestBandiTable = () => { const [filters, setFilters] = useState(null); const [loading, setLoading] = useState(false); const [globalFilterValue, setGlobalFilterValue] = useState(''); - const [statuses, setStatuses] = useState([]); + const [, setStatuses] = useState([]); useEffect(() => { setLoading(true); @@ -209,7 +213,7 @@ const LatestBandiTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} onFilter={(e) => setFilters(e.filters)}> { const chosenCompanyId = useStore().main.chosenCompanyId(); @@ -145,7 +146,7 @@ const MyLatestSubmissionsTable = () => { const statusFilterTemplate = (options) => { return options.filterCallback(e.value, options.index)} - itemTemplate={statusItemTemplate} placeholder="Select One" className="p-column-filter" + itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" showClear/>; }; @@ -175,7 +176,7 @@ const MyLatestSubmissionsTable = () => { filters={filters} globalFilterFields={['name', 'status']} header={header} - emptyMessage={__('Nessun dato disponibile', 'gepafin')} + emptyMessage={translationStrings.emptyMessage} onFilter={(e) => setFilters(e.filters)}> diff --git a/src/pages/DashboardPreInstructor/components/PreInstructorDomandeTable/index.js b/src/pages/DashboardPreInstructor/components/PreInstructorDomandeTable/index.js index 5e53e82..ab5fe5a 100644 --- a/src/pages/DashboardPreInstructor/components/PreInstructorDomandeTable/index.js +++ b/src/pages/DashboardPreInstructor/components/PreInstructorDomandeTable/index.js @@ -9,6 +9,10 @@ import { useStore } from '../../../../store'; // api import AssignedApplicationService from '../../../../service/assigned-application-service'; +// tools +import getBandoLabel from '../../../../helpers/getBandoLabel'; +import getBandoSeverity from '../../../../helpers/getBandoSeverity'; + // components import { FilterMatchMode, FilterOperator } from 'primereact/api'; import { DataTable } from 'primereact/datatable'; @@ -19,7 +23,10 @@ import { InputIcon } from 'primereact/inputicon'; import { Button } from 'primereact/button'; import { Calendar } from 'primereact/calendar'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; +import { Dropdown } from 'primereact/dropdown'; +import { Tag } from 'primereact/tag'; +import translationStrings from '../../../../translationStringsForComponents'; const PreInstructorDomandeTable = () => { const userData = useStore().main.userData(); @@ -126,6 +133,14 @@ const PreInstructorDomandeTable = () => { return ; }; + const statusFilterTemplate = (options) => { + return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder={translationStrings.selectOneLabel} className="p-column-filter" showClear />; + }; + + const statusItemTemplate = (option) => { + return ; + }; + const actionsBodyTemplate = (rowData) => { return