fixed multiple select component

This commit is contained in:
Jonathan Labreuille
2015-10-09 14:48:54 +02:00
parent be2c35c13e
commit ed9407a890
7 changed files with 102 additions and 65 deletions

View File

@ -7,6 +7,7 @@ use MailPoet\Models\Newsletter;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
use MailPoet\Models\NewsletterTemplate;
use MailPoet\Models\NewsletterSegment;
use MailPoet\Newsletter\Renderer\Renderer;
if(!defined('ABSPATH')) exit;
@ -21,7 +22,12 @@ class Newsletters {
if($newsletter === false) {
wp_send_json(false);
} else {
wp_send_json($newsletter->asArray());
$segments = $newsletter->segments()->findArray();
$newsletter = $newsletter->asArray();
$newsletter['segments'] = array_map(function($segment) {
return $segment['id'];
}, $segments);
wp_send_json($newsletter);
}
}
@ -31,12 +37,26 @@ class Newsletters {
}
function save($data = array()) {
$result = Newsletter::createOrUpdate($data);
if($result !== true) {
wp_send_json($result);
} else {
wp_send_json(true);
if(isset($data['segments'])) {
$segment_ids = $data['segments'];
unset($data['segments']);
}
$newsletter_id = Newsletter::createOrUpdate($data);
if($newsletter_id !== false && !empty($segment_ids)) {
// remove previous relationships with segments
NewsletterSegment::where('newsletter_id', $newsletter_id)->deleteMany();
// create relationship with segments
foreach($segment_ids as $segment_id) {
$relation = NewsletterSegment::create();
$relation->segment_id = $segment_id;
$relation->newsletter_id = $newsletter_id;
$relation->save();
}
}
wp_send_json(($newsletter_id !== false));
}
function delete($id) {