[ARVADOS-WORKBENCH2] created: 1.2.1-1079-g0ded4d4
Git user
git at public.curoverse.com
Thu Nov 29 08:40:55 EST 2018
at 0ded4d49712a782919828e3d6a2d258e71d3f8f3 (commit)
commit 0ded4d49712a782919828e3d6a2d258e71d3f8f3
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:37:32 2018 +0100
Extract StringInput's getValidation function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/string-input.tsx b/src/views/run-process-panel/inputs/string-input.tsx
index f6b50a7..7fc7431 100644
--- a/src/views/run-process-panel/inputs/string-input.tsx
+++ b/src/views/run-process-panel/inputs/string-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import { isRequiredInput, StringCommandInputParameter } from '~/models/workflow';
import { Field } from 'redux-form';
import { require } from '~/validators/require';
@@ -17,11 +18,14 @@ export const StringInput = ({ input }: StringInputProps) =>
name={input.id}
commandInput={input}
component={StringInputComponent}
- validate={[
- isRequiredInput(input)
- ? require
- : () => undefined,
- ]} />;
+ validate={getValidation(input)} />;
+
+const getValidation = memoize(
+ (input: StringCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? require
+ : () => undefined,
+ ]));
const StringInputComponent = (props: GenericInputProps) =>
<GenericInput
commit 3e2e65e95cf4070e4742ee96ea16cb6c5e841b7a
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:35:47 2018 +0100
Extract IntInput's getValidation function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/int-input.tsx b/src/views/run-process-panel/inputs/int-input.tsx
index cac8a27..32ebeb7 100644
--- a/src/views/run-process-panel/inputs/int-input.tsx
+++ b/src/views/run-process-panel/inputs/int-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import { IntCommandInputParameter, isRequiredInput } from '~/models/workflow';
import { Field } from 'redux-form';
import { isInteger } from '~/validators/is-integer';
@@ -19,16 +20,19 @@ export const IntInput = ({ input }: IntInputProps) =>
component={InputComponent}
parse={parse}
format={format}
- validate={[
- isRequiredInput(input)
- ? isInteger
- : () => undefined,
- ]} />;
+ validate={getValidation(input)} />;
const parse = (value: any) => parseInt(value, 10);
const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value);
+const getValidation = memoize(
+ (input: IntCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? isInteger
+ : () => undefined,
+ ]));
+
const InputComponent = (props: GenericInputProps) =>
<GenericInput
component={Input}
commit 598e2bcda179324f0457f6e15cdd2f2a8785374d
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:34:00 2018 +0100
Extract IntInput's format function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/int-input.tsx b/src/views/run-process-panel/inputs/int-input.tsx
index 6758bae..cac8a27 100644
--- a/src/views/run-process-panel/inputs/int-input.tsx
+++ b/src/views/run-process-panel/inputs/int-input.tsx
@@ -18,7 +18,7 @@ export const IntInput = ({ input }: IntInputProps) =>
commandInput={input}
component={InputComponent}
parse={parse}
- format={value => isNaN(value) ? '' : JSON.stringify(value)}
+ format={format}
validate={[
isRequiredInput(input)
? isInteger
@@ -27,6 +27,8 @@ export const IntInput = ({ input }: IntInputProps) =>
const parse = (value: any) => parseInt(value, 10);
+const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value);
+
const InputComponent = (props: GenericInputProps) =>
<GenericInput
component={Input}
commit fa9e1f065eefa7265879869e4b45eb76be64b4ce
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:33:00 2018 +0100
Extract IntInput's parse function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/int-input.tsx b/src/views/run-process-panel/inputs/int-input.tsx
index 413ee49..6758bae 100644
--- a/src/views/run-process-panel/inputs/int-input.tsx
+++ b/src/views/run-process-panel/inputs/int-input.tsx
@@ -17,7 +17,7 @@ export const IntInput = ({ input }: IntInputProps) =>
name={input.id}
commandInput={input}
component={InputComponent}
- parse={value => parseInt(value, 10)}
+ parse={parse}
format={value => isNaN(value) ? '' : JSON.stringify(value)}
validate={[
isRequiredInput(input)
@@ -25,6 +25,8 @@ export const IntInput = ({ input }: IntInputProps) =>
: () => undefined,
]} />;
+const parse = (value: any) => parseInt(value, 10);
+
const InputComponent = (props: GenericInputProps) =>
<GenericInput
component={Input}
commit 2759843b203ee1b3db4da0d2326319e072c3bf33
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:31:13 2018 +0100
Extract FloatInput's getValidation function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/float-input.tsx b/src/views/run-process-panel/inputs/float-input.tsx
index fae8f60..a5905dc 100644
--- a/src/views/run-process-panel/inputs/float-input.tsx
+++ b/src/views/run-process-panel/inputs/float-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import { FloatCommandInputParameter, isRequiredInput } from '~/models/workflow';
import { Field } from 'redux-form';
import { isNumber } from '~/validators/is-number';
@@ -18,13 +19,17 @@ export const FloatInput = ({ input }: FloatInputProps) =>
component={Input}
parse={parseFloat}
format={format}
- validate={[
- isRequiredInput(input)
- ? isNumber
- : () => undefined,]} />;
+ validate={getValidation(input)} />;
const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value);
+const getValidation = memoize(
+ (input: FloatCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? isNumber
+ : () => undefined,])
+);
+
const Input = (props: GenericInputProps) =>
<GenericInput
component={InputComponent}
commit a8187ba6c1780cef4de40729cbd3875a9d3dafc4
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:29:22 2018 +0100
Extract FloatInput's format function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/float-input.tsx b/src/views/run-process-panel/inputs/float-input.tsx
index 56a5801..fae8f60 100644
--- a/src/views/run-process-panel/inputs/float-input.tsx
+++ b/src/views/run-process-panel/inputs/float-input.tsx
@@ -17,12 +17,14 @@ export const FloatInput = ({ input }: FloatInputProps) =>
commandInput={input}
component={Input}
parse={parseFloat}
- format={value => isNaN(value) ? '' : JSON.stringify(value)}
+ format={format}
validate={[
isRequiredInput(input)
? isNumber
: () => undefined,]} />;
+const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value);
+
const Input = (props: GenericInputProps) =>
<GenericInput
component={InputComponent}
commit 793701b5251bea3670137b4a14a35bb537f40a82
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:27:04 2018 +0100
Clean up FileInputComponent's setFile args
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/file-input.tsx b/src/views/run-process-panel/inputs/file-input.tsx
index c135042..0611100 100644
--- a/src/views/run-process-panel/inputs/file-input.tsx
+++ b/src/views/run-process-panel/inputs/file-input.tsx
@@ -84,7 +84,7 @@ const FileInputComponent = connect()(
this.props.input.onChange(this.state.file);
}
- setFile = (event: React.MouseEvent<HTMLElement>, { data }: TreeItem<ProjectsTreePickerItem>, pickerId: string) => {
+ setFile = (_: {}, { data }: TreeItem<ProjectsTreePickerItem>) => {
if ('type' in data && data.type === CollectionFileType.FILE) {
this.setState({ file: data });
} else {
commit 36e62deaa887cea4bd475e222c37c941af70534c
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:25:22 2018 +0100
Extract FileInput's getValidation function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/file-input.tsx b/src/views/run-process-panel/inputs/file-input.tsx
index e5fa966..c135042 100644
--- a/src/views/run-process-panel/inputs/file-input.tsx
+++ b/src/views/run-process-panel/inputs/file-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import {
isRequiredInput,
FileCommandInputParameter,
@@ -30,11 +31,7 @@ export const FileInput = ({ input }: FileInputProps) =>
component={FileInputComponent}
format={format}
parse={parse}
- validate={[
- isRequiredInput(input)
- ? (file?: File) => file ? undefined : ERROR_MESSAGE
- : () => undefined,
- ]} />;
+ validate={getValidation(input)} />;
const format = (value?: File) => value ? value.basename : '';
@@ -44,6 +41,13 @@ const parse = (file: CollectionFile): File => ({
basename: file.name,
});
+const getValidation = memoize(
+ (input: FileCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? (file?: File) => file ? undefined : ERROR_MESSAGE
+ : () => undefined,
+ ]));
+
interface FileInputComponentState {
open: boolean;
file?: CollectionFile;
commit 89f5e163802e04dc6ebb84a390bbc5907486a718
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:22:51 2018 +0100
Extract FileInput's parse function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/file-input.tsx b/src/views/run-process-panel/inputs/file-input.tsx
index 0e56713..e5fa966 100644
--- a/src/views/run-process-panel/inputs/file-input.tsx
+++ b/src/views/run-process-panel/inputs/file-input.tsx
@@ -29,11 +29,7 @@ export const FileInput = ({ input }: FileInputProps) =>
commandInput={input}
component={FileInputComponent}
format={format}
- parse={(file: CollectionFile): File => ({
- class: CWLType.FILE,
- location: `keep:${file.id}`,
- basename: file.name,
- })}
+ parse={parse}
validate={[
isRequiredInput(input)
? (file?: File) => file ? undefined : ERROR_MESSAGE
@@ -42,6 +38,12 @@ export const FileInput = ({ input }: FileInputProps) =>
const format = (value?: File) => value ? value.basename : '';
+const parse = (file: CollectionFile): File => ({
+ class: CWLType.FILE,
+ location: `keep:${file.id}`,
+ basename: file.name,
+});
+
interface FileInputComponentState {
open: boolean;
file?: CollectionFile;
commit fc3f2ce8575095a33a3e62571c85cba6db7a6200
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:21:56 2018 +0100
Extract FileInput's format function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/file-input.tsx b/src/views/run-process-panel/inputs/file-input.tsx
index 7e0925e..0e56713 100644
--- a/src/views/run-process-panel/inputs/file-input.tsx
+++ b/src/views/run-process-panel/inputs/file-input.tsx
@@ -28,7 +28,7 @@ export const FileInput = ({ input }: FileInputProps) =>
name={input.id}
commandInput={input}
component={FileInputComponent}
- format={(value?: File) => value ? value.basename : ''}
+ format={format}
parse={(file: CollectionFile): File => ({
class: CWLType.FILE,
location: `keep:${file.id}`,
@@ -40,6 +40,7 @@ export const FileInput = ({ input }: FileInputProps) =>
: () => undefined,
]} />;
+const format = (value?: File) => value ? value.basename : '';
interface FileInputComponentState {
open: boolean;
commit 1e5b9cce5a4bb83fe958f1a0a1a47c6748b8ea86
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:19:03 2018 +0100
Clean up EnumInput's imports
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/enum-input.tsx b/src/views/run-process-panel/inputs/enum-input.tsx
index 9a22dbe..3b0289e 100644
--- a/src/views/run-process-panel/inputs/enum-input.tsx
+++ b/src/views/run-process-panel/inputs/enum-input.tsx
@@ -3,9 +3,9 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { EnumCommandInputParameter, CommandInputEnumSchema } from '~/models/workflow';
import { Field } from 'redux-form';
import { Select, MenuItem } from '@material-ui/core';
+import { EnumCommandInputParameter, CommandInputEnumSchema } from '~/models/workflow';
import { GenericInputProps, GenericInput } from './generic-input';
export interface EnumInputProps {
commit c09ad994a225b752e81acc4d956981f2239d5297
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:18:20 2018 +0100
Extract EnumInput's extractValue function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/enum-input.tsx b/src/views/run-process-panel/inputs/enum-input.tsx
index 86ff6fb..9a22dbe 100644
--- a/src/views/run-process-panel/inputs/enum-input.tsx
+++ b/src/views/run-process-panel/inputs/enum-input.tsx
@@ -30,8 +30,20 @@ const Input = (props: GenericInputProps) => {
onChange={props.input.onChange}
disabled={props.commandInput.disabled} >
{type.symbols.map(symbol =>
- <MenuItem key={symbol} value={symbol.split('/').pop()}>
- {symbol.split('/').pop()}
+ <MenuItem key={symbol} value={extractValue(symbol)}>
+ {extractValue(symbol)}
</MenuItem>)}
</Select>;
-};
\ No newline at end of file
+};
+
+/**
+ * Values in workflow definition have an absolute form, for example:
+ *
+ * ```#input_collector.cwl/enum_type/Pathway table```
+ *
+ * We want a value that is in form accepted by backend.
+ * According to the example above, the correct value is:
+ *
+ * ```Pathway table```
+ */
+const extractValue = (symbol: string) => symbol.split('/').pop();
commit 717210dfd80d0831c83c08086a3c27cace13ed18
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:07:56 2018 +0100
Clean up DirectoryInputComponent's setDirectory params
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index 878c92b..29ccd6e 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -86,7 +86,7 @@ const DirectoryInputComponent = connect()(
this.props.input.onChange(this.state.directory);
}
- setDirectory = (event: React.MouseEvent<HTMLElement>, { data }: TreeItem<ProjectsTreePickerItem>, pickerId: string) => {
+ setDirectory = (_: {}, { data }: TreeItem<ProjectsTreePickerItem>) => {
if ('kind' in data && data.kind === ResourceKind.COLLECTION) {
this.setState({ directory: data });
} else {
commit 135ec797465fc6052cb51ef00243d86f6d794659
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:06:40 2018 +0100
Clean up DirectoryInput's imports
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index 3833992..878c92b 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -3,24 +3,24 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { connect, DispatchProp } from 'react-redux';
import { memoize } from 'lodash/fp';
+import { Field } from 'redux-form';
+import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@material-ui/core';
import {
isRequiredInput,
DirectoryCommandInputParameter,
CWLType,
Directory
} from '~/models/workflow';
-import { Field } from 'redux-form';
-import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@material-ui/core';
import { GenericInputProps, GenericInput } from './generic-input';
import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
-import { connect, DispatchProp } from 'react-redux';
import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
import { TreeItem } from '~/components/tree/tree';
import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
import { CollectionResource } from '~/models/collection';
import { ResourceKind } from '~/models/resource';
-import { ERROR_MESSAGE } from '../../../validators/require';
+import { ERROR_MESSAGE } from '~/validators/require';
export interface DirectoryInputProps {
input: DirectoryCommandInputParameter;
commit 292980a1d4fb85d873effed62729dc014162c8c6
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 14:04:51 2018 +0100
Extract DirectoryInput's getValidation function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index 76863c6..3833992 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import {
isRequiredInput,
DirectoryCommandInputParameter,
@@ -31,11 +32,7 @@ export const DirectoryInput = ({ input }: DirectoryInputProps) =>
component={DirectoryInputComponent}
format={format}
parse={parse}
- validate={[
- isRequiredInput(input)
- ? (directory?: Directory) => directory ? undefined : ERROR_MESSAGE
- : () => undefined,
- ]} />;
+ validate={getValidation(input)} />;
const format = (value?: Directory) => value ? value.basename : '';
@@ -45,6 +42,13 @@ const parse = (directory: CollectionResource): Directory => ({
basename: directory.name,
});
+const getValidation = memoize(
+ (input: DirectoryCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? (directory?: Directory) => directory ? undefined : ERROR_MESSAGE
+ : () => undefined,
+ ])
+);
interface DirectoryInputComponentState {
open: boolean;
commit 2b86e5928fb3ebe3d32a7dceef56b3803958f1cb
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 13:54:56 2018 +0100
Extract DirectoryInput parse function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index 3bbb2b0..76863c6 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -30,11 +30,7 @@ export const DirectoryInput = ({ input }: DirectoryInputProps) =>
commandInput={input}
component={DirectoryInputComponent}
format={format}
- parse={(directory: CollectionResource): Directory => ({
- class: CWLType.DIRECTORY,
- location: `keep:${directory.portableDataHash}`,
- basename: directory.name,
- })}
+ parse={parse}
validate={[
isRequiredInput(input)
? (directory?: Directory) => directory ? undefined : ERROR_MESSAGE
@@ -43,6 +39,12 @@ export const DirectoryInput = ({ input }: DirectoryInputProps) =>
const format = (value?: Directory) => value ? value.basename : '';
+const parse = (directory: CollectionResource): Directory => ({
+ class: CWLType.DIRECTORY,
+ location: `keep:${directory.portableDataHash}`,
+ basename: directory.name,
+});
+
interface DirectoryInputComponentState {
open: boolean;
commit c26c98ff85da6a9ed2b946eae1d3484a3056bd10
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 13:54:01 2018 +0100
Extract DirectoryInput format function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index aa25fef..3bbb2b0 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -29,7 +29,7 @@ export const DirectoryInput = ({ input }: DirectoryInputProps) =>
name={input.id}
commandInput={input}
component={DirectoryInputComponent}
- format={(value?: Directory) => value ? value.basename : ''}
+ format={format}
parse={(directory: CollectionResource): Directory => ({
class: CWLType.DIRECTORY,
location: `keep:${directory.portableDataHash}`,
@@ -41,6 +41,8 @@ export const DirectoryInput = ({ input }: DirectoryInputProps) =>
: () => undefined,
]} />;
+const format = (value?: Directory) => value ? value.basename : '';
+
interface DirectoryInputComponentState {
open: boolean;
commit e80358167d498a3601c10b03a497622dcdf25167
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 13:51:03 2018 +0100
Simplify BooleanInput's code
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/boolean-input.tsx b/src/views/run-process-panel/inputs/boolean-input.tsx
index 04d702f..6a214e9 100644
--- a/src/views/run-process-panel/inputs/boolean-input.tsx
+++ b/src/views/run-process-panel/inputs/boolean-input.tsx
@@ -27,12 +27,12 @@ const BooleanInputComponent = (props: GenericInputProps) =>
component={Input}
{...props} />;
-const Input = (props: GenericInputProps) =>
+const Input = ({ input, commandInput }: GenericInputProps) =>
<Switch
color='primary'
- checked={props.input.value}
- onChange={handleChange(props.input.onChange, props.input.value)}
- disabled={props.commandInput.disabled} />;
+ checked={input.value}
+ onChange={handleChange(input.onChange, input.value)}
+ disabled={commandInput.disabled} />;
const handleChange = memoize(
(onChange: (value: string) => void, value: string) => () => onChange(value)
commit e3232103918da984d2d8198a08abe389af15aeb1
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 13:49:57 2018 +0100
Extract BooleanInput's change handler
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/boolean-input.tsx b/src/views/run-process-panel/inputs/boolean-input.tsx
index d3b9366..04d702f 100644
--- a/src/views/run-process-panel/inputs/boolean-input.tsx
+++ b/src/views/run-process-panel/inputs/boolean-input.tsx
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
+import { memoize } from 'lodash/fp';
import { BooleanCommandInputParameter } from '~/models/workflow';
import { Field } from 'redux-form';
import { Switch } from '@material-ui/core';
@@ -30,5 +31,9 @@ const Input = (props: GenericInputProps) =>
<Switch
color='primary'
checked={props.input.value}
- onChange={() => props.input.onChange(props.input.value)}
- disabled={props.commandInput.disabled} />;
\ No newline at end of file
+ onChange={handleChange(props.input.onChange, props.input.value)}
+ disabled={props.commandInput.disabled} />;
+
+const handleChange = memoize(
+ (onChange: (value: string) => void, value: string) => () => onChange(value)
+);
commit ce23dccaf88e67b279c17ab2ce744f54536972f9
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Nov 29 13:44:13 2018 +0100
Extract BooleanInput normalize function
Feature #14524
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views/run-process-panel/inputs/boolean-input.tsx b/src/views/run-process-panel/inputs/boolean-input.tsx
index 5da5474..d3b9366 100644
--- a/src/views/run-process-panel/inputs/boolean-input.tsx
+++ b/src/views/run-process-panel/inputs/boolean-input.tsx
@@ -16,9 +16,11 @@ export const BooleanInput = ({ input }: BooleanInputProps) =>
name={input.id}
commandInput={input}
component={BooleanInputComponent}
- normalize={(value, prevValue) => !prevValue}
+ normalize={normalize}
/>;
+const normalize = (_: any, prevValue: boolean) => !prevValue;
+
const BooleanInputComponent = (props: GenericInputProps) =>
<GenericInput
component={Input}
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list