X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4417a36247e40e7b2204b19324922940395c5361..45d451dc2d78d82afbff32de5ee71d0734daf936:/src/store/project-panel/project-panel-middleware-service.ts diff --git a/src/store/project-panel/project-panel-middleware-service.ts b/src/store/project-panel/project-panel-middleware-service.ts index 7204993b5c..366e15ae04 100644 --- a/src/store/project-panel/project-panel-middleware-service.ts +++ b/src/store/project-panel/project-panel-middleware-service.ts @@ -35,13 +35,15 @@ import { updatePublicFavorites } from "store/public-favorites/public-favorites-a import { selectedFieldsOfGroup } from "models/group"; import { defaultCollectionSelectedFields } from "models/collection"; import { containerRequestFieldsNoMounts } from "models/container-request"; +import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions"; +import { removeDisabledButton } from "store/multiselect/multiselect-actions"; export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService { constructor(private services: ServiceRepository, id: string) { super(id); } - async requestItems(api: MiddlewareAPI) { + async requestItems(api: MiddlewareAPI, criteriaChanged?: boolean, background?: boolean) { const state = api.getState(); const dataExplorer = getDataExplorer(state.dataExplorer, this.getId()); const projectUuid = getProjectPanelCurrentUuid(state); @@ -52,7 +54,7 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService api.dispatch(projectPanelDataExplorerIsNotSet()); } else { try { - api.dispatch(progressIndicatorActions.START_WORKING(this.getId())); + if (!background) { api.dispatch(progressIndicatorActions.START_WORKING(this.getId())); } const response = await this.services.groupsService.contents(projectUuid, getParams(dataExplorer, !!isProjectTrashed)); const resourceUuids = response.items.map(item => item.uuid); api.dispatch(updateFavorites(resourceUuids)); @@ -69,9 +71,17 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService rowsPerPage: dataExplorer.rowsPerPage, }) ); - api.dispatch(couldNotFetchProjectContents()); + if (e.status === 404) { + // It'll just show up as not found + } + else { + api.dispatch(couldNotFetchProjectContents()); + } } finally { - api.dispatch(progressIndicatorActions.PERSIST_STOP_WORKING(this.getId())); + if (!background) { + api.dispatch(progressIndicatorActions.PERSIST_STOP_WORKING(this.getId())); + api.dispatch(removeDisabledButton(MultiSelectMenuActionNames.MOVE_TO_TRASH)) + } } } } @@ -127,10 +137,12 @@ const getOrder = (dataExplorer: DataExplorer) => { if (sortColumn && sortColumn.sort) { const sortDirection = sortColumn.sort.direction === SortDirection.ASC ? OrderDirection.ASC : OrderDirection.DESC; + // Use createdAt as a secondary sort column so we break ties consistently. return order .addOrder(sortDirection, sortColumn.sort.field, GroupContentsResourcePrefix.COLLECTION) .addOrder(sortDirection, sortColumn.sort.field, GroupContentsResourcePrefix.PROCESS) .addOrder(sortDirection, sortColumn.sort.field, GroupContentsResourcePrefix.PROJECT) + .addOrder(OrderDirection.DESC, "createdAt", GroupContentsResourcePrefix.PROCESS) .getOrder(); } else { return order.getOrder();