diff --git a/assets/js/src/newsletters/listings/welcome.jsx b/assets/js/src/newsletters/listings/welcome.jsx index 4bef6725ca..e008d85fd7 100644 --- a/assets/js/src/newsletters/listings/welcome.jsx +++ b/assets/js/src/newsletters/listings/welcome.jsx @@ -193,10 +193,24 @@ const NewsletterListWelcome = createReactClass({ // eslint-disable-line react/pr }, renderStatus: function renderStatus(newsletter) { - const totalSent = (parseInt(newsletter.total_sent, 10)) ? - MailPoet.I18n.t('sentToXSubscribers') - .replace('%$1d', newsletter.total_sent.toLocaleString()) : - MailPoet.I18n.t('notSentYet'); + let totalSentMessage = MailPoet.I18n.t('notSentYet'); + const totalSent = (parseInt(newsletter.total_sent, 10)); + if (totalSent === 1) { + totalSentMessage = MailPoet.I18n.t('sentToXSubscribers'); + } + if (totalSent > 1) { + totalSentMessage = MailPoet.I18n.t('sentToXSubscribersPlural') + .replace('%$1d', newsletter.total_sent.toLocaleString()); + } + let totalScheduledMessage = ''; + const totalScheduled = (parseInt(newsletter.total_scheduled, 10)); + if (totalScheduled === 1) { + totalScheduledMessage = MailPoet.I18n.t('scheduledToXSubscribers'); + } + if (totalScheduled > 1) { + totalScheduledMessage = MailPoet.I18n.t('scheduledToXSubscribersPlural') + .replace('%$1d', newsletter.total_sent.toLocaleString()); + } return (
@@ -210,7 +224,11 @@ const NewsletterListWelcome = createReactClass({ // eslint-disable-line react/pr

-

{ totalSent }

+

+ { totalSentMessage } + { totalScheduledMessage !== '' ?
: '' } + { totalScheduledMessage } +

); }, diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index c6b283d980..3642e610a7 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -396,6 +396,7 @@ class Newsletters extends APIEndpoint { $newsletter ->withOptions() ->withTotalSent() + ->withScheduledToBeSent() ->withStatistics(); } else if($newsletter->type === Newsletter::TYPE_NOTIFICATION) { $newsletter diff --git a/lib/Models/Newsletter.php b/lib/Models/Newsletter.php index bb10035d85..1320a46f87 100644 --- a/lib/Models/Newsletter.php +++ b/lib/Models/Newsletter.php @@ -514,6 +514,13 @@ class Newsletter extends Model { return $this; } + function withScheduledToBeSent() { + $this->total_scheduled = (int)SendingQueue::findTaskByNewsletterId($this->id) + ->where('tasks.status', SendingQueue::STATUS_SCHEDULED) + ->count(); + return $this; + } + function withStatistics() { $statistics = $this->getStatistics(); $this->statistics = $statistics; diff --git a/views/newsletters.html b/views/newsletters.html index e25c2258e8..809562f9e1 100644 --- a/views/newsletters.html +++ b/views/newsletters.html @@ -104,7 +104,10 @@ 'active': __('Active'), 'inactive': __('Not Active'), 'newsletterQueueCompleted': __('Sent to %$1d of %$2d'), - 'sentToXSubscribers': __('Sent to %$1d subscribers'), + 'sentToXSubscribers': _x('Sent to 1 subscriber', 'inform the number of emails already sent'), + 'sentToXSubscribersPlural': _x('Sent to %$1d subscribers', 'inform the number of emails already sent; always plural'), + 'scheduledToXSubscribers': _x('1 scheduled to be sent', 'inform the number of emails planned to be sent'), + 'scheduledToXSubscribersPlural': _x('%$1d scheduled to be sent', 'inform the number of emails planned to be sent; always plural'), 'resume': __('Resume'), 'pause': __('Pause'), 'paused': __('Paused'),