X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/59329caeae17903b97b90b167df5a8122a0c9d95..20798b41fd3a5c012141391403d7caf066f46086:/src/store/link-panel/link-panel-middleware-service.ts diff --git a/src/store/link-panel/link-panel-middleware-service.ts b/src/store/link-panel/link-panel-middleware-service.ts index b4d342c3..cc6ea8cf 100644 --- a/src/store/link-panel/link-panel-middleware-service.ts +++ b/src/store/link-panel/link-panel-middleware-service.ts @@ -2,20 +2,17 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { ServiceRepository } from '~/services/services'; +import { ServiceRepository } from 'services/services'; import { MiddlewareAPI, Dispatch } from 'redux'; -import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service'; -import { RootState } from '~/store/store'; -import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; -import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer'; -import { updateResources } from '~/store/resources/resources-actions'; -import { SortDirection } from '~/components/data-table/data-column'; -import { OrderDirection, OrderBuilder } from '~/services/api/order-builder'; -import { ListResults } from '~/services/common-service/common-service'; -import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer"; -import { LinkResource } from '~/models/link'; -import { linkPanelActions } from '~/store/link-panel/link-panel-actions'; -import { LinkPanelColumnNames } from '~/views/link-panel/link-panel-root'; +import { DataExplorerMiddlewareService, dataExplorerToListParams, getOrder, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service'; +import { RootState } from 'store/store'; +import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions'; +import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer'; +import { updateResources } from 'store/resources/resources-actions'; +import { ListResults } from 'services/common-service/common-service'; +import { LinkResource } from 'models/link'; +import { linkPanelActions } from 'store/link-panel/link-panel-actions'; +import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions"; export class LinkMiddlewareService extends DataExplorerMiddlewareService { constructor(private services: ServiceRepository, id: string) { @@ -26,37 +23,23 @@ export class LinkMiddlewareService extends DataExplorerMiddlewareService { const state = api.getState(); const dataExplorer = getDataExplorer(state.dataExplorer, this.getId()); try { + api.dispatch(progressIndicatorActions.START_WORKING(this.getId())); const response = await this.services.linkService.list(getParams(dataExplorer)); api.dispatch(updateResources(response.items)); api.dispatch(setItems(response)); } catch { api.dispatch(couldNotFetchLinks()); + } finally { + api.dispatch(progressIndicatorActions.STOP_WORKING(this.getId())); } } } export const getParams = (dataExplorer: DataExplorer) => ({ ...dataExplorerToListParams(dataExplorer), - order: getOrder(dataExplorer) + order: getOrder(dataExplorer) }); -const getOrder = (dataExplorer: DataExplorer) => { - const sortColumn = getSortColumn(dataExplorer); - const order = new OrderBuilder(); - if (sortColumn) { - const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC - ? OrderDirection.ASC - : OrderDirection.DESC; - - const columnName = sortColumn && sortColumn.name === LinkPanelColumnNames.NAME ? "name" : "modifiedAt"; - return order - .addOrder(sortDirection, columnName) - .getOrder(); - } else { - return order.getOrder(); - } -}; - export const setItems = (listResults: ListResults) => linkPanelActions.SET_ITEMS({ ...listResultsToDataExplorerItemsMeta(listResults),