From fd9e01605bd274ab03713ed777ae4766a4cc15e1 Mon Sep 17 00:00:00 2001
From: "s.pongratz" <s.pongratz@adito.de>
Date: Thu, 9 Jul 2020 11:40:44 +0200
Subject: [PATCH] #1060544-VergabeBerechtigungen Neue Benutzer-Berechtigung
 vergeben

---
 .../PermissionCalendar_entity.aod             | 19 ++++++++++++
 .../onActionProcess.js                        |  9 ++++++
 .../stateProcess.js                           |  7 +++--
 .../valueProcess.js                           |  8 +++++
 .../permissionprocurer_rowid/valueProcess.js  |  2 +-
 .../permissionprocurer_type/valueProcess.js   |  2 +-
 .../displayValueProcess.js                    |  9 ++++++
 .../onValueChange.js                          |  9 ++++++
 .../_____LANGUAGE_EXTRA.aod                   | 18 +++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 10 ++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 18 +++++++++++
 .../PermissionCalendar/PermissionCalendar.aod |  4 +++
 .../PermissionCalendarEditReverse_view.aod    | 31 +++++++++++++++++++
 .../PermissionCalendarFilterReverse_view.aod  |  1 +
 14 files changed, 143 insertions(+), 4 deletions(-)
 create mode 100644 entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
 create mode 100644 entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/valueProcess.js
 create mode 100644 entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/displayValueProcess.js
 create mode 100644 entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/onValueChange.js
 create mode 100644 neonView/PermissionCalendarEditReverse_view/PermissionCalendarEditReverse_view.aod

diff --git a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
index 8bd374fd348..ffffa204d1e 100644
--- a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
+++ b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
@@ -56,6 +56,7 @@
       <mandatoryProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/mandatoryProcess.js</mandatoryProcess>
       <textInputAllowed v="false" />
       <stateProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/onValueChange.js</onValueChange>
     </entityField>
@@ -197,6 +198,24 @@
       <name>PermissionDealer_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>permissionProcurer_User_RowId</name>
