Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / store / public-favorites-panel / public-favorites-middleware-service.ts
index be7f5285953df1fcf0e2feb36b01792a95cd3174..48d27be5413214c5a64f91fdec10f200261496b9 100644 (file)
@@ -2,25 +2,22 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
 import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, getDataExplorerColumnFilters } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { 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 { publicFavoritePanelActions } from '~/store/public-favorites-panel/public-favorites-action';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataExplorerMiddlewareService, getDataExplorerColumnFilters } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { resourcesActions } from 'store/resources/resources-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { FavoritePanelColumnNames } from 'views/favorite-panel/favorite-panel';
+import { publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action';
+import { DataColumns } from 'components/data-table/data-table';
 import { serializeSimpleObjectTypeFilters } from '../resource-type-filters/resource-type-filters';
-import { LinkResource, LinkClass } from '~/models/link';
-import { GroupContentsResource, GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
+import { LinkClass } from 'models/link';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
 
 export class PublicFavoritesMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -32,37 +29,20 @@ export class PublicFavoritesMiddlewareService extends DataExplorerMiddlewareServ
         if (!dataExplorer) {
             api.dispatch(favoritesPanelDataExplorerIsNotSet());
         } else {
-            const columns = dataExplorer.columns as DataColumns<string>;
-            const sortColumn = getSortColumn(dataExplorer);
+            const columns = dataExplorer.columns as DataColumns<string, GroupContentsResource>;
             const typeFilters = serializeSimpleObjectTypeFilters(getDataExplorerColumnFilters(columns, FavoritePanelColumnNames.TYPE));
 
-
-            const linkOrder = new OrderBuilder<LinkResource>();
-            const contentOrder = new OrderBuilder<GroupContentsResource>();
-
-            if (sortColumn && sortColumn.name === FavoritePanelColumnNames.NAME) {
-                const direction = sortColumn.sortDirection === SortDirection.ASC
-                    ? OrderDirection.ASC
-                    : OrderDirection.DESC;
-
-                linkOrder.addOrder(direction, "name");
-                contentOrder
-                    .addOrder(direction, "name", GroupContentsResourcePrefix.COLLECTION)
-                    .addOrder(direction, "name", GroupContentsResourcePrefix.PROCESS)
-                    .addOrder(direction, "name", GroupContentsResourcePrefix.PROJECT);
-            }
             try {
                 api.dispatch(progressIndicatorActions.START_WORKING(this.getId()));
-                const uuidPrefix = api.getState().config.uuidPrefix;
-                const uuid = `${uuidPrefix}-j7d0g-fffffffffffffff`;
+                const uuidPrefix = api.getState().auth.config.uuidPrefix;
+                const publicProjectUuid = `${uuidPrefix}-j7d0g-publicfavorites`;
                 const responseLinks = await this.services.linkService.list({
                     limit: dataExplorer.rowsPerPage,
                     offset: dataExplorer.page * dataExplorer.rowsPerPage,
                     filters: new FilterBuilder()
-                        .addEqual('linkClass', LinkClass.STAR)
-                        .addILike("name", dataExplorer.searchValue)
-                        .addEqual('ownerUuid', uuid)
-                        .addIsA("headUuid", typeFilters)
+                        .addEqual('link_class', LinkClass.STAR)
+                        .addEqual('owner_uuid', publicProjectUuid)
+                        .addIsA("head_uuid", typeFilters)
                         .getFilters()
                 });
                 const uuids = responseLinks.items.map(it => it.headUuid);
@@ -88,11 +68,11 @@ export class PublicFavoritesMiddlewareService extends DataExplorerMiddlewareServ
                         .getFilters()
                 });
                 const response = groupItems;
-                collectionItems.items.map((it: any) => {
+                collectionItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
-                processItems.items.map((it: any) => {
+                processItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
@@ -129,4 +109,4 @@ const couldNotFetchPublicFavorites = () =>
     snackbarActions.OPEN_SNACKBAR({
         message: 'Could not fetch public favorites contents.',
         kind: SnackbarKind.ERROR
-    });
\ No newline at end of file
+    });