From 4036c3c003a38acea26401e622ebd19b0f5166c5 Mon Sep 17 00:00:00 2001
From: Tobias Feldmann <t.feldmann@adito.de>
Date: Wed, 12 Dec 2018 10:21:59 +0100
Subject: [PATCH] edit defaults for PERS and ORG

---
 entity/Address_entity/Address_entity.aod      |  5 +++
 entity/Address_entity/titleProcess.js         |  4 +++
 entity/Org_entity/Org_entity.aod              | 26 ++++++++++++++++
 .../openeditdefaultsview/onActionProcess.js   |  3 ++
 entity/Pers_entity/Pers_entity.aod            | 26 ++++++++++++++++
 .../openeditdefaultsview/onActionProcess.js   |  3 ++
 entity/Prod2prod_entity/externalOpenAction.js |  2 +-
 .../_____LANGUAGE_EXTRA.aod                   | 12 +++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 15 +++++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 12 +++++++
 neonContext/Org_context/Org_context.aod       |  4 +++
 neonContext/Pers_context/Pers_context.aod     |  4 +++
 .../OrgEditDefaults_view.aod                  | 31 +++++++++++++++++++
 .../PersEditDefaults_view.aod                 | 31 +++++++++++++++++++
 process/Neon_lib/process.js                   |  2 +-
 15 files changed, 178 insertions(+), 2 deletions(-)
 create mode 100644 entity/Address_entity/titleProcess.js
 create mode 100644 entity/Org_entity/entityfields/openeditdefaultsview/onActionProcess.js
 create mode 100644 entity/Pers_entity/entityfields/openeditdefaultsview/onActionProcess.js
 create mode 100644 neonView/OrgEditDefaults_view/OrgEditDefaults_view.aod
 create mode 100644 neonView/PersEditDefaults_view/PersEditDefaults_view.aod

diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index 48cce3547a..e7ee6dacca 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -9,6 +9,7 @@
   <grantUpdateProcess>%aditoprj%/entity/Address_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDelete v="false" />
   <grantDeleteProcess>%aditoprj%/entity/Address_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <titleProcess>%aditoprj%/entity/Address_entity/titleProcess.js</titleProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityField>
@@ -180,6 +181,10 @@ If this is &amp;quot;false&amp;quot;, you cannot create od delete records or cha
         <fieldName>ISO2_NAME</fieldName>
       </dependency>
     </entityOutgoingField>
+    <entityField>
+      <name>parameter</name>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/parameter/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Address_entity/titleProcess.js b/entity/Address_entity/titleProcess.js
new file mode 100644
index 0000000000..c58e133fd4
--- /dev/null
+++ b/entity/Address_entity/titleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.COUNTRY") + ", " + vars.get("$field.ADDRESS") +  ", " + vars.get("$field.BUILDINGNO") +  ", " + vars.get("$field.ZIP") +  ", " + vars.get("$field.CITY"));
\ No newline at end of file
diff --git a/entity/Org_entity/Org_entity.aod b/entity/Org_entity/Org_entity.aod
index ad776a7905..1b3d9ef0c9 100644
--- a/entity/Org_entity/Org_entity.aod
+++ b/entity/Org_entity/Org_entity.aod
@@ -356,6 +356,28 @@
       <title>Weakness</title>
       <possibleItemsProcess>%aditoprj%/entity/Org_entity/entityfields/weakness/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
+    <entityField>
+      <name>ADDRESS_DEFAULT_ID</name>
+      <title>standard address</title>
+      <outgoingField>OrgAddress_dfo</outgoingField>
+    </entityField>
+    <entityActionField>
+      <name>OpenEditDefaultsView</name>
+      <fieldType>ACTION</fieldType>
+      <title>Edit defaults</title>
+      <onActionProcess>%aditoprj%/entity/Org_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
+      <iconId>NEON:WRENCH</iconId>
+    </entityActionField>
+    <entityField>
+      <name>EMAIL_DEFAULT_ID</name>
+      <title>standard email</title>
+      <outgoingField>OrgComm_dfo</outgoingField>
+    </entityField>
+    <entityField>
+      <name>PHONE_DEFAULT_ID</name>
+      <title>standard phone</title>
+      <outgoingField>OrgComm_dfo</outgoingField>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -464,6 +486,10 @@
           <name>WEAKNESS.value</name>
           <recordfield>ORG.WEAKNESS</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDRESS_DEFAULT_ID.value</name>
