Skip to content

Commit

Permalink
Introduce ordering on column for table widget #2691
Browse files Browse the repository at this point in the history
  • Loading branch information
myrdstom committed Oct 28, 2020
1 parent a663577 commit 36f01eb
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,13 @@ describe('Test for FeatureGrid component', () => {
};
spyOn(events, "onSort");
ReactDOM.render(<FeatureGrid virtualScroll={false} gridEvents={{onGridSort: events.onSort}} describeFeatureType={describePois} features={museam.features}/>, document.getElementById("container"));
expect(document.getElementsByClassName('react-grid-HeaderCell-sortable react-grid-HeaderCell-sortable--ascending').length).toBe(0);
document.getElementsByClassName('react-grid-HeaderCell-sortable')[0].click();
expect(events.onSort).toHaveBeenCalled();
expect(document.getElementsByClassName('react-grid-HeaderCell-sortable react-grid-HeaderCell-sortable--ascending').length).toBe(1);
document.getElementsByClassName('react-grid-HeaderCell-sortable')[0].click();
expect(document.getElementsByClassName('react-grid-HeaderCell-sortable react-grid-HeaderCell-sortable--ascending').length).toBe(0);
expect(document.getElementsByClassName('react-grid-HeaderCell-sortable react-grid-HeaderCell-sortable--descending').length).toBe(1);
});
//
// ROW SELECTION EVENTS
Expand Down
10 changes: 9 additions & 1 deletion web/client/components/widgets/enhancers/tableWidget.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ const { compose, withPropsOnChange } = require('recompose');
const { get } = require('lodash');
const {editableWidget, withHeaderTools, defaultIcons} = require('./tools');

const withSorting = () => withPropsOnChange(["gridEvents"], ({ gridEvents = {}, updateProperty = () => { } } = {}) => ({
gridEvents: {
...gridEvents,
onGridSort: (sortBy, sortOrder) => updateProperty("sortOptions", { sortBy, sortOrder })
}
}));

/**
* enhancer that updates widget column size on resize. and add base icons and menus
* Moreover enhances it to allow delete.
Expand All @@ -26,5 +33,6 @@ module.exports = compose(
require('./deleteWidget'),
editableWidget(),
defaultIcons(),
withHeaderTools()
withHeaderTools(),
withSorting()
);
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ module.exports = pages$ => props$ => props$.switchMap(({
maxStoredPages = 5,
filter,
options = {},
sortOptions,
pages,
features = [],
onLoad = () => { },
onLoadError = () => { }
}) => pages$.switchMap(({ pagesRange, pagination = {} }, { }) => getLayerJSONFeature(layer, filter, {
...getCurrentPaginationOptions(pagesRange, pages, size),
sortOptions: sortOptions,
timeout: 15000,
totalFeatures: pagination.totalFeatures, // this is needed to allow workaround of GEOS-7233
propertyName: options.propertyName,
Expand Down
2 changes: 1 addition & 1 deletion web/client/components/widgets/widget/TableWidget.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ module.exports = getWidgetFilterRenderers(({
<FeatureGrid
emptyRowsView={() => <EmptyRowsView loading={loading} />}
gridEvents={gridEvents}
sortable={false}
sortable
defaultSize={false}
columnSettings={columnSettings}
pageEvents={pageEvents}
Expand Down

0 comments on commit 36f01eb

Please sign in to comment.