[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