+      <title>Permission Procurer User</title>
+      <consumer>User</consumer>
+      <displayValueProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/onValueChange.js</onValueChange>
+    </entityField>
+    <entityActionGroup>
+      <name>AddActionsReverse</name>
+      <children>
+        <entityActionField>
+          <name>addNewUserPermissionProcurerAction</name>
+          <title>Grant new User Permission</title>
+          <onActionProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:USER</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
new file mode 100644
index 00000000000..b19d4ef7af1
--- /dev/null
+++ b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
@@ -0,0 +1,9 @@
+import("KeywordRegistry_basic");
+import("PermissionCalendar_lib");
+import("system.vars");
+import("system.neon");
+
+var params = {};
+params["PermissionDealerType_param"] = $KeywordRegistry.permissionCalendarType$user();
+params["PermissionDealer_param"] = vars.get("$param.PermissionDealer_param");
+neon.openContext("PermissionCalendar", "PermissionCalendarEditReverse_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/stateProcess.js b/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/stateProcess.js
index 6176f62e416..d1da690a3e6 100644
--- a/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/stateProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/stateProcess.js
@@ -6,8 +6,11 @@ import("system.neon");
 
 if(vars.getString("$field.PERMISSIONDEALER_TYPE") == $KeywordRegistry.permissionCalendarType$user())
     if(vars.getString("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-        result.string("READONLY")
+        result.string("READONLY");
     else
-        result.string("EDITABLE");
+        if (vars.getString("$param.PermissionDealer_param"))
+            result.string("READONLY");
+        else
+            result.string("EDITABLE");
 else
     result.string("INVISIBLE");
\ No newline at end of file
diff --git a/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/valueProcess.js b/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/valueProcess.js
new file mode 100644
index 00000000000..a742ec0c4cb
--- /dev/null
+++ b/entity/PermissionCalendar_entity/entityfields/permissiondealer_user_rowid/valueProcess.js
@@ -0,0 +1,8 @@
+import("Employee_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+
+if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$param.PermissionDealer_param"))
+    result.string(EmployeeUtils.sliceUserId(vars.get("$param.PermissionDealer_param")));
\ No newline at end of file
diff --git a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_rowid/valueProcess.js b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_rowid/valueProcess.js
index a8593c85365..0990ee82108 100644
--- a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_rowid/valueProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_rowid/valueProcess.js
@@ -4,5 +4,5 @@ import("system.neon");
 import("system.vars");
 
 
-if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$param.PermissionProcurer_param"))
     result.string(EmployeeUtils.sliceUserId(vars.get("$param.PermissionProcurer_param")));
\ No newline at end of file
diff --git a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_type/valueProcess.js b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_type/valueProcess.js
index 61f70f8df4e..2cb573dc512 100644
--- a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_type/valueProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_type/valueProcess.js
@@ -4,5 +4,5 @@ import("system.result");
 import("system.neon");
 import("system.vars");
 
-if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$param.PermissionProcurer_param"))
     result.string(PermissionCalendar.getObjectType(vars.get("$param.PermissionProcurer_param")));
\ No newline at end of file
diff --git a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/displayValueProcess.js b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/displayValueProcess.js
new file mode 100644
index 00000000000..4aed1075952
--- /dev/null
+++ b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("system.vars");
+import("PermissionCalendar_lib");
+
+let permissionProcurerUserDisplay = PermissionCalendar.getNameDisplay(vars.getString("$this.value"), $KeywordRegistry.permissionCalendarType$user());
+
+if (permissionProcurerUserDisplay != "undefined")
+    result.string(permissionProcurerUserDisplay);
diff --git a/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/onValueChange.js b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/onValueChange.js
new file mode 100644
index 00000000000..03e9dfdfd7c
--- /dev/null
+++ b/entity/PermissionCalendar_entity/entityfields/permissionprocurer_user_rowid/onValueChange.js
@@ -0,0 +1,9 @@
+import("KeywordRegistry_basic");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$this.value") != null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    vars.set("$field.PERMISSIONPROCURER_ROWID", vars.get("$this.value"));
+    vars.set("$field.PERMISSIONPROCURER_TYPE", $KeywordRegistry.permissionCalendarType$user());
+}
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index f32d5f97f09..63ba21d8cea 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -6833,6 +6833,24 @@
     <entry>
       <key>send mail</key>
     </entry>
+    <entry>
+      <key>and open modeler</key>
+    </entry>
+    <entry>
+      <key>Create model</key>
+    </entry>
+    <entry>
+      <key>Edit workflow</key>
+    </entry>
+    <entry>
+      <key>Permission Procurer User</key>
+    </entry>
+    <entry>
+      <key>Grant new User Permission</key>
+    </entry>
+    <entry>
+      <key>Workflow Model</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 7d8ec08a7b6..23532c5d74a 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -8769,6 +8769,16 @@ Bitte Datumseingabe prüfen</value>
       <key>send mail</key>
       <value>E-Mail losschicken</value>
     </entry>
+    <entry>
+      <key>Permission Procurer User</key>
+    </entry>
+    <entry>
+      <key>Grant new User Permission</key>
+      <value>Neue Benutzer-Berechtigung vergeben</value>
+    </entry>
+    <entry>
+      <key>Workflow Model</key>
+    </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 40c367a50db..48dca7bfd82 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -6899,6 +6899,24 @@
     <entry>
       <key>send mail</key>
     </entry>
+    <entry>
+      <key>and open modeler</key>
+    </entry>
+    <entry>
+      <key>Create model</key>
+    </entry>
+    <entry>
+      <key>Edit workflow</key>
+    </entry>
+    <entry>
+      <key>Permission Procurer User</key>
+    </entry>
+    <entry>
+      <key>Grant new User Permission</key>
+    </entry>
+    <entry>
+      <key>Workflow Model</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/PermissionCalendar/PermissionCalendar.aod b/neonContext/PermissionCalendar/PermissionCalendar.aod
index 01c68cf39a1..2a143ec693d 100644
--- a/neonContext/PermissionCalendar/PermissionCalendar.aod
+++ b/neonContext/PermissionCalendar/PermissionCalendar.aod
@@ -27,5 +27,9 @@
       <name>e0b5c183-3f5c-48ad-ba6c-60ae1a0c3b85</name>
       <view>PermissionCalendarFilterDrawer_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>dd1363e0-d7ba-44d3-b587-e243b760d9e4</name>
+      <view>PermissionCalendarEditReverse_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/PermissionCalendarEditReverse_view/PermissionCalendarEditReverse_view.aod b/neonView/PermissionCalendarEditReverse_view/PermissionCalendarEditReverse_view.aod
new file mode 100644
index 00000000000..3fca170746d
--- /dev/null
+++ b/neonView/PermissionCalendarEditReverse_view/PermissionCalendarEditReverse_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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+  <name>PermissionCalendarEditReverse_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>PermissionCalendarEditReverseGeneric</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>c40a7708-1983-4848-a93c-92b873104095</name>
+          <entityField>PERMISSION</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>8da9a2ae-f338-4342-b762-125e972d4980</name>
+          <entityField>permissionProcurer_User_RowId</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7ce1d83a-9d5c-4c36-81a8-2e832448eaaf</name>
+          <entityField>PERMISSIONDEALER_USER_ROWID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
index df480a219c3..41f27fe542e 100644
--- a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
+++ b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
@@ -13,6 +13,7 @@
   <children>
     <tableViewTemplate>
       <name>PermissionCalendarFilterReverseTable</name>
+      <favoriteActionGroup1>AddActionsReverse</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
       <isCreatable v="false" />
       <isDeletable v="false" />
-- 
GitLab