From 3b646d7fc237257b4674b97ed9e8ac576744cea6 Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Wed, 23 Jan 2019 07:30:33 +0100
Subject: [PATCH] =?UTF-8?q?[Projekt:=20Entwicklung=20-=20Neon][TicketNr.:?=
 =?UTF-8?q?=201030169][Einf=C3=BChrung=20von=20Aktivit=C3=A4ten=20und=20Ta?=
 =?UTF-8?q?sk]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 entity/Document_entity/Document_entity.aod    |  9 +++++
 entity/Task_entity/Task_entity.aod            | 27 ++++++++++++++-
 .../children/assignmentname_param/code.js     |  3 ++
 .../children/assignmentrowid_param/code.js    |  4 +++
 .../children/assignmenttable_param/code.js    |  3 ++
 .../recordcontainers/db/onDBInsert.js         | 15 ++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  1 +
 neonContext/Task_context/Task_context.aod     |  5 +++
 neonView/TaskMain_view/TaskMain_view.aod      | 34 +++++++++++++++++++
 .../TaskPreview_view/TaskPreview_view.aod     |  9 ++---
 process/Sql_lib/process.js                    | 25 ++++++++++++++
 11 files changed, 130 insertions(+), 5 deletions(-)
 create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js
 create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js
 create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js
 create mode 100644 entity/Task_entity/recordcontainers/db/onDBInsert.js
 create mode 100644 neonView/TaskMain_view/TaskMain_view.aod

diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod
index 28d4eccb4ac..8e6c9d0d6f8 100644
--- a/entity/Document_entity/Document_entity.aod
+++ b/entity/Document_entity/Document_entity.aod
@@ -8,6 +8,15 @@
   <entityFields>
     <entityIncomingField>
       <name>#INCOMING</name>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>6bbed1fb-7f22-420d-988e-7f9413c0b294</name>
+          <entityName>Task_entity</entityName>
+          <fieldName>MainDocument_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
     </entityIncomingField>
     <entityField>
       <name>NAME</name>
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 539ef213f4c..4f64821ffc4 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -49,7 +49,7 @@
       <name>EDITOR_RELATION_ID</name>
       <title>{$TASK_EDITOR}</title>
       <linkedContext>Pers_context</linkedContext>
-      <outgoingField>EditorPers_dfo</outgoingField>
+      <outgoingField>PersEditor_dfo</outgoingField>
     </entityField>
     <entityField>
       <name>START_DATE</name>
@@ -126,11 +126,36 @@
         <fieldName>#INCOMING</fieldName>
       </dependency>
     </entityOutgoingField>
+    <entityOutgoingField>
+      <name>MainDocument_dfo</name>
+      <title>Documents</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>#INCOMING</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentName_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js</code>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js</code>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
       <alias>Data_alias</alias>
+      <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <linkInformation>
         <linkInformation>
           <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name>
diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js
new file mode 100644
index 00000000000..3e4bf7585b2
--- /dev/null
+++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("DOCUMENT");
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js
new file mode 100644
index 00000000000..291121452f7
--- /dev/null
+++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.TASKID"));//TODO: sys.uid or similar?
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js
new file mode 100644
index 00000000000..14275d9477b
--- /dev/null
+++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("TASK");
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/onDBInsert.js b/entity/Task_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 00000000000..664a8805970
--- /dev/null
+++ b/entity/Task_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,15 @@
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (!vars.get("$field.CODE"))
+{
+    var maskingHelper = new SqlMaskingUtils();
+    var newCodeNumber = db.cell("select " + maskingHelper.max("TASK.CODE") + " from TASK");
+    newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0)
+    if (isNaN(newCodeNumber))
+        throw new TypeError();//TODO:add Message
+    
+    neon.setFieldValue("$field.CODE", ++newCodeNumber);
+}
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 2198463d021..e8d42b1531b 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -1705,6 +1705,7 @@
     </entry>
     <entry>
       <key>private</key>
