- Updates editor/router to use the new browser preview class

This commit is contained in:
Vlad
2016-04-30 22:18:16 -04:00
parent 57b953dd14
commit 90c294f60e
2 changed files with 37 additions and 15 deletions

View File

@ -245,14 +245,20 @@ define([
MailPoet.Ajax.post({ MailPoet.Ajax.post({
endpoint: 'newsletters', endpoint: 'newsletters',
action: 'render', action: 'showPreview',
data: json, data: json,
}).done(function(response){ }).done(function(response){
MailPoet.Modal.loading(false); MailPoet.Modal.loading(false);
window.open('data:text/html;charset=utf-8,' + encodeURIComponent(response.rendered_body), '_blank');
if (response.result === true) {
window.open(response.data.url, '_blank')
}
MailPoet.Notice.error(response.errors);
}).fail(function(error) { }).fail(function(error) {
MailPoet.Modal.loading(false); MailPoet.Modal.loading(false);
alert('Something went wrong, check console'); MailPoet.Notice.error(
MailPoet.I18n.t('newsletterPreviewFailed')
);
}); });
}, },
sendPreview: function() { sendPreview: function() {

View File

@ -1,24 +1,23 @@
<?php <?php
namespace MailPoet\Router; namespace MailPoet\Router;
use MailPoet\Config\Shortcodes;
use MailPoet\Listing; use MailPoet\Listing;
use MailPoet\Mailer\API\MailPoet;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\Segment;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Models\NewsletterTemplate; use MailPoet\Models\NewsletterTemplate;
use MailPoet\Models\NewsletterSegment; use MailPoet\Models\NewsletterSegment;
use MailPoet\Models\NewsletterOptionField; use MailPoet\Models\NewsletterOptionField;
use MailPoet\Models\NewsletterOption; use MailPoet\Models\NewsletterOption;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Renderer\Renderer; use MailPoet\Newsletter\Renderer\Renderer;
use MailPoet\Models\SendingQueue;
use MailPoet\Newsletter\Scheduler\Scheduler; use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Newsletter\Shortcodes\Categories\Link;
use MailPoet\Util\Helpers; use MailPoet\Util\Helpers;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
require_once(ABSPATH . 'wp-includes/pluggable.php');
class Newsletters { class Newsletters {
function __construct() { function __construct() {
} }
@ -134,15 +133,32 @@ class Newsletters {
return false; return false;
} }
function render($data = array()) { function showPreview($data = array()) {
if(!isset($data['body'])) { if(!isset($data['body'])) {
return false; return array(
'result' => false,
'errors' => array(__('Newsletter data is missing.'))
);
} }
$renderer = new Renderer($data); $newsletter_id = (isset($data['id'])) ? (int) $data['id'] : 0;
$rendered_newsletter = $renderer->render(); $newsletter = Newsletter::findOne($newsletter_id);
$shortcodes = new \MailPoet\Newsletter\Shortcodes\Shortcodes($data); if (!$newsletter) {
$rendered_newsletter = $shortcodes->replace($rendered_newsletter['html']); return array(
return array('rendered_body' => $rendered_newsletter); 'result' => false,
'errors' => array(__('Newsletter could not be read.'))
);
}
$newsletter->body = $data['body'];
$newsletter->save();
$wp_user =wp_get_current_user();
$subscriber = Subscriber::where('email', $wp_user->data->user_email)
->findOne();
$subscriber = ($subscriber) ? $subscriber->asArray() : $subscriber;
$preview_url = Link::getViewInBrowserUrl($data, $subscriber);
return array(
'result' => true,
'data' => array('url' => $preview_url)
);
} }
function sendPreview($data = array()) { function sendPreview($data = array()) {