X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1d402d5f65011e082eb9332118c4dbfe4377952f..273119605b7f33940a5ef9b1422eb1ff152d6764:/src/store/data-explorer/data-explorer-middleware-service.ts diff --git a/src/store/data-explorer/data-explorer-middleware-service.ts b/src/store/data-explorer/data-explorer-middleware-service.ts index 347c73314d..01964fa48a 100644 --- a/src/store/data-explorer/data-explorer-middleware-service.ts +++ b/src/store/data-explorer/data-explorer-middleware-service.ts @@ -5,10 +5,13 @@ import { Dispatch, MiddlewareAPI } from 'redux'; import { RootState } from '../store'; import { DataColumns } from 'components/data-table/data-table'; -import { DataExplorer } from './data-explorer-reducer'; +import { DataExplorer, getSortColumn } from './data-explorer-reducer'; import { ListResults } from 'services/common-service/common-service'; import { createTree } from 'models/tree'; import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree'; +import { OrderBuilder, OrderDirection } from 'services/api/order-builder'; +import { SortDirection } from 'components/data-table/data-column'; +import { Resource } from 'models/resource'; export abstract class DataExplorerMiddlewareService { protected readonly id: string; @@ -47,6 +50,22 @@ export const dataExplorerToListParams = (dataExplorer: DataExplorer) => ({ offset: dataExplorer.page * dataExplorer.rowsPerPage, }); +export const getOrder = (dataExplorer: DataExplorer) => { + const sortColumn = getSortColumn(dataExplorer); + const order = new OrderBuilder(); + if (sortColumn && sortColumn.sort) { + const sortDirection = sortColumn.sort.direction === SortDirection.ASC + ? OrderDirection.ASC + : OrderDirection.DESC; + + return order + .addOrder(sortDirection, sortColumn.sort.field) + .getOrder(); + } else { + return order.getOrder(); + } +}; + export const listResultsToDataExplorerItemsMeta = ({ itemsAvailable, offset,