added last bulk actions messages
This commit is contained in:
@@ -308,7 +308,13 @@ define(
|
||||
endpoint: this.props.endpoint,
|
||||
action: 'restore',
|
||||
data: id
|
||||
}).done(function() {
|
||||
}).done(function(response) {
|
||||
if(
|
||||
this.props.messages !== undefined
|
||||
&& this.props.messages['onRestore'] !== undefined
|
||||
) {
|
||||
this.props.messages.onRestore(response);
|
||||
}
|
||||
this.getItems();
|
||||
}.bind(this));
|
||||
},
|
||||
@@ -325,7 +331,23 @@ define(
|
||||
id: id,
|
||||
confirm: confirm
|
||||
}
|
||||
}).done(function() {
|
||||
}).done(function(response) {
|
||||
if(confirm === true) {
|
||||
if(
|
||||
this.props.messages !== undefined
|
||||
&& this.props.messages['onConfirmDelete'] !== undefined
|
||||
) {
|
||||
this.props.messages.onConfirmDelete(response);
|
||||
}
|
||||
} else {
|
||||
if(
|
||||
this.props.messages !== undefined
|
||||
&& this.props.messages['onDelete'] !== undefined
|
||||
) {
|
||||
this.props.messages.onDelete(response);
|
||||
}
|
||||
}
|
||||
|
||||
this.getItems();
|
||||
}.bind(this));
|
||||
},
|
||||
@@ -485,11 +507,13 @@ define(
|
||||
bulk_actions = [
|
||||
{
|
||||
name: 'restore',
|
||||
label: 'Restore'
|
||||
label: 'Restore',
|
||||
onSuccess: this.props.messages.onRestore
|
||||
},
|
||||
{
|
||||
name: 'trash',
|
||||
label: 'Delete permanently',
|
||||
onSuccess: this.props.messages.onConfirmDelete,
|
||||
getData: function() {
|
||||
return { confirm: true };
|
||||
}
|
||||
|
@@ -59,6 +59,63 @@ define(
|
||||
},
|
||||
];
|
||||
|
||||
var messages = {
|
||||
onDelete: function(response) {
|
||||
var count = ~~response.subscribers;
|
||||
var message = null;
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 subscriber was moved to the trash.'
|
||||
).replace('%$1d', count);
|
||||
} else if(count > 1) {
|
||||
message = (
|
||||
'%$1d subscribers were moved to the trash.'
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
|
||||
if(message !== null) {
|
||||
MailPoet.Notice.success(message);
|
||||
}
|
||||
},
|
||||
onConfirmDelete: function(response) {
|
||||
var count = ~~response.subscribers;
|
||||
var message = null;
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 subscriber was permanently deleted.'
|
||||
).replace('%$1d', count);
|
||||
} else if(count > 1) {
|
||||
message = (
|
||||
'%$1d subscribers were permanently deleted.'
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
|
||||
if(message !== null) {
|
||||
MailPoet.Notice.success(message);
|
||||
}
|
||||
},
|
||||
onRestore: function(response) {
|
||||
var count = ~~response.subscribers;
|
||||
var message = null;
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 subscriber has been restored from the trash.'
|
||||
).replace('%$1d', count);
|
||||
} else if(count > 1) {
|
||||
message = (
|
||||
'%$1d subscribers have been restored from the trash.'
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
|
||||
if(message !== null) {
|
||||
MailPoet.Notice.success(message);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var bulk_actions = [
|
||||
{
|
||||
name: 'moveToList',
|
||||
@@ -162,12 +219,12 @@ define(
|
||||
{
|
||||
name: 'trash',
|
||||
label: 'Trash',
|
||||
onSuccess: function(response) {
|
||||
MailPoet.Notice.success(
|
||||
'%$1d subscribers were moved to the trash.'
|
||||
.replace('%$1d', ~~response.subscribers)
|
||||
);
|
||||
}
|
||||
getData: function() {
|
||||
return {
|
||||
confirm: false
|
||||
}
|
||||
},
|
||||
onSuccess: messages.onDelete
|
||||
}
|
||||
];
|
||||
|
||||
@@ -201,8 +258,6 @@ define(
|
||||
return segment.name;
|
||||
}).join(', ');
|
||||
|
||||
|
||||
|
||||
var row_actions = false;
|
||||
|
||||
return (
|
||||
@@ -245,7 +300,9 @@ define(
|
||||
endpoint="subscribers"
|
||||
onRenderItem={ this.renderItem }
|
||||
columns={ columns }
|
||||
bulk_actions={ bulk_actions } />
|
||||
bulk_actions={ bulk_actions }
|
||||
messages={ messages }
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@
|
||||
"vlucas/phpdotenv": "*",
|
||||
"umpirsky/twig-gettext-extractor": "1.1.*",
|
||||
"raveren/kint": "^1.0"
|
||||
},
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"MailPoet\\": "lib/",
|
||||
|
@@ -71,10 +71,17 @@ class Handler {
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
function count() {
|
||||
return (int)$this->model->count();
|
||||
}
|
||||
|
||||
function getSelectionIds() {
|
||||
$models = $this->getSelection()->select('id')->findMany();
|
||||
$models = $this->getSelection()
|
||||
->select('id')
|
||||
->findArray();
|
||||
|
||||
return array_map(function($model) {
|
||||
return (int)$model->id;
|
||||
return (int)$model['id'];
|
||||
}, $models);
|
||||
}
|
||||
|
||||
|
@@ -322,9 +322,10 @@ class Subscriber extends Model {
|
||||
}
|
||||
|
||||
static function trash($listing, $data = array()) {
|
||||
if(isset($data['confirm']) && (bool)$data['confirm'] === true) {
|
||||
$confirm_delete = filter_var($data['confirm'], FILTER_VALIDATE_BOOLEAN);
|
||||
if($confirm_delete) {
|
||||
// delete relations with all segments
|
||||
$subscribers = $listing->getSelection()->findMany();
|
||||
$subscribers = $listing->getSelection()->findResultSet();
|
||||
|
||||
if(!empty($subscribers)) {
|
||||
$subscribers_count = 0;
|
||||
@@ -340,25 +341,25 @@ class Subscriber extends Model {
|
||||
return false;
|
||||
} else {
|
||||
// soft delete
|
||||
$subscribers = $listing->getSelection()->findResultSet();
|
||||
if(!empty($subscribers)) {
|
||||
$subscribers->set_expr('deleted_at', 'NOW()');
|
||||
$subscribers->save();
|
||||
$subscribers = $listing->getSelection()
|
||||
->findResultSet()
|
||||
->set_expr('deleted_at', 'NOW()')
|
||||
->save();
|
||||
|
||||
return array(
|
||||
'subscribers' => $subscribers->count()
|
||||
);
|
||||
}
|
||||
return false;
|
||||
return array(
|
||||
'subscribers' => $subscribers->count()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static function restore($listing, $data = array()) {
|
||||
$subscribers = $listing->getSelection()->findResultSet();
|
||||
if(!empty($subscribers)) {
|
||||
$subscribers->set_expr('deleted_at', 'NULL');
|
||||
return $subscribers->save();
|
||||
}
|
||||
return false;
|
||||
$subscribers = $listing->getSelection()
|
||||
->findResultSet()
|
||||
->set_expr('deleted_at', 'NULL')
|
||||
->save();
|
||||
|
||||
return array(
|
||||
'subscribers' => $subscribers->count()
|
||||
);
|
||||
}
|
||||
}
|
@@ -57,7 +57,7 @@ class Subscribers {
|
||||
$subscriber = Subscriber::findOne($id);
|
||||
if($subscriber !== false) {
|
||||
$subscriber->set_expr('deleted_at', 'NULL');
|
||||
$result = $subscriber->save();
|
||||
$result = array('subscribers' => (int)$subscriber->save());
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
@@ -66,12 +66,14 @@ class Subscribers {
|
||||
|
||||
function delete($data = array()) {
|
||||
$subscriber = Subscriber::findOne($data['id']);
|
||||
$confirm_delete = filter_var($data['confirm'], FILTER_VALIDATE_BOOLEAN);
|
||||
if($subscriber !== false) {
|
||||
if(isset($data['confirm']) && (bool)$data['confirm'] === true) {
|
||||
$result = $subscriber->delete();
|
||||
if($confirm_delete) {
|
||||
$subscriber->delete();
|
||||
$result = array('subscribers' => 1);
|
||||
} else {
|
||||
$subscriber->set_expr('deleted_at', 'NOW()');
|
||||
$result = $subscriber->save();
|
||||
$result = array('subscribers' => (int)$subscriber->save());
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
|
@@ -9,7 +9,7 @@ class ListingCest {
|
||||
|
||||
function itShouldReturnListingData() {
|
||||
$listing = new Listing\Handler(
|
||||
\Model::factory('\MailPoet\Models\Subscriber'),
|
||||
'\MailPoet\Models\Subscriber',
|
||||
array()
|
||||
);
|
||||
|
||||
@@ -27,7 +27,7 @@ class ListingCest {
|
||||
$I->generateSubscribers(30, array('status' => 'subscribed'));
|
||||
|
||||
$listing = new Listing\Handler(
|
||||
\Model::factory('\MailPoet\Models\Subscriber'),
|
||||
'\MailPoet\Models\Subscriber',
|
||||
array('group' => 'subscribed')
|
||||
);
|
||||
$result = $listing->get();
|
||||
@@ -42,7 +42,7 @@ class ListingCest {
|
||||
));
|
||||
|
||||
$listing = new Listing\Handler(
|
||||
\Model::factory('\MailPoet\Models\Subscriber'),
|
||||
'\MailPoet\Models\Subscriber',
|
||||
array(
|
||||
'search' => 'j.d'
|
||||
)
|
||||
|
Reference in New Issue
Block a user