saving recently sent templates
This commit is contained in:
@ -11,6 +11,7 @@ define(
|
|||||||
'newsletters/breadcrumb.jsx',
|
'newsletters/breadcrumb.jsx',
|
||||||
'help-tooltip.jsx',
|
'help-tooltip.jsx',
|
||||||
'jquery',
|
'jquery',
|
||||||
|
'html2canvas'
|
||||||
],
|
],
|
||||||
(
|
(
|
||||||
React,
|
React,
|
||||||
@ -23,7 +24,8 @@ define(
|
|||||||
WelcomeNewsletterFields,
|
WelcomeNewsletterFields,
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
HelpTooltip,
|
HelpTooltip,
|
||||||
jQuery
|
jQuery,
|
||||||
|
html2canvas
|
||||||
) => {
|
) => {
|
||||||
const NewsletterSend = React.createClass({
|
const NewsletterSend = React.createClass({
|
||||||
contextTypes: {
|
contextTypes: {
|
||||||
@ -88,6 +90,30 @@ define(
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
saveTemplate: function(data, done) {
|
||||||
|
var iframe = document.createElement('iframe');
|
||||||
|
iframe.src = data.preview_url;
|
||||||
|
iframe.onload = () => {
|
||||||
|
html2canvas(iframe.contentDocument.documentElement).then(function(thumbnail){
|
||||||
|
document.body.removeChild(iframe);
|
||||||
|
MailPoet.Ajax.post({
|
||||||
|
api_version: window.mailpoet_api_version,
|
||||||
|
endpoint: 'newsletterTemplates',
|
||||||
|
action: 'save',
|
||||||
|
data: {
|
||||||
|
name: data.subject,
|
||||||
|
description: data.preheader,
|
||||||
|
thumbnail: thumbnail.toDataURL('image/jpeg'),
|
||||||
|
body: JSON.stringify(data.body),
|
||||||
|
categories: '["recent"]'
|
||||||
|
}
|
||||||
|
}).then(done).fail(this.showError);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// just to hide the iframe
|
||||||
|
iframe.style.cssText ='position: absolute; opacity:0; z-index: -9999';
|
||||||
|
document.body.appendChild(iframe);
|
||||||
|
},
|
||||||
handleSend: function (e) {
|
handleSend: function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@ -141,6 +167,8 @@ define(
|
|||||||
newsletter_id: this.props.params.id,
|
newsletter_id: this.props.params.id,
|
||||||
},
|
},
|
||||||
}).done((response2) => {
|
}).done((response2) => {
|
||||||
|
// save template in recently sent category
|
||||||
|
this.saveTemplate(response.data, () => {
|
||||||
// redirect to listing based on newsletter type
|
// redirect to listing based on newsletter type
|
||||||
this.context.router.push(`/${this.state.item.type || ''}`);
|
this.context.router.push(`/${this.state.item.type || ''}`);
|
||||||
|
|
||||||
@ -161,6 +189,7 @@ define(
|
|||||||
'MailPoet Free version': window.mailpoet_version,
|
'MailPoet Free version': window.mailpoet_version,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}).fail(this.showError);
|
}).fail(this.showError);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -129,7 +129,16 @@ class Newsletters extends APIEndpoint {
|
|||||||
|
|
||||||
Hooks::doAction('mailpoet_api_newsletters_save_after', $newsletter);
|
Hooks::doAction('mailpoet_api_newsletters_save_after', $newsletter);
|
||||||
|
|
||||||
return $this->successResponse($newsletter->asArray());
|
$preview_url = NewsletterUrl::getViewInBrowserUrl(
|
||||||
|
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||||
|
$newsletter,
|
||||||
|
Subscriber::getCurrentWPUser()
|
||||||
|
);
|
||||||
|
|
||||||
|
$newsletter = $newsletter->asArray();
|
||||||
|
$newsletter['preview_url'] = $preview_url;
|
||||||
|
|
||||||
|
return $this->successResponse($newsletter);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setStatus($data = array()) {
|
function setStatus($data = array()) {
|
||||||
|
Reference in New Issue
Block a user