diff --git a/assets/js/src/newsletters/listings/notification.jsx b/assets/js/src/newsletters/listings/notification.jsx
index aaa83c2959..6ba23048c9 100644
--- a/assets/js/src/newsletters/listings/notification.jsx
+++ b/assets/js/src/newsletters/listings/notification.jsx
@@ -252,6 +252,20 @@ const NewsletterListNotification = React.createClass({
);
},
+ renderHistoryLink: function(newsletter) {
+ const childrenCount = ~~(newsletter.children_count);
+ if (childrenCount === 0) {
+ return (
+ MailPoet.I18n.t('notSentYet')
+ );
+ } else {
+ return (
+ { MailPoet.I18n.t('viewHistory') }
+ );
+ }
+ },
renderItem: function(newsletter, actions) {
const rowClasses = classNames(
'manage-column',
@@ -277,9 +291,7 @@ const NewsletterListNotification = React.createClass({
{ this.renderSettings(newsletter) }
- { MailPoet.I18n.t('viewHistory') }
+ { this.renderHistoryLink(newsletter) }
|
{ MailPoet.Date.format(newsletter.updated_at) }
diff --git a/lib/Models/Newsletter.php b/lib/Models/Newsletter.php
index b39ee0e868..220ece6e31 100644
--- a/lib/Models/Newsletter.php
+++ b/lib/Models/Newsletter.php
@@ -123,7 +123,8 @@ class Newsletter extends Model {
'parent_id' => $this->id,
'type' => self::TYPE_NOTIFICATION_HISTORY,
'status' => self::STATUS_SENDING
- ));
+ )
+ );
$notification_history = self::create();
$notification_history->hydrate($data);
@@ -163,6 +164,14 @@ class Newsletter extends Model {
return parent::delete();
}
+ function children() {
+ return $this->has_many(
+ __NAMESPACE__.'\Newsletter',
+ 'parent_id',
+ 'id'
+ );
+ }
+
function segments() {
return $this->has_many_through(
__NAMESPACE__.'\Segment',
@@ -177,6 +186,11 @@ class Newsletter extends Model {
return $this;
}
+ function withChildrenCount() {
+ $this->children_count = $this->children()->count();
+ return $this;
+ }
+
function options() {
return $this->has_many_through(
__NAMESPACE__.'\NewsletterOptionField',
diff --git a/lib/Router/Newsletters.php b/lib/Router/Newsletters.php
index 5af1a7a278..9e6b958358 100644
--- a/lib/Router/Newsletters.php
+++ b/lib/Router/Newsletters.php
@@ -267,7 +267,8 @@ class Newsletters {
} else if($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
$newsletter
->withOptions()
- ->withSegments();
+ ->withSegments()
+ ->withChildrenCount();
} else if($newsletter->type === Newsletter::TYPE_NOTIFICATION_HISTORY) {
$newsletter
->withSegments()
|