From 3a264f872e80ae2f75e422e92773ef8a49b7a6f7 Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Tue, 30 Jul 2019 10:55:20 +0200
Subject: [PATCH] Send bulk mail dialog

---
 entity/BulkMail_entity/BulkMail_entity.aod         |  1 +
 .../entityfields/sendmail/onActionProcess.js       | 14 ++++++++++----
 .../entityfields/sendmail/tooltipProcess.js        |  4 ++++
 entity/SerialLetter_entity/SerialLetter_entity.aod |  7 +++++++
 .../entityfields/openadminview/onActionProcess.js  |  6 ++++++
 .../entityfields/openadminview/stateProcess.js     |  4 ++++
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod     |  4 ++++
 .../BulkMailPreview_view/BulkMailPreview_view.aod  |  1 +
 process/Email_lib/process.js                       | 12 +++++++++---
 9 files changed, 46 insertions(+), 7 deletions(-)
 create mode 100644 entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js
 create mode 100644 entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js
 create mode 100644 entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js

diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index 04cb781052..eb2d7d4974 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -94,6 +94,7 @@
       <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
       <iconId>VAADIN:PAPERPLANE</iconId>
       <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
+      <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityField>
       <name>ICON</name>
diff --git a/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js b/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
index 84cc2e975f..4a316db7db 100644
--- a/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
+++ b/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
@@ -1,3 +1,5 @@
+import("system.translate");
+import("system.question");
 import("Sql_lib");
 import("system.neon");
 import("system.vars");
@@ -5,7 +7,11 @@ import("Bulkmail_lib");
 import("system.db");
 import("KeywordRegistry_basic");
 
-db.updateData("BULKMAIL", ["STATUS"], null, [$KeywordRegistry.bulkMailStatus$beingSent()], 
-    SqlCondition.equals("BULKMAIL.BULKMAILID", vars.get("$field.BULKMAILID"), "1=2"));
-neon.refreshAll();
-BulkMailUtils.sendBulkMailOnServer(vars.get("$field.BULKMAILID"));
\ No newline at end of file
+var send = question.askYesNo(translate.text("Bulk mail"), translate.text("Should the mail be sent now?"), false);
+if (send)
+{
+    db.updateData("BULKMAIL", ["STATUS"], null, [$KeywordRegistry.bulkMailStatus$beingSent()], 
+        SqlCondition.equals("BULKMAIL.BULKMAILID", vars.get("$field.BULKMAILID"), "1=2"));
+    neon.refreshAll();
+    BulkMailUtils.sendBulkMailOnServer(vars.get("$field.BULKMAILID"));
+}
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js b/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js
new file mode 100644
index 0000000000..264f6bfd16
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Send"));
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod
index 425c91fd3f..e495082159 100644
--- a/entity/SerialLetter_entity/SerialLetter_entity.aod
+++ b/entity/SerialLetter_entity/SerialLetter_entity.aod
@@ -86,6 +86,13 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js b/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js
new file mode 100644
index 0000000000..3987f54cc3
--- /dev/null
+++ b/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("Context_lib");
+
+AdminViewUtils.open("SERIALLETTERID", [
+    ["DOCUMENTTEMPLATE_ID", vars.get("$field.DOCUMENTTEMPLATE_ID")]
+]);
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js b/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js
new file mode 100644
index 0000000000..38f2298db7
--- /dev/null
+++ b/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js
@@ -0,0 +1,4 @@
+import("Context_lib");
+import("system.result");
+
+result.string(AdminViewUtils.getActionState());
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 5c5568708b..cba241e1c3 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -82,6 +82,10 @@
       <key>Categorization</key>
       <value>Kategorisierung</value>
     </entry>
+    <entry>
+      <key>Should the mail be sent now?</key>
+      <value>Soll die Mail jetzt versendet werden?</value>
+    </entry>
     <entry>
       <key>Names</key>
       <value>Namen</value>
diff --git a/neonView/BulkMailPreview_view/BulkMailPreview_view.aod b/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
index f6f68c3a24..1e7cc7611b 100644
--- a/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
+++ b/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
@@ -14,6 +14,7 @@
       <iconField>ICON</iconField>
       <titleField>NAME</titleField>
       <descriptionField>STATUS</descriptionField>
+      <favoriteAction1>sendMail</favoriteAction1>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index 8de0df67a0..b26904cb87 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -210,7 +210,7 @@ Email.prototype.getEML = function()
  * 
  * @return {boolean} true, if the mail was sent sucessfully
  */
-Email.prototype.send = function ()
+Email.prototype.send = function (pUser)
 {
     var ENCODING = "UTF-8";
     var mailId;
@@ -227,7 +227,10 @@ Email.prototype.send = function ()
             util.sleep(1500);
             mailId = mail.newMail();
         }
-
+        
+        if (this.sender)
+            mail.setSender(mailId, this.sender);
+        
         if (this.toRecipients.length)
             mail.addRecipients(mailId, mail.RECIPIENT_TO, this.toRecipients);
 
@@ -245,7 +248,10 @@ Email.prototype.send = function ()
         else
             mail.addText(mailId, "", "text/html", ENCODING, null);
     
-        mail.sendMail(mailId);
+        if (pUser)
+            mail.sendMailAs(pUser, mailId);
+        else
+            mail.sendMail(mailId);
         return true;
     }
     catch (ex)
-- 
GitLab