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