From 59357dd23a5970758a6ddf86c0d9753fda81e5c7 Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Wed, 13 Mar 2019 09:27:51 +0100
Subject: [PATCH] Tasklink fix

---
 entity/TaskLink_entity/TaskLink_entity.aod    |  9 ++++++--
 .../{code.js => valueProcess.js}              |  0
 .../entityfields/tasklinkid/valueProcess.js   |  7 +++++++
 .../object_rowid.displayvalue/expression.js   |  4 ++++
 entity/Task_entity/Task_entity.aod            |  5 +++--
 .../containername_param/valueProcess.js       |  5 +++++
 .../children/taskid_param/valueProcess.js     |  4 ++++
 .../recordcontainers/db/onDBDelete.js         |  9 ++++++++
 .../recordcontainers/db/onDBInsert.js         | 15 +++++++------
 .../_____LANGUAGE_EXTRA.aod                   |  8 ++++++-
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     |  2 +-
 neonView/TaskEdit_view/TaskEdit_view.aod      |  5 +++++
 .../TaskLinkMultiEdit_view.aod                | 21 +++++++++++++++++++
 process/Task_lib/process.js                   |  2 +-
 14 files changed, 81 insertions(+), 15 deletions(-)
 rename entity/TaskLink_entity/entityfields/objects/children/objecttype_param/{code.js => valueProcess.js} (100%)
 create mode 100644 entity/TaskLink_entity/entityfields/tasklinkid/valueProcess.js
 create mode 100644 entity/TaskLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
 create mode 100644 entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js
 create mode 100644 entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js
 create mode 100644 entity/Task_entity/recordcontainers/db/onDBDelete.js

diff --git a/entity/TaskLink_entity/TaskLink_entity.aod b/entity/TaskLink_entity/TaskLink_entity.aod
index 50aeb41fe5..1d0f0f2355 100644
--- a/entity/TaskLink_entity/TaskLink_entity.aod
+++ b/entity/TaskLink_entity/TaskLink_entity.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.0">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.1">
   <name>TaskLink_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>db</recordContainer>
@@ -9,6 +9,7 @@
     </entityProvider>
     <entityField>
       <name>TASKLINKID</name>
+      <valueProcess>%aditoprj%/entity/TaskLink_entity/entityfields/tasklinkid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>TASK_ID</name>
@@ -68,7 +69,7 @@
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
-          <code>%aditoprj%/entity/TaskLink_entity/entityfields/objects/children/objecttype_param/code.js</code>
+          <valueProcess>%aditoprj%/entity/TaskLink_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
@@ -105,6 +106,10 @@
           <name>TASKLINKID.value</name>
           <recordfield>TASKLINK.TASKLINKID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ROWID.displayValue</name>
+          <expression>%aditoprj%/entity/TaskLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/TaskLink_entity/entityfields/objects/children/objecttype_param/code.js b/entity/TaskLink_entity/entityfields/objects/children/objecttype_param/valueProcess.js
similarity index 100%
rename from entity/TaskLink_entity/entityfields/objects/children/objecttype_param/code.js
rename to entity/TaskLink_entity/entityfields/objects/children/objecttype_param/valueProcess.js
diff --git a/entity/TaskLink_entity/entityfields/tasklinkid/valueProcess.js b/entity/TaskLink_entity/entityfields/tasklinkid/valueProcess.js
new file mode 100644
index 0000000000..a2378ee42b
--- /dev/null
+++ b/entity/TaskLink_entity/entityfields/tasklinkid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/TaskLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js b/entity/TaskLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
new file mode 100644
index 0000000000..4ac0690f62
--- /dev/null
+++ b/entity/TaskLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getNameSubselectSql("OBJECT_TYPE", "OBJECT_ROWID"))
\ No newline at end of file
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index bd4fb80d8e..640e9c59c6 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -278,7 +278,7 @@
       <children>
         <entityParameter>
           <name>containerName_param</name>
-          <code>%aditoprj%/entity/Task_entity/entityfields/keywordprogress/children/containername_param/code.js</code>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -294,7 +294,7 @@
       <children>
         <entityParameter>
           <name>TaskId_param</name>
-          <code>%aditoprj%/entity/Task_entity/entityfields/links/children/taskid_param/code.js</code>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -305,6 +305,7 @@
       <alias>Data_alias</alias>
       <orderClauseProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBDelete>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
         <linkInformation>
           <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name>
