Merge 'origin/master' into 13753-favorites-view
authorDaniel Kos <daniel.kos@contractors.roche.com>
Tue, 24 Jul 2018 10:09:44 +0000 (12:09 +0200)
committerDaniel Kos <daniel.kos@contractors.roche.com>
Tue, 24 Jul 2018 10:09:44 +0000 (12:09 +0200)
# Conflicts:
# src/services/favorite-service/favorite-service.ts
# src/store/store.ts
# src/views-components/context-menu/context-menu.tsx

Arvados-DCO-1.1-Signed-off-by: Daniel Kos <daniel.kos@contractors.roche.com>

1  2 
src/services/favorite-service/favorite-service.ts
src/store/store.ts
src/views/workbench/workbench.tsx

index fe7c7874fe06abc70d2a1582f0063d4bbac26b60,6ceaa3606f9d28053f5f1fd685f32f132cdecc6e..d25ef3d5f6fa6065738a294db2b8f374f1a66708
@@@ -66,4 -63,21 +66,20 @@@ export class FavoriteService 
                  });
              });
      }
 -
 -}
+     checkPresenceInFavorites(userUuid: string, resourceUuids: string[]): Promise<Record<string, boolean>> {
+         return this.linkService
+             .list({
+                 filters: FilterBuilder
+                     .create<LinkResource>()
+                     .addIn("headUuid", resourceUuids)
+                     .addEqual("tailUuid", userUuid)
+                     .addEqual("linkClass", LinkClass.STAR)
+             })
+             .then(({ items }) => resourceUuids.reduce((results, uuid) => {
+                 const isFavorite = items.some(item => item.headUuid === uuid);
+                 return { ...results, [uuid]: isFavorite };
+             }, {}));
+     }
 +}
index fbb5ad61d691d9548da0cd98bdd97ca2ca5771ff,e7dbe16f49163f7b1cde01b8a08b7463b37bcbce..ff2beb01c7f0f8b9e3c60923ff5bbd8093b3b769
@@@ -14,7 -14,7 +14,8 @@@ import { dataExplorerReducer, DataExplo
  import { projectPanelMiddleware } from './project-panel/project-panel-middleware';
  import { detailsPanelReducer, DetailsPanelState } from './details-panel/details-panel-reducer';
  import { contextMenuReducer, ContextMenuState } from './context-menu/context-menu-reducer';
 +import { favoritePanelMiddleware } from "./favorite-panel/favorite-panel-middleware";
+ import { FavoritesState, favoritesReducer } from './favorites/favorites-reducer';
  
  const composeEnhancers =
      (process.env.NODE_ENV === 'development' &&
index 309b31af1ec9c4096a40a94ee9948707956706ab,99212d3fafffc3fa22582cdfe68fba808f4ab167..862fbd5118262c71ed1fa7618d346bdd9a74fdc4
@@@ -192,10 -199,9 +200,10 @@@ export const Workbench = withStyles(sty
                              <div className={classes.content}>
                                  <Switch>
                                      <Route path="/projects/:id" render={this.renderProjectPanel} />
 +                                    <Route path="/favorites" render={this.renderFavoritePanel} />
                                  </Switch>
                              </div>
-                             { user && <DetailsPanel /> }
+                             {user && <DetailsPanel />}
                          </main>
                          <ContextMenu />
                          <CreateProjectDialog />