[ARVADOS-WORKBENCH2] updated: 1.1.4-452-g711d39c

Git user git at public.curoverse.com
Tue Jul 31 18:59:20 EDT 2018


Summary of changes:
 src/components/column-selector/column-selector.tsx            |  8 ++++----
 src/components/data-explorer/data-explorer.tsx                |  2 +-
 src/components/data-table/data-column.ts                      | 10 +++-------
 src/store/data-explorer/data-explorer-middleware-service.ts   | 10 +++-------
 src/store/data-explorer/data-explorer-middleware.test.ts      |  3 +++
 src/store/data-explorer/data-explorer-middleware.ts           |  2 +-
 src/store/data-explorer/data-explorer-reducer.ts              |  2 +-
 src/store/favorite-panel/favorite-panel-middleware-service.ts | 11 ++++++-----
 src/store/project-panel/project-panel-middleware-service.ts   |  8 ++++----
 src/views/favorite-panel/favorite-panel.tsx                   |  6 ++++++
 src/views/project-panel/project-panel.tsx                     |  6 ++++++
 11 files changed, 38 insertions(+), 30 deletions(-)

       via  711d39ce13e6662e7823485f13a6e94a748cecf8 (commit)
      from  ae85f32b449562726c0fd3d30447c799069a0bbb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 711d39ce13e6662e7823485f13a6e94a748cecf8
Author: Daniel Kos <daniel.kos at contractors.roche.com>
Date:   Wed Aug 1 00:59:14 2018 +0200

    Make configurable explicit, remove getDataExplorer
    
    Feature #13887
    
    Arvados-DCO-1.1-Signed-off-by: Daniel Kos <daniel.kos at contractors.roche.com>

diff --git a/src/components/column-selector/column-selector.tsx b/src/components/column-selector/column-selector.tsx
index 0f496e2..f2e42dd 100644
--- a/src/components/column-selector/column-selector.tsx
+++ b/src/components/column-selector/column-selector.tsx
@@ -5,7 +5,7 @@
 import * as React from 'react';
 import { WithStyles, StyleRulesCallback, withStyles, IconButton, Paper, List, Checkbox, ListItemText, ListItem } from '@material-ui/core';
 import MenuIcon from "@material-ui/icons/Menu";
-import { DataColumn, isColumnConfigurable } from '../data-table/data-column';
+import { DataColumn } from '../data-table/data-column';
 import { Popover } from "../popover/popover";
 import { IconButtonProps } from '@material-ui/core/IconButton';
 import { DataColumns } from '../data-table/data-table';