+          <recordfield>RELATION.ADDRESS_ID</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Org_entity/entityfields/openeditdefaultsview/onActionProcess.js b/entity/Org_entity/entityfields/openeditdefaultsview/onActionProcess.js
new file mode 100644
index 0000000000..0e0efd094f
--- /dev/null
+++ b/entity/Org_entity/entityfields/openeditdefaultsview/onActionProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.neon");
+neon.openContext("Org_context", "OrgEditDefaults_view", [vars.get("$field.ORGID")], neon.OPERATINGSTATE_EDIT, null); 
\ No newline at end of file
diff --git a/entity/Pers_entity/Pers_entity.aod b/entity/Pers_entity/Pers_entity.aod
index f38da8a60d..6c918efda8 100644
--- a/entity/Pers_entity/Pers_entity.aod
+++ b/entity/Pers_entity/Pers_entity.aod
@@ -376,12 +376,34 @@
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Pers_entity/entityfields/rel_relationship/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>ADDRESS_DEFAULT_ID</name>
+      <title>standard address</title>
+      <outgoingField>PersAddress_dfo</outgoingField>
+    </entityField>
+    <entityField>
+      <name>PHONE_DEFAULT_ID</name>
+      <title>standard phone</title>
+      <outgoingField>PersComm_dfo</outgoingField>
+    </entityField>
+    <entityField>
+      <name>EMAIL_DEFAULT_ID</name>
+      <title>standard email</title>
+      <outgoingField>PersComm_dfo</outgoingField>
+    </entityField>
     <entityActionField>
       <name>newOffer</name>
       <fieldType>ACTION</fieldType>
       <title>New offer</title>
       <onActionProcess>%aditoprj%/entity/Pers_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
     </entityActionField>
+    <entityActionField>
+      <name>OpenEditDefaultsView</name>
+      <fieldType>ACTION</fieldType>
+      <title>Edit defaults</title>
+      <onActionProcess>%aditoprj%/entity/Pers_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:WRENCH</iconId>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -514,6 +536,10 @@
           <name>REL_RELATIONSHIP.value</name>
           <recordfield>RELATION.RELATIONSHIP</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDRESS_DEFAULT_ID.value</name>
+          <recordfield>RELATION.ADDRESS_ID</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Pers_entity/entityfields/openeditdefaultsview/onActionProcess.js b/entity/Pers_entity/entityfields/openeditdefaultsview/onActionProcess.js
new file mode 100644
index 0000000000..637f5c51eb
--- /dev/null
+++ b/entity/Pers_entity/entityfields/openeditdefaultsview/onActionProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.neon");
+neon.openContext("Pers_context", "PersEditDefaults_view", [vars.get("$field.RELATIONID")], neon.OPERATINGSTATE_EDIT, null);
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/externalOpenAction.js b/entity/Prod2prod_entity/externalOpenAction.js
index 5e4ce1796f..fc5697186e 100644
--- a/entity/Prod2prod_entity/externalOpenAction.js
+++ b/entity/Prod2prod_entity/externalOpenAction.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Product_context", [vars.get("$field.SOURCE_ID")], neon.OPERATINGSTATE_VIEW, null);
\ No newline at end of file
+neon.openContext("Product_context", null, [vars.get("$field.SOURCE_ID")], neon.OPERATINGSTATE_VIEW, null);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 7116e79e84..2694229937 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -1179,6 +1179,9 @@
     <entry>
       <key>UMSt</key>
     </entry>
+    <entry>
+      <key>Edit defaults</key>
+    </entry>
     <entry>
       <key>no valid mail-address format</key>
     </entry>
@@ -1191,6 +1194,9 @@
     <entry>
       <key>#,##0.00</key>
     </entry>
+    <entry>
+      <key>Default address</key>
+    </entry>
     <entry>
       <key>jDitoRC</key>
     </entry>
@@ -1209,6 +1215,12 @@
     <entry>
       <key>Angebot</key>
     </entry>
+    <entry>
+      <key>standard email</key>
+    </entry>
+    <entry>
+      <key>standard phone</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index c9dd0bcb86..16c2ff078f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -1469,6 +1469,10 @@
     <entry>
       <key>UMSt</key>
     </entry>
