- 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({
endpoint: 'newsletters',
action: 'render',
action: 'showPreview',
data: json,
}).done(function(response){
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) {
MailPoet.Modal.loading(false);
alert('Something went wrong, check console');
MailPoet.Notice.error(
MailPoet.I18n.t('newsletterPreviewFailed')
);
});
},
sendPreview: function() {

View File

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