From f623a03b152742f6fd498527e053afc3f96add73 Mon Sep 17 00:00:00 2001
From: Markus Escher <m.escher@adito.de>
Date: Fri, 14 Dec 2018 09:43:38 +0100
Subject: [PATCH] #1029570 add documentListView for Contracts

---
 entity/Contract_entity/Contract_entity.aod    | 57 ++++++++++++++++++-
 .../children/assignmentname_param/code.js     |  3 +
 .../children/assignmentrowid_param/code.js    |  4 ++
 .../children/assignmenttable_param/code.js    |  3 +
 .../children/assignmentname_param/code.js     |  3 +
 .../children/assignmentrowid_param/code.js    |  4 ++
 .../children/assignmenttable_param/code.js    |  3 +
 entity/Document_entity/Document_entity.aod    | 30 ++++++++++
 .../entityfields/icon/valueProcess.js         |  2 +
 .../Document_context/Document_context.aod     |  4 ++
 .../ContractMain_view/ContractMain_view.aod   |  5 ++
 .../ContractPreview_view.aod                  |  5 ++
 .../DocumentList_view/DocumentList_view.aod   | 21 +++++++
 13 files changed, 142 insertions(+), 2 deletions(-)
 create mode 100644 entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentname_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentrowid_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmenttable_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentname_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentrowid_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmenttable_param/code.js
 create mode 100644 entity/Document_entity/entityfields/icon/valueProcess.js
 create mode 100644 neonView/DocumentList_view/DocumentList_view.aod

diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index cc07121a897..5ea1a57a558 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -179,6 +179,59 @@
     <entityField>
       <name>RELATION_PERS_ID</name>
     </entityField>
+    <entityOutgoingField>
+      <name>ContractDocument_dfo</name>
+      <title>Documents</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>ContractDocument_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentName_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentname_param/code.js</code>
+          <triggerRecalculation v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentrowid_param/code.js</code>
+          <triggerRecalculation v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmenttable_param/code.js</code>
+          <triggerRecalculation v="false" />
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
+    <entityOutgoingField>
+      <name>ContractMainDocuments_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>ContractMainDocuments_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentName_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentname_param/code.js</code>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentrowid_param/code.js</code>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmenttable_param/code.js</code>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -189,14 +242,14 @@
       <conditionProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <linkInformation>
         <linkInformation>
-          <name>99139e0f-3074-4c07-8998-bd83676e5a58</name>
+          <name>bca25dcf-86a5-49a4-afdb-2101a4ca9712</name>
           <tableName>CONTRACT</tableName>
           <primaryKey>CONTRACTID</primaryKey>
           <isUIDTable v="true" />
           <readonly v="false" />
         </linkInformation>
         <linkInformation>
-          <name>2c5a2300-594b-46ee-8234-eaafb49a9a1e</name>
+          <name>a27f0230-84c1-44f8-b30b-9a943caf07c2</name>
           <tableName>RELATION</tableName>
           <primaryKey>RELATIONID</primaryKey>
           <isUIDTable v="false" />
diff --git a/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentname_param/code.js b/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentname_param/code.js
new file mode 100644
index 00000000000..3e4bf7585b2
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractdocument_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/Contract_entity/entityfields/contractdocument_dfo/children/assignmentrowid_param/code.js b/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentrowid_param/code.js
new file mode 100644
index 00000000000..92b0b7622da
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmentrowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.RELATION_ID"));
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmenttable_param/code.js b/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmenttable_param/code.js
new file mode 100644
index 00000000000..a628e61d5d3
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractdocument_dfo/children/assignmenttable_param/code.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("CONTRACT");
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentname_param/code.js b/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentname_param/code.js
new file mode 100644
index 00000000000..3e4bf7585b2
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractmaindocuments_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/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentrowid_param/code.js b/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentrowid_param/code.js
new file mode 100644
index 00000000000..92b0b7622da
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmentrowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.RELATION_ID"));
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmenttable_param/code.js b/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmenttable_param/code.js
new file mode 100644
index 00000000000..a628e61d5d3
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractmaindocuments_dfo/children/assignmenttable_param/code.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("CONTRACT");
\ No newline at end of file
diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod
index 6ebceedb6d2..8d2390ae1fa 100644
--- a/entity/Document_entity/Document_entity.aod
+++ b/entity/Document_entity/Document_entity.aod
@@ -112,6 +112,36 @@
       <name>KEYWORD</name>
       <title>Schlüsselwort</title>
     </entityField>
+    <entityIncomingField>
+      <name>ContractDocument_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>383095e7-a75f-4d20-96c4-413e79a9020a</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>ContractDocument_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
+    <entityField>
+      <name>ICON</name>
+      <valueProcess>%aditoprj%/entity/Document_entity/entityfields/icon/valueProcess.js</valueProcess>
+    </entityField>
+    <entityIncomingField>
+      <name>ContractMainDocuments_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>1e35c51a-8527-4cf0-be94-654363390cd8</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>ContractMainDocuments_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Document_entity/entityfields/icon/valueProcess.js b/entity/Document_entity/entityfields/icon/valueProcess.js
new file mode 100644
index 00000000000..2f58b265765
--- /dev/null
+++ b/entity/Document_entity/entityfields/icon/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("vaadin:file_text");
\ No newline at end of file
diff --git a/neonContext/Document_context/Document_context.aod b/neonContext/Document_context/Document_context.aod
index fb1cc864f95..e22fc8179d7 100644
--- a/neonContext/Document_context/Document_context.aod
+++ b/neonContext/Document_context/Document_context.aod
@@ -21,5 +21,9 @@
       <name>c3a522f3-897e-4d02-862b-6e44c4873714</name>
       <view>DocumentPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>b9455efd-d150-46c0-bfae-cdccb0c9bcad</name>
+      <view>DocumentList_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod
index 809037bed45..3ec444a91f0 100644
--- a/neonView/ContractMain_view/ContractMain_view.aod
+++ b/neonView/ContractMain_view/ContractMain_view.aod
@@ -19,5 +19,10 @@
       <entityField>ContractHistory_dfo</entityField>
       <view>HistoryFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>1bf6faf5-9a22-4900-a497-54b6c225584b</name>
+      <entityField>ContractDocument_dfo</entityField>
+      <view>DocumentFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/ContractPreview_view/ContractPreview_view.aod b/neonView/ContractPreview_view/ContractPreview_view.aod
index 00ac9de04c9..ac81c670898 100644
--- a/neonView/ContractPreview_view/ContractPreview_view.aod
+++ b/neonView/ContractPreview_view/ContractPreview_view.aod
@@ -46,5 +46,10 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
+    <neonViewReference>
+      <name>90de7332-5d4c-4d72-a93a-1bd2c06d12a4</name>
+      <entityField>ContractMainDocuments_dfo</entityField>
+      <view>DocumentList_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/DocumentList_view/DocumentList_view.aod b/neonView/DocumentList_view/DocumentList_view.aod
new file mode 100644
index 00000000000..9af9218b8f7
--- /dev/null
+++ b/neonView/DocumentList_view/DocumentList_view.aod
@@ -0,0 +1,21 @@
+<?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>DocumentList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Documents</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <treetableViewTemplate>
+      <name>DocumentTreeList_view</name>
+      <titleField>NAME</titleField>
+      <descriptionField>TYPE</descriptionField>
+      <iconField>ICON</iconField>
+      <hideActions v="true" />
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
+  </children>
+</neonView>
-- 
GitLab