From 959396a4da4ce088c2e65e24e5e9f366399d4eac Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Wed, 8 May 2019 15:25:45 +0200
Subject: [PATCH] added Attributes in Campaign und DocumentTemplate

---
 .../entityfields/uid/valueProcess.js          |  7 +++++++
 .../exclusivecontexts_param/valueProcess.js   |  4 +++-
 entity/Campaign_entity/Campaign_entity.aod    | 20 +++++++++++++++++++
 entity/Campaign_entity/afterUiInit.js         |  9 +++++++++
 .../objectrowid_param/valueProcess.js         |  4 ++++
 .../children/objecttype_param/valueProcess.js |  4 ++++
 .../DocumentTemplate_entity.aod               |  1 +
 entity/DocumentTemplate_entity/afterUiInit.js |  9 +++++++++
 .../CampaignEdit_view/CampaignEdit_view.aod   |  5 +++++
 .../CampaignMain_view/CampaignMain_view.aod   |  5 +++++
 10 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 entity/AttributeRelation_entity/entityfields/uid/valueProcess.js
 create mode 100644 entity/Campaign_entity/afterUiInit.js
 create mode 100644 entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
 create mode 100644 entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
 create mode 100644 entity/DocumentTemplate_entity/afterUiInit.js

diff --git a/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js b/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js
new file mode 100644
index 00000000000..056f5c94f17
--- /dev/null
+++ b/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("system.util");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js
index 5a8e7eb9fe2..0b23d14d86d 100644
--- a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js
+++ b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js
@@ -9,5 +9,7 @@ result.object([
     "Offer",
     "Order",
     "Employee",
-    "Salesproject"
+    "Salesproject",
+    "Campaign",
+    "DocumentTemplate"
 ]);
\ No newline at end of file
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
index 040bbd5905b..1f88b6da448 100644
--- a/entity/Campaign_entity/Campaign_entity.aod
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -5,6 +5,7 @@
   <icon>VAADIN:GROUP</icon>
   <title>Campaign</title>
   <contentTitleProcess>%aditoprj%/entity/Campaign_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/Campaign_entity/afterUiInit.js</afterUiInit>
   <titlePlural>Campaigns</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -346,6 +347,25 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>Attributes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Campaign_entity/afterUiInit.js b/entity/Campaign_entity/afterUiInit.js
new file mode 100644
index 00000000000..031b635db2b
--- /dev/null
+++ b/entity/Campaign_entity/afterUiInit.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+import("Attribute_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
+}
diff --git a/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
new file mode 100644
index 00000000000..533f8ec837e
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$sys.uid"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
new file mode 100644
index 00000000000..e8b4e72e74a
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
index b83d142e7cf..5e23957f78a 100644
--- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
+++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
@@ -5,6 +5,7 @@
   <icon>VAADIN:FILE_FONT</icon>
   <title>Document Template</title>
   <contentTitleProcess>%aditoprj%/entity/DocumentTemplate_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/DocumentTemplate_entity/afterUiInit.js</afterUiInit>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/DocumentTemplate_entity/afterUiInit.js b/entity/DocumentTemplate_entity/afterUiInit.js
new file mode 100644
index 00000000000..031b635db2b
--- /dev/null
+++ b/entity/DocumentTemplate_entity/afterUiInit.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+import("Attribute_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
+}
diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod
index 5635c65c2e8..29d30dd1c51 100644
--- a/neonView/CampaignEdit_view/CampaignEdit_view.aod
+++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod
@@ -37,5 +37,10 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
+    <neonViewReference>
+      <name>58b76841-24df-4fce-a05b-580712e8ecdc</name>
+      <entityField>Attributes</entityField>
+      <view>AttributeRelationMultiEdit_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod
index 5c6f7bd263b..c9465927c54 100644
--- a/neonView/CampaignMain_view/CampaignMain_view.aod
+++ b/neonView/CampaignMain_view/CampaignMain_view.aod
@@ -45,5 +45,10 @@
       <entityField>Tasks</entityField>
       <view>TaskFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>c6237b30-d638-43e3-93c5-fc3abbb87443</name>
+      <entityField>Attributes</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
   </children>
 </neonView>
-- 
GitLab