+      <value>privat</value>
     </entry>
     <entry>
       <key>waiting</key>
diff --git a/neonContext/Task_context/Task_context.aod b/neonContext/Task_context/Task_context.aod
index 42222db0928..afaf210f1dd 100644
--- a/neonContext/Task_context/Task_context.aod
+++ b/neonContext/Task_context/Task_context.aod
@@ -5,6 +5,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonContext/Task_context/documentation.adoc</documentation>
   <icon>VAADIN:TASKS</icon>
+  <mainview>TaskMain_view</mainview>
   <filterview>TaskFilter_view</filterview>
   <editview>TaskEdit_view</editview>
   <preview>TaskPreview_view</preview>
@@ -22,5 +23,9 @@
       <name>b9bd19b5-2a67-47a4-83cd-41ba30e81888</name>
       <view>TaskEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>83309ef0-d1c0-4f74-bb44-41fd8e054b4b</name>
+      <view>TaskMain_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod
new file mode 100644
index 00000000000..4073f67d0a5
--- /dev/null
+++ b/neonView/TaskMain_view/TaskMain_view.aod
@@ -0,0 +1,34 @@
+<?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.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>TaskMain_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>c8294ae1-65d8-4cee-a003-931a4759c619</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>c8294ae1-65d8-4cee-a003-931a4759c619</name>
+      <entityField>#ENTITY</entityField>
+      <view>TaskPreview_view</view>
+    </neonViewReference>
+    <genericViewTemplate>
+      <name>details</name>
+      <entityField>#ENTITY</entityField>
+      <title>details</title>
+      <fields>
+        <entityFieldLink>
+          <name>fea59f13-750b-427d-bf33-cc1bead95446</name>
+          <entityField>DESCRIPTION</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>6846f680-84ef-46da-a0ea-6797044cf693</name>
+      <entityField>MainDocument_dfo</entityField>
+      <view>DocumentFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/TaskPreview_view/TaskPreview_view.aod b/neonView/TaskPreview_view/TaskPreview_view.aod
index 78d974291b0..2eaf021b12e 100644
--- a/neonView/TaskPreview_view/TaskPreview_view.aod
+++ b/neonView/TaskPreview_view/TaskPreview_view.aod
@@ -17,6 +17,7 @@
     </cardViewTemplate>
     <genericViewTemplate>
       <name>extendedData</name>
+      <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
@@ -39,6 +40,10 @@
           <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name>
           <entityField>PRIORITY</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>d9e4daef-84df-415c-9be7-3238c2760c07</name>
+          <entityField>PROTECTIONLEVEL</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>5bcbaa89-0826-4ef8-872d-bd68dbd8ef77</name>
           <entityField>TYPE</entityField>
@@ -51,10 +56,6 @@
           <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name>
           <entityField>EDITOR_RELATION_ID</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>590d0c95-9cc6-44f7-9b64-37a3990531d2</name>
-          <entityField>DESCRIPTION</entityField>
-        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index bd7e326623e..5ca5911262d 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -505,6 +505,31 @@ SqlMaskingUtils.prototype.trim = function(field) {
     return resultStr;
 }
 
+/**
+*  returns the max-value sql expressions depending on the database behind the given alias
+*  note that this function does not verifiy if the field (and type) usage is valid at all
+*
+* @param {String} field expression
+*
+* @return {String} sql-part that can be used in a select
+*/
+SqlMaskingUtils.prototype.max = function(field) 
+{
+    return "max(" + field + ")";
+}
+
+/**
+*  returns the min-value sql expressions depending on the database behind the given alias
+*  note that this function does not verifiy if the field (and type) usage is valid at all
+*
+* @param {String} field expression
+*
+* @return {String} sql-part that can be used in a select
+*/
+SqlMaskingUtils.prototype.min = function(field) 
+{
+    return "min(" + field + ")";
+}
 
 /**
     * masks the function cast of standard sql
-- 
GitLab