Success messages on bulk actions
- added message for all bulk actions except trash related ones - fixed issue with mailpoet notice and react router
This commit is contained in:
@ -45,6 +45,10 @@ function(
|
|||||||
|
|
||||||
data.action = this.state.action;
|
data.action = this.state.action;
|
||||||
|
|
||||||
|
if(action['onSuccess'] !== undefined) {
|
||||||
|
data.onSuccess = action.onSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
if(data.action) {
|
if(data.action) {
|
||||||
this.props.onBulkAction(selected_ids, data);
|
this.props.onBulkAction(selected_ids, data);
|
||||||
}
|
}
|
||||||
|
@ -340,6 +340,11 @@ define(
|
|||||||
this.setState({ loading: true });
|
this.setState({ loading: true });
|
||||||
|
|
||||||
var data = params || {};
|
var data = params || {};
|
||||||
|
var callback = ((data['onSuccess'] !== undefined)
|
||||||
|
? data['onSuccess']
|
||||||
|
: function() {}
|
||||||
|
);
|
||||||
|
delete data.onSuccess;
|
||||||
|
|
||||||
data.listing = {
|
data.listing = {
|
||||||
offset: 0,
|
offset: 0,
|
||||||
@ -354,8 +359,9 @@ define(
|
|||||||
endpoint: this.props.endpoint,
|
endpoint: this.props.endpoint,
|
||||||
action: 'bulk_action',
|
action: 'bulk_action',
|
||||||
data: data
|
data: data
|
||||||
}).done(function() {
|
}).done(function(response) {
|
||||||
this.getItems();
|
this.getItems();
|
||||||
|
callback(response);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
},
|
},
|
||||||
handleSearch: function(search) {
|
handleSearch: function(search) {
|
||||||
|
@ -121,6 +121,22 @@ define('notice', ['mailpoet', 'jquery'], function(MailPoet, jQuery) {
|
|||||||
// set message
|
// set message
|
||||||
this.setMessage(this.options.message);
|
this.setMessage(this.options.message);
|
||||||
|
|
||||||
|
// position notice
|
||||||
|
this.element.insertAfter(jQuery('h2.title'));
|
||||||
|
|
||||||
|
// set class name
|
||||||
|
switch(this.options.type) {
|
||||||
|
case 'success':
|
||||||
|
this.element.addClass('updated');
|
||||||
|
break;
|
||||||
|
case 'system':
|
||||||
|
this.element.addClass('update-nag');
|
||||||
|
break;
|
||||||
|
case 'error':
|
||||||
|
this.element.addClass('error');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// make the notice appear
|
// make the notice appear
|
||||||
this.element.fadeIn(200);
|
this.element.fadeIn(200);
|
||||||
|
|
||||||
|
@ -77,6 +77,13 @@ define(
|
|||||||
return {
|
return {
|
||||||
segment_id: ~~(jQuery('#move_to_segment').val())
|
segment_id: ~~(jQuery('#move_to_segment').val())
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers were moved to list <strong>%$2s</strong>.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
.replace('%$2s', response.segment)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -96,6 +103,13 @@ define(
|
|||||||
return {
|
return {
|
||||||
segment_id: ~~(jQuery('#add_to_segment').val())
|
segment_id: ~~(jQuery('#add_to_segment').val())
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers were added to list <strong>%$2s</strong>.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
.replace('%$2s', response.segment)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -115,19 +129,45 @@ define(
|
|||||||
return {
|
return {
|
||||||
segment_id: ~~(jQuery('#remove_from_segment').val())
|
segment_id: ~~(jQuery('#remove_from_segment').val())
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers were removed from list <strong>%$2s</strong>.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
.replace('%$2s', response.segment)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'removeFromAllLists',
|
name: 'removeFromAllLists',
|
||||||
label: 'Remove from all lists'
|
label: 'Remove from all lists',
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers were removed from all lists.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
.replace('%$2s', response.segment)
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'confirmUnconfirmed',
|
name: 'confirmUnconfirmed',
|
||||||
label: 'Confirm unconfirmed'
|
label: 'Confirm unconfirmed',
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers have been confirmed.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'trash',
|
name: 'trash',
|
||||||
label: 'Trash'
|
label: 'Trash',
|
||||||
|
onSuccess: function(response) {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
'%$1d subscribers were moved to the trash.'
|
||||||
|
.replace('%$1d', ~~response.subscribers)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -199,6 +199,7 @@ class Subscriber extends Model {
|
|||||||
$segment = Segment::findOne($segment_id);
|
$segment = Segment::findOne($segment_id);
|
||||||
|
|
||||||
if($segment !== false) {
|
if($segment !== false) {
|
||||||
|
$subscribers_count = 0;
|
||||||
$subscribers = $listing->getSelection()->findMany();
|
$subscribers = $listing->getSelection()->findMany();
|
||||||
foreach($subscribers as $subscriber) {
|
foreach($subscribers as $subscriber) {
|
||||||
// remove subscriber from all segments
|
// remove subscriber from all segments
|
||||||
@ -209,8 +210,13 @@ class Subscriber extends Model {
|
|||||||
$association->subscriber_id = $subscriber->id;
|
$association->subscriber_id = $subscriber->id;
|
||||||
$association->segment_id = $segment->id;
|
$association->segment_id = $segment->id;
|
||||||
$association->save();
|
$association->save();
|
||||||
|
|
||||||
|
$subscribers_count++;
|
||||||
}
|
}
|
||||||
return true;
|
return array(
|
||||||
|
'subscribers' => $subscribers_count,
|
||||||
|
'segment' => $segment->name
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -225,7 +231,11 @@ class Subscriber extends Model {
|
|||||||
SubscriberSegment::whereIn('subscriber_id', $subscriber_ids)
|
SubscriberSegment::whereIn('subscriber_id', $subscriber_ids)
|
||||||
->where('segment_id', $segment->id)
|
->where('segment_id', $segment->id)
|
||||||
->deleteMany();
|
->deleteMany();
|
||||||
return true;
|
|
||||||
|
return array(
|
||||||
|
'subscribers' => count($subscriber_ids),
|
||||||
|
'segment' => $segment->name
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -242,7 +252,10 @@ class Subscriber extends Model {
|
|||||||
SubscriberSegment::whereIn('subscriber_id', $subscriber_ids)
|
SubscriberSegment::whereIn('subscriber_id', $subscriber_ids)
|
||||||
->whereIn('segment_id', $segment_ids)
|
->whereIn('segment_id', $segment_ids)
|
||||||
->deleteMany();
|
->deleteMany();
|
||||||
return true;
|
|
||||||
|
return array(
|
||||||
|
'subscribers' => count($subscriber_ids)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -254,11 +267,17 @@ class Subscriber extends Model {
|
|||||||
->findMany();
|
->findMany();
|
||||||
|
|
||||||
if(!empty($subscribers)) {
|
if(!empty($subscribers)) {
|
||||||
|
$subscribers_count = 0;
|
||||||
foreach($subscribers as $subscriber) {
|
foreach($subscribers as $subscriber) {
|
||||||
$subscriber->set('status', 'subscribed');
|
$subscriber->set('status', 'subscribed');
|
||||||
$subscriber->save();
|
if($subscriber->save() === true) {
|
||||||
|
$subscribers_count++;
|
||||||
}
|
}
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'subscribers' => $subscribers_count
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -283,15 +302,21 @@ class Subscriber extends Model {
|
|||||||
$segment = Segment::findOne($segment_id);
|
$segment = Segment::findOne($segment_id);
|
||||||
|
|
||||||
if($segment !== false) {
|
if($segment !== false) {
|
||||||
|
$subscribers_count = 0;
|
||||||
$subscribers = $listing->getSelection()->findMany();
|
$subscribers = $listing->getSelection()->findMany();
|
||||||
foreach($subscribers as $subscriber) {
|
foreach($subscribers as $subscriber) {
|
||||||
// create relation with segment
|
// create relation with segment
|
||||||
$association = \MailPoet\Models\SubscriberSegment::create();
|
$association = \MailPoet\Models\SubscriberSegment::create();
|
||||||
$association->subscriber_id = $subscriber->id;
|
$association->subscriber_id = $subscriber->id;
|
||||||
$association->segment_id = $segment->id;
|
$association->segment_id = $segment->id;
|
||||||
$association->save();
|
if($association->save()) {
|
||||||
|
$subscribers_count++;
|
||||||
}
|
}
|
||||||
return true;
|
}
|
||||||
|
return array(
|
||||||
|
'subscribers' => $subscribers_count,
|
||||||
|
'segment' => $segment->name
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -302,10 +327,15 @@ class Subscriber extends Model {
|
|||||||
$subscribers = $listing->getSelection()->findMany();
|
$subscribers = $listing->getSelection()->findMany();
|
||||||
|
|
||||||
if(!empty($subscribers)) {
|
if(!empty($subscribers)) {
|
||||||
|
$subscribers_count = 0;
|
||||||
foreach($subscribers as $subscriber) {
|
foreach($subscribers as $subscriber) {
|
||||||
$subscriber->delete();
|
if($subscriber->delete()) {
|
||||||
|
$subscribers_count++;
|
||||||
}
|
}
|
||||||
return true;
|
}
|
||||||
|
return array(
|
||||||
|
'subscribers' => $subscribers_count
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@ -313,7 +343,11 @@ class Subscriber extends Model {
|
|||||||
$subscribers = $listing->getSelection()->findResultSet();
|
$subscribers = $listing->getSelection()->findResultSet();
|
||||||
if(!empty($subscribers)) {
|
if(!empty($subscribers)) {
|
||||||
$subscribers->set_expr('deleted_at', 'NOW()');
|
$subscribers->set_expr('deleted_at', 'NOW()');
|
||||||
return $subscribers->save();
|
$subscribers->save();
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'subscribers' => $subscribers->count()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<!-- system notices -->
|
<!-- system notices -->
|
||||||
<div id="mailpoet_notice_system" class="mailpoet_notice update-nag" style="display:none;"></div>
|
<div id="mailpoet_notice_system" class="mailpoet_notice" style="display:none;"></div>
|
||||||
<!-- main container -->
|
<!-- main container -->
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<!-- notices -->
|
<!-- notices -->
|
||||||
<div id="mailpoet_notice_error" class="mailpoet_notice error" style="display:none;"></div>
|
<div id="mailpoet_notice_error" class="mailpoet_notice" style="display:none;"></div>
|
||||||
<div id="mailpoet_notice_success" class="mailpoet_notice updated" style="display:none;"></div>
|
<div id="mailpoet_notice_success" class="mailpoet_notice" style="display:none;"></div>
|
||||||
|
|
||||||
<!-- title block -->
|
<!-- title block -->
|
||||||
<% block title %><% endblock %>
|
<% block title %><% endblock %>
|
||||||
|
Reference in New Issue
Block a user