From 5987e03682e7e4af81ccc21046e7ab6ad2ddb26b Mon Sep 17 00:00:00 2001 From: elforjani3 Date: Wed, 8 Apr 2020 20:16:33 +0200 Subject: [PATCH] WIP manual-journals --- .../JournalEntry/ManualJournalActionsBar.js | 112 ++++++++++++++ .../JournalEntry/ManualJournalsDataTable.js | 140 ++++++++++++++++++ .../JournalEntry/ManualJournalsViewTabs.js | 98 ++++++++++++ client/src/config/sidebarMenu.js | 4 + .../src/connectors/ManualJournals.connect.js | 38 +++++ .../Accounting/ManualJournalsTable.js | 99 +++++++++++++ client/src/routes/dashboard.js | 14 +- .../store/accounting/accounting.actions.js | 85 ++++++++++- .../store/accounting/accounting.reducers.js | 54 +++++++ .../store/accounting/accounting.selectors.js | 14 ++ .../src/store/accounting/accountsing.types.js | 11 +- .../src/store/accounts/accounts.selectors.js | 12 +- client/src/store/reducers.js | 5 +- client/src/store/types.js | 5 +- 14 files changed, 671 insertions(+), 20 deletions(-) create mode 100644 client/src/components/JournalEntry/ManualJournalActionsBar.js create mode 100644 client/src/components/JournalEntry/ManualJournalsDataTable.js create mode 100644 client/src/components/JournalEntry/ManualJournalsViewTabs.js create mode 100644 client/src/connectors/ManualJournals.connect.js create mode 100644 client/src/containers/Dashboard/Accounting/ManualJournalsTable.js create mode 100644 client/src/store/accounting/accounting.selectors.js diff --git a/client/src/components/JournalEntry/ManualJournalActionsBar.js b/client/src/components/JournalEntry/ManualJournalActionsBar.js new file mode 100644 index 000000000..77d03defe --- /dev/null +++ b/client/src/components/JournalEntry/ManualJournalActionsBar.js @@ -0,0 +1,112 @@ +import React, { useMemo, useState } from 'react'; +import Icon from 'components/Icon'; +import { + Button, + NavbarGroup, + Classes, + NavbarDivider, + MenuItem, + Menu, + Popover, + PopoverInteractionKind, + Position, + Intent +} from '@blueprintjs/core'; +import classNames from 'classnames'; +import { useRouteMatch, useHistory } from 'react-router-dom'; +import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; +import DialogConnect from 'connectors/Dialog.connector'; +import { compose } from 'utils'; +import FilterDropdown from 'components/FilterDropdown'; +import ManualJournalsConnect from 'connectors/ManualJournals.connect'; +import ResourceConnect from 'connectors/Resource.connector'; + +function ManualJournalActionsBar({ + openDialog, + views, + getResourceFields, + addManualJournalsTableQueries, + onFilterChanged +}) { + const { path } = useRouteMatch(); + const history = useHistory(); + + const manualJournalFields = getResourceFields('manual_journals'); + const viewsMenuItems = views.map(view => { + return ( + + ); + }); + + const onClickNewManualJournal = () => { + history.push('/dashboard/accounting/make-journal-entry'); + }; + const filterDropdown = FilterDropdown({ + fields: manualJournalFields, + onFilterChange: filterConditions => { + addManualJournalsTableQueries({ + filter_roles: filterConditions || '' + }); + onFilterChanged && onFilterChanged(filterConditions); + } + }); + return ( + + + {viewsMenuItems}} + minimal={true} + interactionKind={PopoverInteractionKind.HOVER} + position={Position.BOTTOM_LEFT} + > +