X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/f1195b8035a81b011caf89f3aaca3caadd2e99ed..1d402d5f65011e082eb9332118c4dbfe4377952f:/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts?ds=sidebyside diff --git a/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts b/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts index 42bb476b..390292a9 100644 --- a/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts +++ b/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts @@ -8,14 +8,12 @@ import { DataExplorerMiddlewareService } from 'store/data-explorer/data-explorer import { RootState } from 'store/store'; import { getUserUuid } from "common/getuser"; import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions'; -import { getDataExplorer } from 'store/data-explorer/data-explorer-reducer'; +import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer'; import { resourcesActions } from 'store/resources/resources-actions'; import { FilterBuilder } from 'services/api/filter-builder'; import { SortDirection } from 'components/data-table/data-column'; import { OrderDirection, OrderBuilder } from 'services/api/order-builder'; import { getSortColumn } from "store/data-explorer/data-explorer-reducer"; -import { FavoritePanelColumnNames } from 'views/favorite-panel/favorite-panel'; -import { GroupContentsResource, GroupContentsResourcePrefix } from 'services/groups-service/groups-service'; import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions'; import { collectionsContentAddressActions } from './collections-content-address-panel-actions'; import { navigateTo } from 'store/navigation/navigation-action'; @@ -25,6 +23,7 @@ import { setBreadcrumbs } from '../breadcrumbs/breadcrumbs-actions'; import { ResourceKind, extractUuidKind } from 'models/resource'; import { ownerNameActions } from 'store/owner-name/owner-name-actions'; import { getUserDisplayName } from 'models/user'; +import { CollectionResource } from 'models/collection'; export class CollectionsWithSameContentAddressMiddlewareService extends DataExplorerMiddlewareService { constructor(private services: ServiceRepository, id: string) { @@ -36,18 +35,6 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl if (!dataExplorer) { api.dispatch(collectionPanelDataExplorerIsNotSet()); } else { - const sortColumn = getSortColumn(dataExplorer); - - const contentOrder = new OrderBuilder(); - - if (sortColumn && sortColumn.name === FavoritePanelColumnNames.NAME) { - const direction = sortColumn.sortDirection === SortDirection.ASC - ? OrderDirection.ASC - : OrderDirection.DESC; - - contentOrder - .addOrder(direction, "name", GroupContentsResourcePrefix.COLLECTION); - } try { api.dispatch(progressIndicatorActions.START_WORKING(this.getId())); const userUuid = getUserUuid(api.getState()); @@ -60,7 +47,8 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl .addEqual('portable_data_hash', contentAddress) .addILike("name", dataExplorer.searchValue) .getFilters(), - includeOldVersions: true + includeOldVersions: true, + order: getOrder(dataExplorer) }); const userUuids = response.items.map(it => { if (extractUuidKind(it.ownerUuid) === ResourceKind.USER) { @@ -112,7 +100,7 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl api.dispatch(collectionsContentAddressActions.SET_ITEMS({ items: response.items.map((resource: any) => resource.uuid), itemsAvailable: response.itemsAvailable, - page: Math.floor(response.offset / response.limit) || 0, + page: Math.floor(response.offset / response.limit), rowsPerPage: response.limit })); } @@ -130,6 +118,22 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl } } +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(); + } +}; + const collectionPanelDataExplorerIsNotSet = () => snackbarActions.OPEN_SNACKBAR({ message: 'Collection panel is not ready.',