From 72a619466344ea0f0109300658aeb503f78180db Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Thu, 20 Dec 2018 10:34:34 +0100
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1029627][Preview
 Kontakt: Standard-Kommunikationsadresse]

---
 entity/Pers_entity/Pers_entity.aod            |  2 ++
 .../entityfields/image/onValueChange.js       | 12 ++-----
 .../standard_email_comm/onValueChange.js      |  4 +++
 .../standard_phone_comm/onValueChange.js      |  4 +++
 .../recordcontainers/db/onDBUpdate.js         | 35 ++++++++++---------
 5 files changed, 30 insertions(+), 27 deletions(-)
 create mode 100644 entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js
 create mode 100644 entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js

diff --git a/entity/Pers_entity/Pers_entity.aod b/entity/Pers_entity/Pers_entity.aod
index 0dd258c28f..fff3b24f67 100644
--- a/entity/Pers_entity/Pers_entity.aod
+++ b/entity/Pers_entity/Pers_entity.aod
@@ -416,11 +416,13 @@
       <name>STANDARD_EMAIL_COMM</name>
       <title>E-Mail</title>
       <outgoingField>PersCommEmail_dfo</outgoingField>
+      <onValueChange>%aditoprj%/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js</onValueChange>
     </entityField>
     <entityField>
       <name>STANDARD_PHONE_COMM</name>
       <title>Phone</title>
       <outgoingField>PersCommPhone_dfo</outgoingField>
+      <onValueChange>%aditoprj%/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js</onValueChange>
     </entityField>
     <entityOutgoingField>
       <name>PersCommPhone_dfo</name>
diff --git a/entity/Pers_entity/entityfields/image/onValueChange.js b/entity/Pers_entity/entityfields/image/onValueChange.js
index 368310478f..f7fffb124f 100644
--- a/entity/Pers_entity/entityfields/image/onValueChange.js
+++ b/entity/Pers_entity/entityfields/image/onValueChange.js
@@ -1,12 +1,4 @@
-import("system.vars");
-import("system.neon");
+import("Entity_lib");
 
 // TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
-if (vars.get("$field.IMAGE"))
-{
-    vars.set("$image.changedImage", true);
-}
-else
-{
-    vars.set("$image.changedImage", "deleted");
-}
+FieldChanges.setChange("$field.IMAGE");
\ No newline at end of file
diff --git a/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js b/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js
new file mode 100644
index 0000000000..4572302a6f
--- /dev/null
+++ b/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js
@@ -0,0 +1,4 @@
+import("Entity_lib");
+
+// TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
+FieldChanges.setChange("$field.STANDARD_EMAIL_COMM");
\ No newline at end of file
diff --git a/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js b/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js
new file mode 100644
index 0000000000..fc6615da8d
--- /dev/null
+++ b/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js
@@ -0,0 +1,4 @@
+import("Entity_lib");
+
+// TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
+FieldChanges.setChange("$field.STANDARD_PHONE_COMM");
\ No newline at end of file
diff --git a/entity/Pers_entity/recordcontainers/db/onDBUpdate.js b/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
index e1ed5102d9..58697e7bda 100644
--- a/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
@@ -1,21 +1,22 @@
 import("system.vars");
-import("Pers_lib");
+import("Org_lib");
+import("Comm_lib");
+import("Entity_lib");
 
 // TODO: this is a workaround for missing possibility to react on changes of fields not connected to record Contqainer
-if (vars.exists("$image.changedImage"))
-{
-    if (vars.get("$image.changedImage"))
-    {
-        var imageData = vars.getString("$field.IMAGE");
-        if (vars.get("$image.changedImage") != "deleted")
-        {
-            PersUtils.setImage(vars.get("$field.PERSID"), imageData);
-        }
-        else
-        {
-            PersUtils.removeImage(vars.get("$field.PERSID"));
-        }
-    }
-}
+FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function(state, value){
+    if (state == FieldChanges.STATE_CHANGED())
+        PersUtils.setImage(vars.get("$field.PERSID"), value);
+    else
+        PersUtils.removeImage(vars.get("$field.PERSID"));
+});
 
-vars.set("$image.changedImage", false);
+
+var uid = vars.get("$sys.uid");
+FieldChanges.assimilateChangeAndDispose("$field.STANDARD_EMAIL_COMM", function(state, value){
+    CommUtil.setStandardMail(uid, value);
+});
+
+FieldChanges.assimilateChangeAndDispose("$field.STANDARD_PHONE_COMM", function(state, value){
+    CommUtil.setStandardPhone(uid, value);
+});
-- 
GitLab