[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