+    <entry>
+      <key>Edit defaults</key>
+      <value>Standards anpassen</value>
+    </entry>
     <entry>
       <key>no valid mail-address format</key>
     </entry>
@@ -1481,6 +1485,9 @@
     <entry>
       <key>#,##0.00</key>
     </entry>
+    <entry>
+      <key>Default address</key>
+    </entry>
     <entry>
       <key>jDitoRC</key>
     </entry>
@@ -1499,6 +1506,14 @@
     <entry>
       <key>Angebot</key>
     </entry>
+    <entry>
+      <key>standard email</key>
+      <value>Standard-Email</value>
+    </entry>
+    <entry>
+      <key>standard phone</key>
+      <value>Standard-Telefon</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 925b9039a9..3476eb34d4 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -1224,6 +1224,18 @@
     <entry>
       <key>Angebot</key>
     </entry>
+    <entry>
+      <key>standard phone</key>
+    </entry>
+    <entry>
+      <key>standard email</key>
+    </entry>
+    <entry>
+      <key>Edit defaults</key>
+    </entry>
+    <entry>
+      <key>Default address</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Org_context/Org_context.aod b/neonContext/Org_context/Org_context.aod
index c3a0fa15c3..a62c3c9633 100644
--- a/neonContext/Org_context/Org_context.aod
+++ b/neonContext/Org_context/Org_context.aod
@@ -32,5 +32,9 @@
       <name>bb592f88-fa9f-4ecc-98cc-51a7903dc970</name>
       <view>OrgAttr_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>b1634a51-b3f3-47b7-aea0-b9e8fba851da</name>
+      <view>OrgEditDefaults_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Pers_context/Pers_context.aod b/neonContext/Pers_context/Pers_context.aod
index e983d99709..06b275d372 100644
--- a/neonContext/Pers_context/Pers_context.aod
+++ b/neonContext/Pers_context/Pers_context.aod
@@ -29,5 +29,9 @@
       <name>059b25be-ba0e-43c9-983a-6a6115b3a24c</name>
       <view>PersDetail_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>4192e40d-23f0-45ff-8f2c-3a0694a59582</name>
+      <view>PersEditDefaults_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/OrgEditDefaults_view/OrgEditDefaults_view.aod b/neonView/OrgEditDefaults_view/OrgEditDefaults_view.aod
new file mode 100644
index 0000000000..f17c72e74b
--- /dev/null
+++ b/neonView/OrgEditDefaults_view/OrgEditDefaults_view.aod
@@ -0,0 +1,31 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>OrgEditDefaults_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>EditDefaults_template</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>56daa95c-d0da-49a8-87fc-cd63b4f9b4b0</name>
+          <entityField>ADDRESS_DEFAULT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>e3939d9a-6955-4a9b-bf52-d63a20ed2e9d</name>
+          <entityField>PHONE_DEFAULT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>dad5f5bc-9fb0-4aad-bd7f-398f19926294</name>
+          <entityField>EMAIL_DEFAULT_ID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/PersEditDefaults_view/PersEditDefaults_view.aod b/neonView/PersEditDefaults_view/PersEditDefaults_view.aod
new file mode 100644
index 0000000000..682ce7d8ab
--- /dev/null
+++ b/neonView/PersEditDefaults_view/PersEditDefaults_view.aod
@@ -0,0 +1,31 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>PersEditDefaults_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>EditPersDefaults_template</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>45b174ff-8f04-4661-8efa-01429a405a80</name>
+          <entityField>ADDRESS_DEFAULT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>255f14da-eca2-4584-ac8d-0081268c97f1</name>
+          <entityField>PHONE_DEFAULT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>d69b541a-f362-4316-a5f6-d1c96b784ee1</name>
+          <entityField>EMAIL_DEFAULT_ID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/process/Neon_lib/process.js b/process/Neon_lib/process.js
index 45bdc29812..a07ab5e149 100644
--- a/process/Neon_lib/process.js
+++ b/process/Neon_lib/process.js
@@ -31,7 +31,7 @@ CopyModuleUtils.openNewModules = function(pNeonContext, pModulesMapping)
             }
 
             if(newids.length > 0)
-                neon.openContext(pNeonContext, newids, neon.OPERATINGSTATE_VIEW, null);
+                neon.openContext(pNeonContext, null, newids, neon.OPERATINGSTATE_VIEW, null);
         }
     }
 }
-- 
GitLab