saving recently sent templates

This commit is contained in:
Amine Ben hammou
2018-01-02 18:58:00 +00:00
parent fe2ab08a49
commit a519eff231
2 changed files with 59 additions and 21 deletions

View File

@ -11,6 +11,7 @@ define(
'newsletters/breadcrumb.jsx',
'help-tooltip.jsx',
'jquery',
'html2canvas'
],
(
React,
@ -23,7 +24,8 @@ define(
WelcomeNewsletterFields,
Breadcrumb,
HelpTooltip,
jQuery
jQuery,
html2canvas
) => {
const NewsletterSend = React.createClass({
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) {
e.preventDefault();
@ -141,26 +167,29 @@ define(
newsletter_id: this.props.params.id,
},
}).done((response2) => {
// redirect to listing based on newsletter type
this.context.router.push(`/${this.state.item.type || ''}`);
// save template in recently sent category
this.saveTemplate(response.data, () => {
// redirect to listing based on newsletter type
this.context.router.push(`/${this.state.item.type || ''}`);
if (response2.data.status === 'scheduled') {
MailPoet.Notice.success(
MailPoet.I18n.t('newsletterHasBeenScheduled')
);
MailPoet.trackEvent('Emails > Newsletter sent', {
scheduled: true,
'MailPoet Free version': window.mailpoet_version,
});
} else {
MailPoet.Notice.success(
MailPoet.I18n.t('newsletterBeingSent')
);
MailPoet.trackEvent('Emails > Newsletter sent', {
scheduled: false,
'MailPoet Free version': window.mailpoet_version,
});
}
if (response2.data.status === 'scheduled') {
MailPoet.Notice.success(
MailPoet.I18n.t('newsletterHasBeenScheduled')
);
MailPoet.trackEvent('Emails > Newsletter sent', {
scheduled: true,
'MailPoet Free version': window.mailpoet_version,
});
} else {
MailPoet.Notice.success(
MailPoet.I18n.t('newsletterBeingSent')
);
MailPoet.trackEvent('Emails > Newsletter sent', {
scheduled: false,
'MailPoet Free version': window.mailpoet_version,
});
}
});
}).fail(this.showError);
}
})

View File

@ -129,7 +129,16 @@ class Newsletters extends APIEndpoint {
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()) {