diff --git a/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js b/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000..a9e216fdcc
--- /dev/null
+++ b/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.taskProgress());
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js b/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js
new file mode 100644
index 0000000000..190bc03275
--- /dev/null
+++ b/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.TASKID"));
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/onDBDelete.js b/entity/Task_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000..9cf43b7f16
--- /dev/null
+++ b/entity/Task_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.db");
+import("Sql_lib");
+
+var condition = SqlCondition.begin()
+    .andPrepareVars("TASKLINK.TASK_ID", "$field.TASKID");
+
+db.deleteData("TASKLINK", condition.build("1=2"));
+
diff --git a/entity/Task_entity/recordcontainers/db/onDBInsert.js b/entity/Task_entity/recordcontainers/db/onDBInsert.js
index 333d4d3ca9..832d42b125 100644
--- a/entity/Task_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Task_entity/recordcontainers/db/onDBInsert.js
@@ -3,11 +3,10 @@ import("system.util");
 import("system.db");
 
 if (vars.exists("$param.ObjectType_param") && vars.exists("$param.RowId_param") && vars.get("$param.ObjectType_param") && vars.get("$param.RowId_param"))
-    db.insertData("AB_OBJECTRELATION", ["AB_OBJECTRELATIONID", "OBJECT1_TYPE", "OBJECT1_ROWID", "OBJECT2_TYPE", "OBJECT2_ROWID"], null,
-                    [
-                        util.getNewUUID(),
-                        vars.get("$param.ObjectType_param"),
-                        vars.get("$param.RowId_param"),
-                        "Task",
-                        vars.get("$field.TASKID")
-                    ]);
\ No newline at end of file
+    db.insertData("TASKLINK", ["TASKLINKID", "OBJECT_TYPE", "OBJECT_ROWID", "TASK_ID"], null,
+        [
+            util.getNewUUID(),
+            vars.get("$param.ObjectType_param"),
+            vars.get("$param.RowId_param"),
+            vars.get("$field.TASKID")
+        ]);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index ffa69dc777..f977443797 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2556,6 +2556,12 @@
     <entry>
       <key>New attribute</key>
     </entry>
+    <entry>
+      <key>History</key>
+    </entry>
+    <entry>
+      <key>Progress</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
@@ -2574,4 +2580,4 @@ where AB_KEYWORD_ATTRIBUTE_ID in (&amp;apos;6f81d079-d404-4bda-a7c7-b830ed3d80d5
       </statements>
     </languageSql>
   </sqlModels>
-</language
+</language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index fb0c366351..abbf572093 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2585,4 +2585,4 @@
     </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
-</language
+</language>
diff --git a/neonView/TaskEdit_view/TaskEdit_view.aod b/neonView/TaskEdit_view/TaskEdit_view.aod
index 75107e82b5..b0a1d9bbfe 100644
--- a/neonView/TaskEdit_view/TaskEdit_view.aod
+++ b/neonView/TaskEdit_view/TaskEdit_view.aod
@@ -55,5 +55,10 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
+    <neonViewReference>
+      <name>ee35d86f-aef9-4ebd-b90a-d31b32cc3d5f</name>
+      <entityField>Links</entityField>
+      <view>TaskLinkMultiEdit_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod b/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
index 3a535fc78a..15b6f53016 100644
--- a/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
+++ b/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
@@ -2,4 +2,25 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
   <name>TaskLinkMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericMultipleViewTemplate>
+      <name>GenericMultiple</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>4f3bde0b-cdd7-46a3-b0fc-24eba3ff9b92</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ef83bb53-da75-498c-8ad5-4927c83243e4</name>
+          <entityField>OBJECT_ROWID</entityField>
+        </neonTableColumn>
+      </columns>
+    </genericMultipleViewTemplate>
+  </children>
 </neonView>
diff --git a/process/Task_lib/process.js b/process/Task_lib/process.js
index 8d3f2f2525..3cb13fda69 100644
--- a/process/Task_lib/process.js
+++ b/process/Task_lib/process.js
@@ -16,7 +16,7 @@ function TaskUtils () {}
 TaskUtils.createNewTask = function (pRowId)
 {
     var params = {};
-    params["ObjectId_param"] = ContextUtils.getCurrentContextId();
+    params["ObjectType_param"] = ContextUtils.getCurrentContextId();
     params["RowId_param"] = pRowId;
     neon.openContext("Task", null, null, neon.OPERATINGSTATE_NEW, params);
 }
\ No newline at end of file
-- 
GitLab