From a27c4d05c328c414b3be8ab9710ac2e4d62e3376 Mon Sep 17 00:00:00 2001
From: Markus Escher <m.escher@adito.de>
Date: Thu, 10 Jan 2019 12:21:42 +0100
Subject: [PATCH] change $image to $context

---
 .../recordcontainers/jditorc/onInsert.js      |  4 ++--
 .../recordcontainers/jditorc/onUpdate.js      |  4 ++--
 .../entityfields/image/onValueChange.js       | 11 ++--------
 .../recordcontainers/db/onDBUpdate.js         | 22 +++++--------------
 process/Entity_lib/process.js                 |  6 ++---
 5 files changed, 15 insertions(+), 32 deletions(-)

diff --git a/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js b/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
index a5cd4a7eeb..af2c2302ef 100644
--- a/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
+++ b/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
@@ -33,7 +33,7 @@ if (vars.get("$field.REMINDER") != undefined && vars.get("$field.REMINDER") != "
     event[calendars.REMINDER_DURATION] = vars.get("$field.REMINDER");
 }
 event[calendars.ID] = calendars.insert([event])[0];
-vars.set("$image.editmode", calendars.MODE_UPDATE);
+vars.set("$context.editmode", calendars.MODE_UPDATE);
 ok = true;
 
 
@@ -42,7 +42,7 @@ ok = true;
 function getReadOnlyUser()
 {
     var writeable = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE);	
-    var affectedusers = vars.get("$image.affectedusers");
+    var affectedusers = vars.get("$context.affectedusers");
     var readonly = new Array();
 
     for ( i = 0; i < affectedusers.length; i++)
diff --git a/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js b/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
index d58c694cc4..ca56d2534e 100644
--- a/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
+++ b/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
@@ -54,7 +54,7 @@ if(vars.exists("$param.entry"))
 // Liefert die AffectedUsers
 function getAffectedUsers( pEvent )
 {
-        var affectedusers = vars.get("$image.affectedusers");   
+        var affectedusers = vars.get("$context.affectedusers");   
         var attendess = pEvent[calendars.ATTENDEES]
         var calendarusers = [];
         for ( var i = 0; i < affectedusers.length; i++)   
@@ -88,7 +88,7 @@ function getAffectedUsers( pEvent )
 function getReadOnlyUser()
 {
     var writeable = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE);	
-    var affectedusers = vars.get("$image.affectedusers");
+    var affectedusers = vars.get("$context.affectedusers");
     var readonly = new Array();
 
     for ( i = 0; i < affectedusers.length; i++)
diff --git a/entity/Product_entity/entityfields/image/onValueChange.js b/entity/Product_entity/entityfields/image/onValueChange.js
index 147134e54c..4997061690 100644
--- a/entity/Product_entity/entityfields/image/onValueChange.js
+++ b/entity/Product_entity/entityfields/image/onValueChange.js
@@ -1,12 +1,5 @@
 import("system.vars");
+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
-var newImage = vars.get("$field.IMAGE");
-if (newImage)
-{
-    vars.set("$image.changedImage", newImage);
-}
-else
-{
-    vars.set("$image.changedImage", "deleted");
-}
\ No newline at end of file
+FieldChanges.setChange("$field.IMAGE");
\ No newline at end of file
diff --git a/entity/Product_entity/recordcontainers/db/onDBUpdate.js b/entity/Product_entity/recordcontainers/db/onDBUpdate.js
index 2c9deb924d..0c6ec72c75 100644
--- a/entity/Product_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Product_entity/recordcontainers/db/onDBUpdate.js
@@ -1,21 +1,11 @@
 import("system.vars");
 import("Product_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")
-        {
-            ProductUtils.setImage(vars.get("$field.PRODUCTID"), imageData);
-        }
-        else
-        {
-            ProductUtils.removeImage(vars.get("$field.PRODUCTID"));
-        }
-    }
+FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function(state, value){
+    if (state == FieldChanges.STATE_CHANGED())
+        ProductUtils.setImage(vars.get("$field.PRODUCTID"), value);
+    else
+        ProductUtils.removeImage(vars.get("$field.PRODUCTID"));
 }
-
-vars.set("$image.changedImage", false);
\ No newline at end of file
diff --git a/process/Entity_lib/process.js b/process/Entity_lib/process.js
index f4f63e47f8..17fac1f11a 100644
--- a/process/Entity_lib/process.js
+++ b/process/Entity_lib/process.js
@@ -138,9 +138,9 @@ FieldChanges.setChange = function(pFieldName)
  */
 FieldChanges._getStorage = function()
 {
-    if (!vars.exists("$image.FieldChanges"))
+    if (!vars.exists("$context.FieldChanges"))
         return {};
-    return vars.get("$image.FieldChanges");
+    return vars.get("$context.FieldChanges");
 };
 
 /**
@@ -149,5 +149,5 @@ FieldChanges._getStorage = function()
  */
 FieldChanges._setStorage = function(pAllChanges)
 {
-    return vars.set("$image.FieldChanges", pAllChanges);
+    return vars.set("$context.FieldChanges", pAllChanges);
 };
\ No newline at end of file
-- 
GitLab