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