From 7acff761e149838ed127ef105a508a076129f7a3 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Sun, 22 Dec 2019 15:42:48 +0100 Subject: [PATCH] SSDM-7583 : ObjectTypeForm - improve a logic for showing/hiding 'Initial value' field (still requires refactor as it is duplicated in two places) --- .../objectType/ObjectTypeHandlerValidate.js | 16 +++++++++++---- .../ObjectTypeParametersProperty.jsx | 20 +++++++++++++------ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeHandlerValidate.js b/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeHandlerValidate.js index 64c588ec45a..4a2ad1c4172 100644 --- a/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeHandlerValidate.js +++ b/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeHandlerValidate.js @@ -145,10 +145,18 @@ export default class ObjectTypeHandlerValidate { ) } - const wasMandatory = property.original ? property.original.mandatory : false - const isMandatory = property.mandatory - - if (property.usages > 0 && !wasMandatory && isMandatory) { + const typeIsUsed = type.usages > 0 + const propertyIsNew = !property.original + const propertyIsMandatory = property.mandatory + const propertyWasMandatory = property.original + ? property.original.mandatory + : false + + if ( + typeIsUsed && + propertyIsMandatory && + (propertyIsNew || !propertyWasMandatory) + ) { this.validateNotEmpty( 'Initial Value', 'initialValueForExistingEntities', diff --git a/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeParametersProperty.jsx b/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeParametersProperty.jsx index 7aae1e80048..6d6a6ad7f86 100644 --- a/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeParametersProperty.jsx +++ b/openbis_ng_ui/src/js/components/types/objectType/ObjectTypeParametersProperty.jsx @@ -468,12 +468,20 @@ class ObjectTypeParametersProperty extends React.PureComponent { } renderInitialValue(property) { - const { classes } = this.props - - const wasMandatory = property.original ? property.original.mandatory : false - const isMandatory = property.mandatory - - if (property.usages > 0 && !wasMandatory && isMandatory) { + const { classes, type } = this.props + + const typeIsUsed = type.usages > 0 + const propertyIsNew = !property.original + const propertyIsMandatory = property.mandatory + const propertyWasMandatory = property.original + ? property.original.mandatory + : false + + if ( + typeIsUsed && + propertyIsMandatory && + (propertyIsNew || !propertyWasMandatory) + ) { return ( <div className={classes.field}> <TextField -- GitLab