21357: removed select field Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii...
[arvados.git] / services / workbench2 / src / store / side-panel-tree / side-panel-tree-actions.ts
index 970f0cf2a91e427ea746759c4229b41c1c531f3f..b03ed8956e41847e6a677ab5c639e1d1cef19e8c 100644 (file)
@@ -105,6 +105,7 @@ export const loadSidePanelTreeProjects = (projectUuid: string) =>
             verifyAndUpdateLinkNames(unverifiedPubFaves, dispatch, getState, services);
         } else if (projectUuid === SidePanelTreeCategory.FAVORITES) {
             const unverifiedFaves = await dispatch<any>(loadFavoritesTree());
+            await setFaves(unverifiedFaves, dispatch, getState, services);
             verifyAndUpdateLinkNames(unverifiedFaves, dispatch, getState, services);
         } else if (node || projectUuid !== '') {
             await dispatch<any>(loadProject(projectUuid));
@@ -160,6 +161,30 @@ export const loadFavoritesTree = () => async (dispatch: Dispatch, getState: () =
     return items;
 };
 
+const setFaves = async(links: LinkResource[], dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+
+    const uuids = links.map(it => it.headUuid);
+    const groupItems: any = await services.groupsService.list({
+        filters: new FilterBuilder()
+            .addIn("uuid", uuids)
+            .getFilters()
+    });
+    const collectionItems: any = await services.collectionService.list({
+        filters: new FilterBuilder()
+            .addIn("uuid", uuids)
+            .getFilters()
+    });
+    const processItems: any = await services.containerRequestService.list({
+        filters: new FilterBuilder()
+            .addIn("uuid", uuids)
+            .getFilters()
+    });
+    const responseItems = groupItems.items.concat(collectionItems.items).concat(processItems.items);
+
+    //setting resources here so they won't be re-fetched in validation step
+    dispatch(resourcesActions.SET_RESOURCES(responseItems));
+};
+
 const verifyAndUpdateLinkNames = async (links: LinkResource[], dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
     const verfifiedLinks = await verifyAndUpdateLinks(links, dispatch, getState, services);
 
@@ -223,6 +248,9 @@ export const loadPublicFavoritesTree = () => async (dispatch: Dispatch, getState
         })
     );
 
+    //setting resources here so they won't be re-fetched in validation step
+    dispatch(resourcesActions.SET_RESOURCES(responseItems));
+
     return filteredItems;
 };