Add favorite star, fix post merge compilation problems
authorDaniel Kos <daniel.kos@contractors.roche.com>
Tue, 24 Jul 2018 10:29:17 +0000 (12:29 +0200)
committerDaniel Kos <daniel.kos@contractors.roche.com>
Tue, 24 Jul 2018 10:29:17 +0000 (12:29 +0200)
Feature #13753

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

src/store/favorite-panel/favorite-panel-middleware.ts
src/views/favorite-panel/favorite-panel.tsx
src/views/workbench/workbench.tsx

index 27e36b0caaae324b4e6097f56758b861fcb5f6ec..791c6bdaf56bcedf9b9e5fb982e1b6b44fd846a0 100644 (file)
@@ -22,6 +22,7 @@ import {
 import { FavoritePanelItem, resourceToDataItem } from "../../views/favorite-panel/favorite-panel-item";
 import { LinkResource } from "../../models/link";
 import { ResourceKind } from "../../models/resource";
+import { checkPresenceInFavorites } from "../favorites/favorites-actions";
 
 export const favoritePanelMiddleware: Middleware = store => next => {
     next(dataExplorerActions.SET_COLUMNS({ id: FAVORITE_PANEL_ID, columns }));
@@ -76,6 +77,7 @@ export const favoritePanelMiddleware: Middleware = store => next => {
                                 page: Math.floor(response.offset / response.limit),
                                 rowsPerPage: response.limit
                             }));
+                            store.dispatch<any>(checkPresenceInFavorites(response.items.map(item => item.uuid)));
                         });
                 } else {
                     store.dispatch(dataExplorerActions.SET_ITEMS({
index 4c5b5bd8d6e3a59d7fe7b8a37b4d964f9e37e9b6..6f4cedbac02982473758146b1efb7e16e5f8a2ba 100644 (file)
@@ -18,6 +18,7 @@ import { ResourceKind } from '../../models/resource';
 import { resourceLabel } from '../../common/labels';
 import { ProjectIcon, CollectionIcon, ProcessIcon, DefaultIcon } from '../../components/icon/icon';
 import { ArvadosTheme } from '../../common/custom-theme';
+import { FavoriteStar } from "../../views-components/favorite-star/favorite-star";
 
 type CssRules = "toolbar" | "button";
 
@@ -41,6 +42,11 @@ const renderName = (item: FavoritePanelItem) =>
                 {item.name}
             </Typography>
         </Grid>
+        <Grid item>
+            <Typography variant="caption">
+                <FavoriteStar resourceUuid={item.uuid} />
+            </Typography>
+        </Grid>
     </Grid>;
 
 
index 862fbd5118262c71ed1fa7618d346bdd9a74fdc4..43033d969eeb8463d46738dfbd147a494bdfe09a 100644 (file)
@@ -233,7 +233,14 @@ export const Workbench = withStyles(styles)(
 
             renderFavoritePanel = (props: RouteComponentProps<{ id: string }>) => <FavoritePanel
                 onItemRouteChange={itemId => this.props.dispatch<any>(setFavoriteItem(itemId, ItemMode.ACTIVE))}
-                onContextMenu={(event, item) => this.openContextMenu(event, item.uuid, ContextMenuKind.Favorite)}
+                onContextMenu={(event, item) => {
+                    const kind = item.kind === ResourceKind.Project ? ContextMenuKind.Project : ContextMenuKind.Resource;
+                    this.openContextMenu(event, {
+                        uuid: item.uuid,
+                        name: item.name,
+                        kind,
+                    });
+                }}
                 onDialogOpen={this.handleCreationDialogOpen}
                 onItemClick={item => {
                     this.props.dispatch<any>(loadDetails(item.uuid, item.kind as ResourceKind));