Add a Premium page link to bounced subscribers listing [MAILPOET-887]
This commit is contained in:
@@ -198,6 +198,17 @@ const ListingItem = React.createClass({
|
|||||||
const ListingItems = React.createClass({
|
const ListingItems = React.createClass({
|
||||||
render: function() {
|
render: function() {
|
||||||
if (this.props.items.length === 0) {
|
if (this.props.items.length === 0) {
|
||||||
|
let message;
|
||||||
|
if (this.props.loading === true) {
|
||||||
|
message = (this.props.messages.onLoadingItems
|
||||||
|
&& this.props.messages.onLoadingItems(this.props.group))
|
||||||
|
|| MailPoet.I18n.t('loadingItems');
|
||||||
|
} else {
|
||||||
|
message = (this.props.messages.onNoItemsFound
|
||||||
|
&& this.props.messages.onNoItemsFound(this.props.group))
|
||||||
|
|| MailPoet.I18n.t('noItemsFound');
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr className="no-items">
|
<tr className="no-items">
|
||||||
@@ -207,11 +218,7 @@ const ListingItems = React.createClass({
|
|||||||
+ (this.props.is_selectable ? 1 : 0)
|
+ (this.props.is_selectable ? 1 : 0)
|
||||||
}
|
}
|
||||||
className="colspanchange">
|
className="colspanchange">
|
||||||
{
|
{message}
|
||||||
(this.props.loading === true)
|
|
||||||
? (this.props.messages.onLoadingItems || MailPoet.I18n.t('loadingItems'))
|
|
||||||
: (this.props.messages.onNoItemsFound || MailPoet.I18n.t('noItemsFound'))
|
|
||||||
}
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@@ -81,6 +81,22 @@ const messages = {
|
|||||||
).replace('%$1d', count.toLocaleString());
|
).replace('%$1d', count.toLocaleString());
|
||||||
}
|
}
|
||||||
MailPoet.Notice.success(message);
|
MailPoet.Notice.success(message);
|
||||||
|
},
|
||||||
|
onNoItemsFound: (group) => {
|
||||||
|
if (group === 'bounced' && !mailpoet_premium_active) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<p>{MailPoet.I18n.t('bouncedSubscribersHelp')}</p>
|
||||||
|
<p>
|
||||||
|
<a href={ `admin.php?page=mailpoet-premium` } className="button-primary">
|
||||||
|
{MailPoet.I18n.t('bouncedSubscribersPremiumButtonText')}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// use default message
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -378,6 +378,8 @@ class Menu {
|
|||||||
$data['date_formats'] = Block\Date::getDateFormats();
|
$data['date_formats'] = Block\Date::getDateFormats();
|
||||||
$data['month_names'] = Block\Date::getMonthNames();
|
$data['month_names'] = Block\Date::getMonthNames();
|
||||||
|
|
||||||
|
$data['premium_plugin_active'] = License::getLicense();
|
||||||
|
|
||||||
$this->displayPage('subscribers/subscribers.html', $data);
|
$this->displayPage('subscribers/subscribers.html', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
||||||
var mailpoet_month_names = <%= json_encode(month_names) %>;
|
var mailpoet_month_names = <%= json_encode(month_names) %>;
|
||||||
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
|
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
|
||||||
|
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
|
||||||
</script>
|
</script>
|
||||||
<% endblock %>
|
<% endblock %>
|
||||||
|
|
||||||
@@ -18,6 +19,8 @@
|
|||||||
'searchLabel': __('Search'),
|
'searchLabel': __('Search'),
|
||||||
'loadingItems': __('Loading subscribers...'),
|
'loadingItems': __('Loading subscribers...'),
|
||||||
'noItemsFound': __('No subscribers were found.'),
|
'noItemsFound': __('No subscribers were found.'),
|
||||||
|
'bouncedSubscribersHelp': __("Emails that are invalid or don't exist anymore are called \"bounced addresses\". It's a good practice not to send emails to bounced addresses to keep a good reputation with spam filters. Send your emails with MailPoet and we'll automatically ensure to keep a list of bounced addresses without any setup."),
|
||||||
|
'bouncedSubscribersPremiumButtonText': __('Check out the Premium'),
|
||||||
'selectAllLabel': __('All subscribers on this page are selected.'),
|
'selectAllLabel': __('All subscribers on this page are selected.'),
|
||||||
'selectedAllLabel': __('All %d subscribers are selected.'),
|
'selectedAllLabel': __('All %d subscribers are selected.'),
|
||||||
'selectAllLink': __('Select all subscribers on all pages.'),
|
'selectAllLink': __('Select all subscribers on all pages.'),
|
||||||
|
Reference in New Issue
Block a user