@@ -33,8 +33,8 @@ export const ColumnSelector = withStyles(styles)(
         <Paper>
             <List dense>
                 {columns
-                    .filter(isColumnConfigurable)
-                    .map((column, index) => (
+                    .filter(column => column.configurable)
+                    .map((column, index) =>
                         <ListItem
                             button
                             key={index}
@@ -48,7 +48,7 @@ export const ColumnSelector = withStyles(styles)(
                                 {column.name}
                             </ListItemText>
                         </ListItem>
-                    ))}
+                    )}
             </List>
         </Paper>
     </Popover>
diff --git a/src/components/data-explorer/data-explorer.tsx b/src/components/data-explorer/data-explorer.tsx
index 4699fd6..4a85209 100644
--- a/src/components/data-explorer/data-explorer.tsx
+++ b/src/components/data-explorer/data-explorer.tsx
@@ -105,8 +105,8 @@ export const DataExplorer = withStyles(styles)(
         contextMenuColumn = {
             name: "Actions",
             selected: true,
+            configurable: false,
             key: "context-actions",
-            renderHeader: () => null,
             render: this.renderContextMenuTrigger,
             width: "auto"
         };
diff --git a/src/components/data-table/data-column.ts b/src/components/data-table/data-column.ts
index 96ef952..a5000b9 100644
--- a/src/components/data-table/data-column.ts
+++ b/src/components/data-table/data-column.ts
@@ -7,12 +7,12 @@ import { DataTableFilterItem } from "../data-table-filters/data-table-filters";
 export interface DataColumn<T, F extends DataTableFilterItem = DataTableFilterItem> {
     name: string;
     selected: boolean;
-    configurable?: boolean;
+    configurable: boolean;
     key?: React.Key;
     sortDirection?: SortDirection;
     filters?: F[];
-    render: (item: T) => React.ReactElement<void>;
-    renderHeader?: () => React.ReactElement<void> | null;
+    render: (item: T) => React.ReactElement<any>;
+    renderHeader?: () => React.ReactElement<any>;
     width?: string;
 }
 
@@ -22,10 +22,6 @@ export enum SortDirection {
     NONE = "none"
 }
 
-export const isColumnConfigurable = <T>(column: DataColumn<T>) => {
-    return column.configurable === undefined || column.configurable;
-};
-
 export const toggleSortDirection = <T>(column: DataColumn<T>): DataColumn<T> => {
     return column.sortDirection
         ? column.sortDirection === SortDirection.ASC
diff --git a/src/store/data-explorer/data-explorer-middleware-service.ts b/src/store/data-explorer/data-explorer-middleware-service.ts
index 4606307..e47824c 100644
--- a/src/store/data-explorer/data-explorer-middleware-service.ts
+++ b/src/store/data-explorer/data-explorer-middleware-service.ts
@@ -2,9 +2,9 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { getDataExplorer } from "./data-explorer-reducer";
-import { MiddlewareAPI } from "redux";
+import { Dispatch, MiddlewareAPI } from "redux";
 import { DataColumns } from "../../components/data-table/data-table";
+import { RootState } from "../store";
 
 export abstract class DataExplorerMiddlewareService {
     protected readonly id: string;
@@ -18,9 +18,5 @@ export abstract class DataExplorerMiddlewareService {
     }
 
     abstract getColumns(): DataColumns<any>;
-    abstract requestItems(api: MiddlewareAPI): void;
-
-    getDataExplorer(api: MiddlewareAPI) {
-        return getDataExplorer(api.getState().dataExplorer, this.id);
-    }
+    abstract requestItems(api: MiddlewareAPI<Dispatch, RootState>): void;
 }
diff --git a/src/store/data-explorer/data-explorer-middleware.test.ts b/src/store/data-explorer/data-explorer-middleware.test.ts
index 65ff8a5..637a0cc 100644
--- a/src/store/data-explorer/data-explorer-middleware.test.ts
+++ b/src/store/data-explorer/data-explorer-middleware.test.ts
@@ -17,6 +17,7 @@ describe("DataExplorerMiddleware", () => {
             columns: [{
                 name: "Column",
                 selected: true,
+                configurable: false,
                 render: jest.fn()
             }],
             requestItems: jest.fn(),
@@ -39,6 +40,7 @@ describe("DataExplorerMiddleware", () => {
             columns: [{
                 name: "Column",
                 selected: true,
+                configurable: false,
                 render: jest.fn()
             }],
             requestItems: jest.fn(),
@@ -64,6 +66,7 @@ describe("DataExplorerMiddleware", () => {
             columns: [{
                 name: "Column",
                 selected: true,
+                configurable: false,
                 render: jest.fn()
             }],
             requestItems: jest.fn(),
diff --git a/src/store/data-explorer/data-explorer-middleware.ts b/src/store/data-explorer/data-explorer-middleware.ts
index 71825e8..c4ea4e5 100644
--- a/src/store/data-explorer/data-explorer-middleware.ts
+++ b/src/store/data-explorer/data-explorer-middleware.ts
@@ -3,7 +3,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Middleware } from "../../../node_modules/redux";
+import { Middleware } from "redux";
 import { dataExplorerActions, bindDataExplorerActions } from "./data-explorer-action";
 import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service";
 
diff --git a/src/store/data-explorer/data-explorer-reducer.ts b/src/store/data-explorer/data-explorer-reducer.ts
index 02ebece..96586be 100644
--- a/src/store/data-explorer/data-explorer-reducer.ts
+++ b/src/store/data-explorer/data-explorer-reducer.ts
@@ -27,7 +27,7 @@ export const initialDataExplorer: DataExplorer = {
     searchValue: ""
 };
 
-export type DataExplorerState = Record<string, DataExplorer | undefined>;
+export type DataExplorerState = Record<string, DataExplorer>;
 
 export const dataExplorerReducer = (state: DataExplorerState = {}, action: DataExplorerAction) =>
     dataExplorerActions.match(action, {
diff --git a/src/store/favorite-panel/favorite-panel-middleware-service.ts b/src/store/favorite-panel/favorite-panel-middleware-service.ts
index dfbcfd2..7df86d9 100644
--- a/src/store/favorite-panel/favorite-panel-middleware-service.ts
+++ b/src/store/favorite-panel/favorite-panel-middleware-service.ts
@@ -14,7 +14,7 @@ import { FilterBuilder } from "../../common/api/filter-builder";
 import { LinkResource } from "../../models/link";
 import { checkPresenceInFavorites } from "../favorites/favorites-actions";
 import { favoritePanelActions } from "./favorite-panel-action";
-import { MiddlewareAPI } from "../../../node_modules/redux";
+import { Dispatch, MiddlewareAPI } from "redux";
 
 export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(id: string) {
@@ -25,11 +25,12 @@ export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareServic
         return columns;
     }
 
-    requestItems(api: MiddlewareAPI) {
-        const state = api.getState() as RootState;
-        const dataExplorer = this.getDataExplorer(api);
+    requestItems(api: MiddlewareAPI<Dispatch, RootState>) {
+        const dataExplorer = api.getState().dataExplorer[this.getId()];
         const columns = dataExplorer.columns as DataColumns<FavoritePanelItem, FavoritePanelFilter>;
-        const sortColumn = dataExplorer.columns.find(({ sortDirection }) => Boolean(sortDirection && sortDirection !== "none"));
+        const sortColumn = dataExplorer.columns.find(
+            ({ sortDirection }) => sortDirection !== undefined && sortDirection !== "none"
+        );
         const typeFilters = getColumnFilters(columns, FavoritePanelColumnNames.TYPE);
         const order = FavoriteOrderBuilder.create();
         if (typeFilters.length > 0) {
diff --git a/src/store/project-panel/project-panel-middleware-service.ts b/src/store/project-panel/project-panel-middleware-service.ts
index 95a548a..626b926 100644
--- a/src/store/project-panel/project-panel-middleware-service.ts
+++ b/src/store/project-panel/project-panel-middleware-service.ts
@@ -15,7 +15,7 @@ import { ProcessResource } from "../../models/process";
 import { GroupContentsResourcePrefix, GroupContentsResource } from "../../services/groups-service/groups-service";
 import { checkPresenceInFavorites } from "../favorites/favorites-actions";
 import { projectPanelActions } from "./project-panel-action";
-import { MiddlewareAPI } from "../../../node_modules/redux";
+import { Dispatch, MiddlewareAPI } from "redux";
 
 export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(id: string) {
@@ -26,9 +26,9 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService
         return columns;
     }
 
-    requestItems(api: MiddlewareAPI) {
-        const state = api.getState() as RootState;
-        const dataExplorer = this.getDataExplorer(api);
+    requestItems(api: MiddlewareAPI<Dispatch, RootState>) {
+        const state = api.getState();
+        const dataExplorer = state.dataExplorer[this.getId()];
         const columns = dataExplorer.columns as DataColumns<ProjectPanelItem, ProjectPanelFilter>;
         const typeFilters = getColumnFilters(columns, ProjectPanelColumnNames.TYPE);
         const statusFilters = getColumnFilters(columns, ProjectPanelColumnNames.STATUS);
diff --git a/src/views/favorite-panel/favorite-panel.tsx b/src/views/favorite-panel/favorite-panel.tsx
index 00985e8..92d8c39 100644
--- a/src/views/favorite-panel/favorite-panel.tsx
+++ b/src/views/favorite-panel/favorite-panel.tsx
@@ -48,6 +48,7 @@ export const columns: DataColumns<FavoritePanelItem, FavoritePanelFilter> = [
     {
         name: FavoritePanelColumnNames.NAME,
         selected: true,
+        configurable: true,
         sortDirection: SortDirection.ASC,
         render: renderName,
         width: "450px"
@@ -55,6 +56,7 @@ export const columns: DataColumns<FavoritePanelItem, FavoritePanelFilter> = [
     {
         name: "Status",
         selected: true,
+        configurable: true,
         filters: [
             {
                 name: ContainerRequestState.COMMITTED,
@@ -78,6 +80,7 @@ export const columns: DataColumns<FavoritePanelItem, FavoritePanelFilter> = [
     {
         name: FavoritePanelColumnNames.TYPE,
         selected: true,
+        configurable: true,
         filters: [
             {
                 name: resourceLabel(ResourceKind.COLLECTION),
@@ -101,18 +104,21 @@ export const columns: DataColumns<FavoritePanelItem, FavoritePanelFilter> = [
     {
         name: FavoritePanelColumnNames.OWNER,
         selected: true,
+        configurable: true,
         render: item => renderOwner(item.owner),
         width: "200px"
     },
     {
         name: FavoritePanelColumnNames.FILE_SIZE,
         selected: true,
+        configurable: true,
         render: item => renderFileSize(item.fileSize),
         width: "50px"
     },
     {
         name: FavoritePanelColumnNames.LAST_MODIFIED,
         selected: true,
+        configurable: true,
         sortDirection: SortDirection.NONE,
         render: item => renderDate(item.lastModified),
         width: "150px"
diff --git a/src/views/project-panel/project-panel.tsx b/src/views/project-panel/project-panel.tsx
index 13cc67e..d48890b 100644
--- a/src/views/project-panel/project-panel.tsx
+++ b/src/views/project-panel/project-panel.tsx
@@ -48,6 +48,7 @@ export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [
     {
         name: ProjectPanelColumnNames.NAME,
         selected: true,
+        configurable: true,
         sortDirection: SortDirection.ASC,
         render: renderName,
         width: "450px"
@@ -55,6 +56,7 @@ export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [
     {
         name: "Status",
         selected: true,
+        configurable: true,
         filters: [
             {
                 name: ContainerRequestState.COMMITTED,
@@ -78,6 +80,7 @@ export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [
     {
         name: ProjectPanelColumnNames.TYPE,
         selected: true,
+        configurable: true,
         filters: [
             {
                 name: resourceLabel(ResourceKind.COLLECTION),
@@ -101,18 +104,21 @@ export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [
     {
         name: ProjectPanelColumnNames.OWNER,
         selected: true,
+        configurable: true,
         render: item => renderOwner(item.owner),
         width: "200px"
     },
     {
         name: ProjectPanelColumnNames.FILE_SIZE,
         selected: true,
+        configurable: true,
         render: item => renderFileSize(item.fileSize),
         width: "50px"
     },
     {
         name: ProjectPanelColumnNames.LAST_MODIFIED,
         selected: true,
+        configurable: true,
         sortDirection: SortDirection.NONE,
         render: item => renderDate(item.lastModified),
         width: "150px"

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list