From 1ad0d1650c887dda3bf0401efb0df9c146f3a12e Mon Sep 17 00:00:00 2001 From: Matija Obreza Date: Sun, 30 Sep 2018 09:10:50 +0200 Subject: [PATCH] Dashboard supports configurable Filters via `filterComponent` property - Added custom descriptor Filters for dashboard - Added Descriptor is `used` filter --- locales/en/translations.json | 3 +- src/descriptors/ui/DashboardPage.tsx | 2 + src/descriptors/ui/c/Filters.tsx | 45 +++++++++------------- src/ui/catalog/dashboard/MyDataPage.tsx | 4 +- src/ui/catalog/dashboard/c/MyDataTable.tsx | 6 ++- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/locales/en/translations.json b/locales/en/translations.json index 8c57739..27a1e91 100644 --- a/locales/en/translations.json +++ b/locales/en/translations.json @@ -192,7 +192,8 @@ "uuid": "Partner" }, "published": "Published", - "uom": "UOM" + "uom": "UOM", + "used": "Used" }, "accessions": { "crops": "Crop name", diff --git a/src/descriptors/ui/DashboardPage.tsx b/src/descriptors/ui/DashboardPage.tsx index 9cdbeec..6efd852 100644 --- a/src/descriptors/ui/DashboardPage.tsx +++ b/src/descriptors/ui/DashboardPage.tsx @@ -8,6 +8,7 @@ import {listMyDescriptors, approveDescriptor, deleteDescriptor, unpublishDescrip import {Descriptor} from 'model/descriptor.model'; import {DescriptorLink} from 'ui/catalog/Links'; import {PublishState} from 'model/common.model'; +import DashboardDescriptorFilters from './c/DashboardFilters'; const renderDataLink = ({row, children}) => ({ children }); @@ -29,6 +30,7 @@ class DashboardPage extends BaseMyDataPage { const mapStateToProps = (state, ownProps) => ({ paged: state.descriptors.dashboard.paged, tab: 'descriptors', + filterComponent: DashboardDescriptorFilters, }); const mapDispatchToProps = (dispatch) => bindActionCreators({ diff --git a/src/descriptors/ui/c/Filters.tsx b/src/descriptors/ui/c/Filters.tsx index bfad9b4..170c290 100644 --- a/src/descriptors/ui/c/Filters.tsx +++ b/src/descriptors/ui/c/Filters.tsx @@ -13,34 +13,25 @@ import {Descriptor} from 'model/descriptor.model'; import DescriptorListPicker from './DescriptorListPicker'; import PartnerFilter from 'partners/ui/c/PartnerFilter'; -// -// -// -// -// -// -// -// +const DescriptorFilters = ({ handleSubmit, initialize, ...other }) => ( + + + + + + + + + + - -const DescriptorFilters = ({handleSubmit, initialize, ...other}) => ( - - - - - - - - - - - - - - - - - + + + + + + + ); export default reduxForm({ diff --git a/src/ui/catalog/dashboard/MyDataPage.tsx b/src/ui/catalog/dashboard/MyDataPage.tsx index c11e381..85fe4a5 100644 --- a/src/ui/catalog/dashboard/MyDataPage.tsx +++ b/src/ui/catalog/dashboard/MyDataPage.tsx @@ -19,6 +19,7 @@ import DashboardActionsButton from './c/DashboardActionsButton'; interface IDataPublishedContainerProps extends React.ClassAttributes { title: string; tab?: string; + filterComponent?: any; pagination: any; paged: Page; preFilter?: object; @@ -135,13 +136,14 @@ class BaseMyDataPage extends React.Component ({ interface IMyDataTableProps extends React.Props { classes?: any; tab: string; + filterComponent?: any; basePath: string; paged: Page; onPaginationChange: (page: number, results: number, sortBy: string, dir?: string) => void; @@ -59,6 +60,7 @@ const defaultSortOptions = { function MyDataTable({ classes, tab, + filterComponent, basePath, paged, onPaginationChange, @@ -107,6 +109,8 @@ function MyDataTable({ const query = pagination.filterCode ? `?filter=${pagination.filterCode}` : ''; // console.log(`DF initialValues ${query}`, filter); + const Filters = filterComponent ? filterComponent : DashboardFilters; + // TODO change `DashboardActionsArea` after merge tu genesys-ui return (
@@ -126,7 +130,7 @@ function MyDataTable({ - + { !paged ? : -- GitLab