From 29d35f8d5e2c9ebf63be90e5d99aa2b8c28a89e8 Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Mon, 20 Mar 2023 09:05:57 +0100
Subject: [PATCH] SSDM-13287 : cannot add terms to internal vocabularies in new
 admin UI

---
 .../src/js/components/common/form/FormUtil.js | 23 ++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/ui-admin/src/js/components/common/form/FormUtil.js b/ui-admin/src/js/components/common/form/FormUtil.js
index bfe7a21a205..f14eb1c91cf 100644
--- a/ui-admin/src/js/components/common/form/FormUtil.js
+++ b/ui-admin/src/js/components/common/form/FormUtil.js
@@ -45,10 +45,27 @@ class FormUtil {
     }
   }
 
+  getFieldValue(object, path) {
+    const field = !_.isNil(object) ? _.get(object, path, null) : null
+
+    if (!_.isNil(field)) {
+      const value = field.value
+      if (_.isNil(value)) {
+        return null
+      } else if (_.isString(value) && _.isEmpty(value.trim())) {
+        return null
+      } else {
+        return value
+      }
+    } else {
+      return null
+    }
+  }
+
   hasFieldChanged(currentObject, originalObject, path) {
-    const currentValue = _.get(currentObject, path)
-    const originalValue = originalObject ? _.get(originalObject, path) : null
-    return originalValue.value !== currentValue.value
+    const currentValue = this.getFieldValue(currentObject, path)
+    const originalValue = this.getFieldValue(originalObject, path)
+    return originalValue !== currentValue
   }
 
   haveFieldsChanged(currentObject, originalObject, paths) {
-- 
GitLab