From bce9f26389c5e37e77cb039ab89f57925e7621d3 Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Fri, 27 Sep 2019 12:29:18 +0000
Subject: [PATCH] QuickEntry

(cherry picked from commit caac232e4ebc0b599fc0cfc6e072fdce9851d18e)
---
 .../_____SYSTEM_APPLICATION_NEON.aod          |  6 ++---
 entity/Activity_entity/Activity_entity.aod    |  5 ++++
 .../recordcontainers/db/onDBInsert.js         | 11 +++++++++
 .../recordcontainers/db/conditionProcess.js   |  3 +--
 .../QuickEntry_entity/QuickEntry_entity.aod   | 12 ++++++----
 .../insertlinks_param/valueProcess.js         | 12 ++++++++++
 neonContext/QuickEntry/QuickEntry.aod         |  5 ----
 .../QuickEntryFilter_view.aod                 | 22 -----------------
 process/ActivityTask_lib/process.js           | 24 +++++++++++++++++++
 9 files changed, 64 insertions(+), 36 deletions(-)
 create mode 100644 entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
 delete mode 100644 neonView/QuickEntryFilter_view/QuickEntryFilter_view.aod

diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index 6cfced349d..9c5f7d69e6 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -35,13 +35,13 @@
                 <kind v="10077" />
               </entityNode>
               <entityNode>
-                <name>QuickEntry</name>
+                <name>Task</name>
                 <kind v="10077" />
-                <title></title>
               </entityNode>
               <entityNode>
-                <name>Task</name>
+                <name>QuickEntry</name>
                 <kind v="10077" />
+                <title></title>
               </entityNode>
             </childNodes>
           </entityNode>
diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index 8d6f9bcd16..f3d45f150a 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -558,6 +558,11 @@
       <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/bindata/stateProcess.js</stateProcess>
       <onValueChange>%aditoprj%/entity/Activity_entity/entityfields/bindata/onValueChange.js</onValueChange>
     </entityField>
+    <entityParameter>
+      <name>InsertLinks_param</name>
+      <expose v="true" />
+      <description>Links that will be inserted, required in QuickEntry</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Activity_entity/recordcontainers/db/onDBInsert.js b/entity/Activity_entity/recordcontainers/db/onDBInsert.js
index 054415bffa..abe4a1bcfa 100644
--- a/entity/Activity_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Activity_entity/recordcontainers/db/onDBInsert.js
@@ -20,3 +20,14 @@ else
 }
 if (documents)
     ActivityUtils.insertDocuments(vars.get("$local.uid"), documents);
+
+if (vars.exists("$param.InsertLinks_param") && vars.get("$param.InsertLinks_param"))
+{
+    var activityId = vars.get("$local.uid");
+    var insertLinks = vars.get("$param.InsertLinks_param");
+    insertLinks = JSON.parse(insertLinks);
+    insertLinks.forEach(function ([objectType, rowId])
+    {
+        ActivityUtils.insertLink(activityId, objectType, rowId);
+    });
+}
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/conditionProcess.js b/entity/Person_entity/recordcontainers/db/conditionProcess.js
index e96a8aa3f5..15b9975dc3 100644
--- a/entity/Person_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Person_entity/recordcontainers/db/conditionProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.db");
 import("system.result");
@@ -13,6 +12,6 @@ if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedC
     var excludedContacts = JSON.parse(vars.getString("$param.ExcludedContactIds_param"));
     cond.andIn("CONTACT.CONTACTID", excludedContacts, undefined, true);
 }
-logging.log(cond.translate("1=1"))
+
 //TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
 result.string(cond.translate("1 = 1"));
\ No newline at end of file
diff --git a/entity/QuickEntry_entity/QuickEntry_entity.aod b/entity/QuickEntry_entity/QuickEntry_entity.aod
index 5312724d1b..877e8dd3ce 100644
--- a/entity/QuickEntry_entity/QuickEntry_entity.aod
+++ b/entity/QuickEntry_entity/QuickEntry_entity.aod
@@ -107,16 +107,20 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
+          <name>Direction_param</name>
+          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/direction_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>InsertLinks_param</name>
+          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
           <name>RowId_param</name>
           <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
-          <name>Direction_param</name>
-          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/direction_param/valueProcess.js</valueProcess>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
new file mode 100644
index 0000000000..532faa2466
--- /dev/null
+++ b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
@@ -0,0 +1,12 @@
+import("system.vars");
+import("system.result");
+
+var links = [
+    ["Organisation", vars.get("$field.UID")]
+];
+//var contactLinks = vars.get("$field.Contacts.insertedRows").map(function (row)
+//{
+//    return ["Person", row["#UID"]];
+//});
+
+result.string(JSON.stringify(links.concat(contactLinks)));
\ No newline at end of file
diff --git a/neonContext/QuickEntry/QuickEntry.aod b/neonContext/QuickEntry/QuickEntry.aod
index a327088187..32f0470491 100644
--- a/neonContext/QuickEntry/QuickEntry.aod
+++ b/neonContext/QuickEntry/QuickEntry.aod
@@ -3,7 +3,6 @@
   <name>QuickEntry</name>
   <title>Quick entry</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterview>QuickEntryFilter_view</filterview>
   <editview>QuickEntryEdit_view</editview>
   <entity>QuickEntry_entity</entity>
   <references>
@@ -11,9 +10,5 @@
       <name>43a3acbb-82a7-4d86-88f9-0e4265e4898d</name>
       <view>QuickEntryEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>157df225-0a5b-4a54-99bf-29a8c169b8ce</name>
-      <view>QuickEntryFilter_view</view>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/QuickEntryFilter_view/QuickEntryFilter_view.aod b/neonView/QuickEntryFilter_view/QuickEntryFilter_view.aod
deleted file mode 100644
index 96008011a3..0000000000
--- a/neonView/QuickEntryFilter_view/QuickEntryFilter_view.aod
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2">
-  <name>QuickEntryFilter_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <tableViewTemplate>
-      <name>Table</name>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>6732391d-7299-4e26-bde0-6be3c5a30916</name>
-          <entityField>UID</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
-  </children>
-</neonView>
diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js
index ff4762bb20..1f427eaa2d 100644
--- a/process/ActivityTask_lib/process.js
+++ b/process/ActivityTask_lib/process.js
@@ -202,6 +202,30 @@ ActivityUtils.hasActivities = function (pRowId, pObjectType)
     return true;
 }
 
+/**
+ * creates links for an activity
+ */
+ActivityUtils.insertLink = function (pActivityId, pObjectType, pRowId)
+{
+    var linkCols = [
+        "ACTIVITYLINKID",
+        "ACTIVITY_ID",
+        "OBJECT_ROWID",
+        "OBJECT_TYPE",
+        "USER_NEW",
+        "DATE_NEW"
+    ];
+    var linkVals = [
+        util.getNewUUID(),
+        pActivityId,
+        pRowId,
+        pObjectType,
+        vars.get("$sys.user"),
+        vars.get("$sys.date")
+    ];
+    db.insertData("ACTIVITYLINK", linkCols, null, linkVals);
+}
+
 /**
  * Methods used by for tasks.
  * Do not create an instance of this!
-- 
GitLab