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'),