From d647f6ab06ef8aadd9eba78f1e9a2b6da87058e4 Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Thu, 7 Nov 2019 16:37:28 +0100
Subject: [PATCH] Campaign: new action for adding additional (following) steps

---
 entity/CampaignStep_entity/CampaignStep_entity.aod   | 12 ++++++++++++
 .../entityfields/newcampaignstep/onActionProcess.js  |  7 +++++++
 .../entityfields/predecessorstep_id/valueProcess.js  |  6 ++++++
 .../predecessorstepid_param/documentation.adoc       |  1 +
 4 files changed, 26 insertions(+)
 create mode 100644 entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
 create mode 100644 entity/CampaignStep_entity/entityfields/predecessorstep_id/valueProcess.js
 create mode 100644 entity/CampaignStep_entity/entityfields/predecessorstepid_param/documentation.adoc

diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
index 6a6eb3fc7f1..99019821d99 100644
--- a/entity/CampaignStep_entity/CampaignStep_entity.aod
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -335,6 +335,7 @@
       <consumer>CampaignStepsConsumer</consumer>
       <textInputAllowed v="true" />
       <stateProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/predecessorstep_id/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/predecessorstep_id/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/predecessorstep_id/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/CampaignStep_entity/entityfields/predecessorstep_id/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -402,6 +403,17 @@
       <name>maxSort_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityActionField>
+      <name>newCampaignStep</name>
+      <title>New step</title>
+      <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js</onActionProcess>
+      <iconId>NEON:GROUP_APPOINTMENT</iconId>
+    </entityActionField>
+    <entityParameter>
+      <name>predecessorstepId_param</name>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/CampaignStep_entity/entityfields/predecessorstepid_param/documentation.adoc</documentation>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
new file mode 100644
index 00000000000..0c0f7ed6eae
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.neon");
+
+neon.openContext("CampaignStep", "CampaignStepEdit_view", null, neon.OPERATINGSTATE_NEW, {
+    campaignId_param: vars.get("$param.campaignId_param"),
+    predecessorstepId_param: vars.get("$field.CAMPAIGNSTEPID")
+});
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/predecessorstep_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/predecessorstep_id/valueProcess.js
new file mode 100644
index 00000000000..db810fb2076
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/predecessorstep_id/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$param.predecessorstepId_param"))
+    result.string(vars.get("$param.predecessorstepId_param"));
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/predecessorstepid_param/documentation.adoc b/entity/CampaignStep_entity/entityfields/predecessorstepid_param/documentation.adoc
new file mode 100644
index 00000000000..ebcd2606b58
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/predecessorstepid_param/documentation.adoc
@@ -0,0 +1 @@
+An optional CAMPAIGNSTEP.PREDECESSOR_ID which is used as presetValue for the predecessor-step-field.
\ No newline at end of file
-- 
GitLab