X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/bccb9ca5151f041d8c8b73098a3e1874023e3efa..7ae86efd9905582df4191910528c3803a68ba81b:/src/store/project-panel/project-panel-middleware.ts diff --git a/src/store/project-panel/project-panel-middleware.ts b/src/store/project-panel/project-panel-middleware.ts index 7ea2ffab5b..b7ab03ceca 100644 --- a/src/store/project-panel/project-panel-middleware.ts +++ b/src/store/project-panel/project-panel-middleware.ts @@ -15,6 +15,7 @@ import { ProcessResource } from "../../models/process"; import { OrderBuilder } from "../../common/api/order-builder"; import { GroupContentsResource, GroupContentsResourcePrefix } from "../../services/groups-service/groups-service"; import { SortDirection } from "../../components/data-table/data-column"; +import { checkPresenceInFavorites } from "../favorites/favorites-actions"; export const projectPanelMiddleware: Middleware = store => next => { next(dataExplorerActions.SET_COLUMNS({ id: PROJECT_PANEL_ID, columns })); @@ -51,17 +52,17 @@ export const projectPanelMiddleware: Middleware = store => next => { const state = store.getState() as RootState; const dataExplorer = getDataExplorer(state.dataExplorer, PROJECT_PANEL_ID); const columns = dataExplorer.columns as DataColumns; - const typeFilters = getColumnFilters(columns, ProjectPanelColumnNames.Type); - const statusFilters = getColumnFilters(columns, ProjectPanelColumnNames.Status); + const typeFilters = getColumnFilters(columns, ProjectPanelColumnNames.TYPE); + const statusFilters = getColumnFilters(columns, ProjectPanelColumnNames.STATUS); const sortColumn = dataExplorer.columns.find(({ sortDirection }) => Boolean(sortDirection && sortDirection !== "none")); - const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.Asc ? SortDirection.Asc : SortDirection.Desc; + const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC ? SortDirection.ASC : SortDirection.DESC; if (typeFilters.length > 0) { groupsService .contents(state.projects.currentItemId, { limit: dataExplorer.rowsPerPage, offset: dataExplorer.page * dataExplorer.rowsPerPage, order: sortColumn - ? sortColumn.name === ProjectPanelColumnNames.Name + ? sortColumn.name === ProjectPanelColumnNames.NAME ? getOrder("name", sortDirection) : getOrder("createdAt", sortDirection) : OrderBuilder.create(), @@ -71,7 +72,7 @@ export const projectPanelMiddleware: Middleware = store => next => { .create() .addIsA("uuid", typeFilters.map(f => f.type))) .concat(FilterBuilder - .create(GroupContentsResourcePrefix.Process) + .create(GroupContentsResourcePrefix.PROCESS) .addIn("state", statusFilters.map(f => f.type))) .concat(getSearchFilter(dataExplorer.searchValue)) }) @@ -83,6 +84,7 @@ export const projectPanelMiddleware: Middleware = store => next => { page: Math.floor(response.offset / response.limit), rowsPerPage: response.limit })); + store.dispatch(checkPresenceInFavorites(response.items.map(item => item.uuid))); }); } else { store.dispatch(dataExplorerActions.SET_ITEMS({ @@ -106,20 +108,20 @@ const getColumnFilters = (columns: DataColumns [ - OrderBuilder.create(GroupContentsResourcePrefix.Collection), - OrderBuilder.create(GroupContentsResourcePrefix.Process), - OrderBuilder.create(GroupContentsResourcePrefix.Project) + OrderBuilder.create(GroupContentsResourcePrefix.COLLECTION), + OrderBuilder.create(GroupContentsResourcePrefix.PROCESS), + OrderBuilder.create(GroupContentsResourcePrefix.PROJECT) ].reduce((acc, b) => - acc.concat(direction === SortDirection.Asc + acc.concat(direction === SortDirection.ASC ? b.addAsc(attribute) : b.addDesc(attribute)), OrderBuilder.create()); const getSearchFilter = (searchValue: string) => searchValue ? [ - FilterBuilder.create(GroupContentsResourcePrefix.Collection), - FilterBuilder.create(GroupContentsResourcePrefix.Process), - FilterBuilder.create(GroupContentsResourcePrefix.Project)] + FilterBuilder.create(GroupContentsResourcePrefix.COLLECTION), + FilterBuilder.create(GroupContentsResourcePrefix.PROCESS), + FilterBuilder.create(GroupContentsResourcePrefix.PROJECT)] .reduce((acc, b) => acc.concat(b.addILike("name", searchValue)), FilterBuilder.create()) : FilterBuilder.create();