Newsletters listing

- fixed listing actions on newsletters
This commit is contained in:
Jonathan Labreuille
2015-11-18 14:04:34 +01:00
parent fdbd1245e3
commit 28c61fca0b
5 changed files with 48 additions and 24 deletions

View File

@@ -14,9 +14,17 @@ class Newsletter extends Model {
if(is_string($this->deleted_at) && strlen(trim($this->deleted_at)) === 0) { if(is_string($this->deleted_at) && strlen(trim($this->deleted_at)) === 0) {
$this->set_expr('deleted_at', 'NULL'); $this->set_expr('deleted_at', 'NULL');
} }
return parent::save(); return parent::save();
} }
function delete() {
// delete all relations to segments
NewsletterSegment::where('newsletter_id', $this->id)->deleteMany();
return parent::delete();
}
function segments() { function segments() {
return $this->has_many_through( return $this->has_many_through(
__NAMESPACE__.'\Segment', __NAMESPACE__.'\Segment',
@@ -126,8 +134,8 @@ class Newsletter extends Model {
static function createOrUpdate($data = array()) { static function createOrUpdate($data = array()) {
$newsletter = false; $newsletter = false;
if(isset($data['id']) && (int) $data['id'] > 0) { if(isset($data['id']) && (int)$data['id'] > 0) {
$newsletter = self::findOne((int) $data['id']); $newsletter = self::findOne((int)$data['id']);
} }
if($newsletter === false) { if($newsletter === false) {

View File

@@ -17,7 +17,7 @@ class Segment extends Model {
function delete() { function delete() {
// delete all relations to subscribers // delete all relations to subscribers
SubscriberSegment::where('segment_id', $this->id)->deleteMany(); SubscriberSegment::where('segment_id', $this->id)->deleteMany();
parent::delete(); return parent::delete();
} }
function newsletters() { function newsletters() {

View File

@@ -101,31 +101,51 @@ class Newsletters {
)); ));
} }
function delete($data = array()) { function restore($id) {
$newsletter = newsletter::findOne($data['id']); $result = false;
$confirm_delete = filter_var($data['confirm'], FILTER_VALIDATE_BOOLEAN);
$newsletter = Newsletter::findOne($id);
if($newsletter !== false) { if($newsletter !== false) {
if($confirm_delete) { $result = $newsletter->restore();
$newsletter->delete();
$result = array('newsletters' => 1);
} else {
$newsletter->set_expr('deleted_at', 'NOW()');
$result = array('newsletters' => (int)$newsletter->save());
}
} else {
$result = false;
} }
wp_send_json($result); wp_send_json($result);
} }
function restore($id) { function trash($id) {
$result = false;
$newsletter = Newsletter::findOne($id); $newsletter = Newsletter::findOne($id);
if($newsletter !== false) { if($newsletter !== false) {
$newsletter->set_expr('deleted_at', 'NULL'); $result = $newsletter->trash();
$result = array('newsletters' => (int)$newsletter->save());
} else {
$result = false;
} }
wp_send_json($result);
}
function delete($id) {
$result = false;
$newsletter = Newsletter::findOne($id);
if($newsletter !== false) {
$newsletter->delete();
$result = 1;
}
wp_send_json($result);
}
function duplicate($id) {
$result = false;
$newsletter = Newsletter::findOne($id);
if($newsletter !== false) {
$data = array(
'subject' => sprintf(__('Copy of %s'), $newsletter->subject)
);
$result = $newsletter->duplicate($data)->asArray();
}
wp_send_json($result); wp_send_json($result);
} }

View File

@@ -55,7 +55,6 @@ class Segments {
) )
->findOne()->asArray(); ->findOne()->asArray();
!d(\ORM::get_last_query());exit;
$item = array_merge($item, $stats); $item = array_merge($item, $stats);
$item['subscribers_url'] = admin_url( $item['subscribers_url'] = admin_url(

View File

@@ -166,9 +166,6 @@ config.push(_.extend({}, baseConfig, {
'public.js' 'public.js'
] ]
}, },
/*plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js'),
],*/
externals: { externals: {
'jquery': 'jQuery' 'jquery': 'jQuery'
} }