15840: Project panel uses collection attributes for file count and size
[arvados-workbench2.git] / src / store / project-panel / project-panel-middleware-service.ts
index 257fc04477e86ded783a5a164879af4949772c80..3a42d07eb897677d28889555c6f50fad7069a714 100644 (file)
@@ -25,14 +25,12 @@ import { getProperty } from "~/store/properties/properties";
 import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
 import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
 import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { ListResults } from '~/services/common-service/common-resource-service';
+import { ListResults } from '~/services/common-service/common-service';
 import { loadContainers } from '~/store/processes/processes-actions';
 import { ResourceKind } from '~/models/resource';
-import { getResource } from "~/store/resources/resources";
-import { CollectionResource } from "~/models/collection";
-import { resourcesDataActions } from "~/store/resources-data/resources-data-actions";
 import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
 import { serializeResourceTypeFilters } from '~/store/resource-type-filters/resource-type-filters';
+import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
 
 export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -55,8 +53,8 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService
                 api.dispatch(progressIndicatorActions.PERSIST_STOP_WORKING(this.getId()));
                 const resourceUuids = response.items.map(item => item.uuid);
                 api.dispatch<any>(updateFavorites(resourceUuids));
+                api.dispatch<any>(updatePublicFavorites(resourceUuids));
                 api.dispatch(updateResources(response.items));
-                api.dispatch<any>(updateResourceData(resourceUuids));
                 await api.dispatch<any>(loadMissingProcessesInformation(response.items));
                 api.dispatch(setItems(response));
             } catch (e) {
@@ -89,19 +87,6 @@ export const loadMissingProcessesInformation = (resources: GroupContentsResource
         }
     };
 
-export const updateResourceData = (resourceUuids: string[]) =>
-    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
-        resourceUuids.map(async uuid => {
-            const resource = getResource<CollectionResource>(uuid)(getState().resources);
-            if (resource && resource.kind === ResourceKind.COLLECTION) {
-                const files = await services.collectionService.files(uuid);
-                if (files) {
-                    dispatch(resourcesDataActions.SET_FILES({ uuid, files }));
-                }
-            }
-        });
-    };
-
 export const setItems = (listResults: ListResults<GroupContentsResource>) =>
     projectPanelActions.SET_ITEMS({
         ...listResultsToDataExplorerItemsMeta(listResults),
@@ -155,7 +140,8 @@ export const getOrder = (dataExplorer: DataExplorer) => {
 
 const projectPanelCurrentUuidIsNotSet = () =>
     snackbarActions.OPEN_SNACKBAR({
-        message: 'Project panel is not opened.'
+        message: 'Project panel is not opened.',
+        kind: SnackbarKind.ERROR
     });
 
 const couldNotFetchProjectContents = () =>
@@ -166,5 +152,6 @@ const couldNotFetchProjectContents = () =>
 
 const projectPanelDataExplorerIsNotSet = () =>
     snackbarActions.OPEN_SNACKBAR({
-        message: 'Project panel is not ready.'
+        message: 'Project panel is not ready.',
+        kind: SnackbarKind.ERROR
     });