X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/780e83dab0e48e6fbcd156d55c36122390b4f258..fe41be6c6bcc21fc0c7c6450485a1d1f7955ebe5:/src/views/process-panel/process-io-card.tsx
diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index 90427659..4f93f48c 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -34,7 +34,8 @@ import {
ImageOffIcon,
OutputIcon,
MaximizeIcon,
- UnMaximizeIcon
+ UnMaximizeIcon,
+ InfoIcon
} from 'components/icon/icon';
import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view';
import {
@@ -484,37 +485,33 @@ export const getIOParamDisplayValue = (auth: AuthState, input: CommandInputParam
switch (true) {
case isPrimitiveOfType(input, CWLType.BOOLEAN):
const boolValue = (input as BooleanCommandInputParameter).value;
-
return boolValue !== undefined &&
!(Array.isArray(boolValue) && boolValue.length === 0) ?
- [{display:
{String(boolValue)}
}] :
+ [{display: renderPrimitiveValue(boolValue, false) }] :
[{display: }];
case isPrimitiveOfType(input, CWLType.INT):
case isPrimitiveOfType(input, CWLType.LONG):
const intValue = (input as IntCommandInputParameter).value;
-
return intValue !== undefined &&
// Missing values are empty array
!(Array.isArray(intValue) && intValue.length === 0) ?
- [{display: {String(intValue)}
}]
+ [{display: renderPrimitiveValue(intValue, false) }]
: [{display: }];
case isPrimitiveOfType(input, CWLType.FLOAT):
case isPrimitiveOfType(input, CWLType.DOUBLE):
const floatValue = (input as FloatCommandInputParameter).value;
-
return floatValue !== undefined &&
!(Array.isArray(floatValue) && floatValue.length === 0) ?
- [{display: {String(floatValue)}
}]:
+ [{display: renderPrimitiveValue(floatValue, false) }]:
[{display: }];
case isPrimitiveOfType(input, CWLType.STRING):
const stringValue = (input as StringCommandInputParameter).value || undefined;
-
return stringValue !== undefined &&
!(Array.isArray(stringValue) && stringValue.length === 0) ?
- [{display: {stringValue}
}] :
+ [{display: renderPrimitiveValue(stringValue, false) }] :
[{display: }];
case isPrimitiveOfType(input, CWLType.FILE):
@@ -526,14 +523,12 @@ export const getIOParamDisplayValue = (auth: AuthState, input: CommandInputParam
...secondaryFiles
];
const mainFilePdhUrl = mainFile ? getResourcePdhUrl(mainFile, pdh) : "";
-
return files.length ?
files.map((file, i) => fileToProcessIOValue(file, (i > 0), auth, pdh, (i > 0 ? mainFilePdhUrl : ""))) :
[{display: }];
case isPrimitiveOfType(input, CWLType.DIRECTORY):
const directory = (input as DirectoryCommandInputParameter).value;
-
return directory !== undefined &&
!(Array.isArray(directory) && directory.length === 0) ?
[directoryToProcessIOValue(directory, auth, pdh)] :
@@ -543,31 +538,28 @@ export const getIOParamDisplayValue = (auth: AuthState, input: CommandInputParam
!(input.type instanceof Array) &&
input.type.type === 'enum':
const enumValue = (input as EnumCommandInputParameter).value;
-
- return enumValue !== undefined ?
- [{ display: {(input as EnumCommandInputParameter).value || ''}
}] :
+ return enumValue !== undefined && enumValue ?
+ [{ display: {enumValue}
}] :
[{display: }];
case isArrayOfType(input, CWLType.STRING):
const strArray = (input as StringArrayCommandInputParameter).value || [];
return strArray.length ?
- [{ display: <>{((input as StringArrayCommandInputParameter).value || []).map((val) => )}> }] :
+ [{ display: <>{strArray.map((val) => renderPrimitiveValue(val, true))}> }] :
[{display: }];
case isArrayOfType(input, CWLType.INT):
case isArrayOfType(input, CWLType.LONG):
const intArray = (input as IntArrayCommandInputParameter).value || [];
-
return intArray.length ?
- [{ display: <>{((input as IntArrayCommandInputParameter).value || []).map((val) => )}> }] :
+ [{ display: <>{intArray.map((val) => renderPrimitiveValue(val, true))}> }] :
[{display: }];
case isArrayOfType(input, CWLType.FLOAT):
case isArrayOfType(input, CWLType.DOUBLE):
const floatArray = (input as FloatArrayCommandInputParameter).value || [];
-
return floatArray.length ?
- [{ display: <>{floatArray.map((val) => )}> }] :
+ [{ display: <>{floatArray.map((val) => renderPrimitiveValue(val, true))}> }] :
[{display: }];
case isArrayOfType(input, CWLType.FILE):
@@ -591,13 +583,21 @@ export const getIOParamDisplayValue = (auth: AuthState, input: CommandInputParam
case isArrayOfType(input, CWLType.DIRECTORY):
const directories = (input as DirectoryArrayCommandInputParameter).value || [];
-
return directories.length ?
directories.map(directory => directoryToProcessIOValue(directory, auth, pdh)) :
[{display: }];
default:
- return [];
+ return [{display: }];
+ }
+};
+
+const renderPrimitiveValue = (value: any, asChip: boolean) => {
+ const isObject = typeof value === 'object';
+ if (!isObject) {
+ return asChip ? : {String(value)}
;
+ } else {
+ return asChip ? : ;
}
};
@@ -668,6 +668,8 @@ const normalizeDirectoryLocation = (directory: Directory): Directory => {
};
const directoryToProcessIOValue = (directory: Directory, auth: AuthState, pdh?: string): ProcessIOValue => {
+ if (isExternalValue(directory)) {return {display: }}
+
const normalizedDirectory = normalizeDirectoryLocation(directory);
return {
display: ,
@@ -676,6 +678,8 @@ const directoryToProcessIOValue = (directory: Directory, auth: AuthState, pdh?:
};
const fileToProcessIOValue = (file: File, secondary: boolean, auth: AuthState, pdh: string | undefined, mainFilePdh: string): ProcessIOValue => {
+ if (isExternalValue(file)) {return {display: }}
+
const resourcePdh = getResourcePdhUrl(file, pdh);
return {
display: ,
@@ -685,10 +689,22 @@ const fileToProcessIOValue = (file: File, secondary: boolean, auth: AuthState, p
}
};
+const isExternalValue = (val: any) =>
+ Object.keys(val).includes('$import') ||
+ Object.keys(val).includes('$include')
+
const EmptyValue = withStyles(styles)(
({classes}: WithStyles) => No value
);
+const UnsupportedValue = withStyles(styles)(
+ ({classes}: WithStyles) => Cannot display value
+);
+
+const UnsupportedValueChip = withStyles(styles)(
+ ({classes}: WithStyles) => } label={"Cannot display value"} />
+);
+
const ImagePlaceholder = withStyles(styles)(
({classes}: WithStyles) =>
);