From 3ca7d0a29fdf8ea9f854dc5200e6a53f8959a982 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Thu, 21 Mar 2019 16:17:45 +0100 Subject: [PATCH] FEAT #9692 Email Express --- .../class/class_lists_Abstract.php | 7 +++---- src/app/email/controllers/EmailController.php | 18 +++++++++++++++--- src/app/email/scripts/sendEmail.php | 2 ++ .../sendmail-administration.component.ts | 4 ++-- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/apps/maarch_entreprise/class/class_lists_Abstract.php b/apps/maarch_entreprise/class/class_lists_Abstract.php index 3ce38e3ca51..20229cb3310 100755 --- a/apps/maarch_entreprise/class/class_lists_Abstract.php +++ b/apps/maarch_entreprise/class/class_lists_Abstract.php @@ -28,7 +28,7 @@ * * @file * - * @author Yves Christian Kpakpo <dev@maarch.org> + * @author <dev@maarch.org> * @date $date$ * * @version $Revision$ @@ -2152,8 +2152,7 @@ abstract class lists_Abstract extends Database if ($sortColumn[$actualColumn] === null) { $columnStyle = ''; } else { - (strpos($this->orderField, $sortColumn[$actualColumn]) !== false) ? - $columnStyle = ' style="background-image: url(static.php?filename=black_0.1.png);"' : $columnStyle = ''; + $columnStyle = (is_string($sortColumn[$actualColumn]) && strpos($this->orderField, $sortColumn[$actualColumn]) !== false) ? ' style="background-image: url(static.php?filename=black_0.1.png);"' : ''; } //column @@ -3351,7 +3350,7 @@ abstract class lists_Abstract extends Database } //Different background on ordered column - isset($resultTheLine[$column]['order']) && (strpos($this->orderField, $resultTheLine[$column]['order']) !== false) ? + isset($resultTheLine[$column]['order']) && is_string($resultTheLine[$column]['order']) && (strpos($this->orderField, $resultTheLine[$column]['order']) !== false) ? $columnStyle = ' style="background-image: url(static.php?filename=black_0.1.png);"' : $columnStyle = ''; //If there is action on line click diff --git a/src/app/email/controllers/EmailController.php b/src/app/email/controllers/EmailController.php index 9f2abb5bcb7..fcae66f3387 100644 --- a/src/app/email/controllers/EmailController.php +++ b/src/app/email/controllers/EmailController.php @@ -18,6 +18,7 @@ use Attachment\controllers\AttachmentController; use Attachment\models\AttachmentModel; use Configuration\models\ConfigurationModel; use Email\models\EmailModel; +use Email\scripts\EmailScript; use Entity\models\EntityModel; use Group\models\ServiceModel; use History\controllers\HistoryController; @@ -49,7 +50,8 @@ class EmailController $isSent = EmailController::createEmail(['userId' => $user['id'], 'data' => $body]); if (!empty($isSent['errors'])) { - return $response->withStatus($isSent['code'])->withJson(['errors' => $isSent['errors']]); + $httpCode = empty($isSent['code']) ? 400 : $isSent['code']; + return $response->withStatus($httpCode)->withJson(['errors' => $isSent['errors']]); } return $response->withStatus(204); @@ -90,6 +92,7 @@ class EmailController 'info' => _EMAIL_ADDED ]); + $isSent = ['success' => 'success']; if ($args['data']['status'] != 'DRAFT') { $customId = CoreConfigModel::getCustomId(); if (empty($customId)) { @@ -97,10 +100,19 @@ class EmailController } $encryptKey = CoreConfigModel::getEncryptKey(); $options = empty($args['options']) ? '' : serialize($args['options']); - exec("php src/app/email/scripts/sendEmail.php {$customId} {$id} {$args['userId']} '{$encryptKey}' '{$options}' > /dev/null &"); + if ($args['data']['status'] == 'EXPRESS') { + $isSent = EmailController::sendEmail(['emailId' => $id, 'userId' => $args['userId']]); + if (!empty($isSent['success'])) { + EmailModel::update(['set' => ['status' => 'SENT', 'send_date' => 'CURRENT_TIMESTAMP'], 'where' => ['id = ?'], 'data' => [$id]]); + } else { + EmailModel::update(['set' => ['status' => 'ERROR'], 'where' => ['id = ?'], 'data' => [$id]]); + } + } else { + exec("php src/app/email/scripts/sendEmail.php {$customId} {$id} {$args['userId']} '{$encryptKey}' '{$options}' > /dev/null &"); + } } - return true; + return $isSent; } public static function getById(array $args) diff --git a/src/app/email/scripts/sendEmail.php b/src/app/email/scripts/sendEmail.php index 17870fcdaf4..dd191522f27 100644 --- a/src/app/email/scripts/sendEmail.php +++ b/src/app/email/scripts/sendEmail.php @@ -53,5 +53,7 @@ class EmailScript if (!empty($args['options']['acknowledgementReceiptId']) && !empty($isSent['success'])) { AcknowledgementReceiptModel::update(['set' => ['send_date' => 'CURRENT_TIMESTAMP'], 'where' => ['id = ?'], 'data' => [$args['options']['acknowledgementReceiptId']]]); } + + return $isSent; } } diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.ts b/src/frontend/app/administration/sendmail/sendmail-administration.component.ts index 3dfb6808ccb..38db14526b9 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.ts +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.ts @@ -161,10 +161,10 @@ export class SendmailAdministrationComponent implements OnInit { "sender": { "email": this.currentUser.mail }, "recipients": [this.recipientTest], "object": "[" + this.lang.doNotReply +"] " + this.lang.emailSendTest, - "status": "SENDMAILTEST", + "status": "EXPRESS", "body": this.lang.emailSendTest, "isHtml": false - } + }; this.emailSendLoading = true; this.http.post('../../rest/emails', email) -- GitLab