Change thumbnail generating at send page to start earlier

[MAILPOET-1797]
This commit is contained in:
Rostislav Wolny
2019-02-28 12:57:07 +01:00
committed by M. Shull
parent 2c1bcdcf9b
commit 65b5f355fa
2 changed files with 19 additions and 5 deletions

View File

@ -33,6 +33,7 @@ const NewsletterSend = createReactClass({ // eslint-disable-line react/prefer-es
fields: [],
item: {},
loading: true,
thumbnailPromise: null,
};
},
@ -63,6 +64,10 @@ const NewsletterSend = createReactClass({ // eslint-disable-line react/prefer-es
}
},
getThumbnailPromise: function getThumbnailPromise(url) {
return this.state.thumbnailPromise ? this.state.thumbnailPromise : fromUrl(url);
},
isValid: function isValid() {
return jQuery('#mailpoet_newsletter').parsley().isValid();
},
@ -78,10 +83,12 @@ const NewsletterSend = createReactClass({ // eslint-disable-line react/prefer-es
id,
},
}).done((response) => {
const thumbnailPromise = response.data.status === 'draft' ? this.getThumbnailPromise(response.meta.preview_url) : null;
this.setState({
loading: false,
item: response.data,
fields: this.getFieldsByNewsletter(response.data),
thumbnailPromise,
});
}).fail(() => {
this.setState({
@ -94,7 +101,8 @@ const NewsletterSend = createReactClass({ // eslint-disable-line react/prefer-es
},
saveTemplate: function saveTemplate(response, done) {
fromUrl(response.meta.preview_url)
const thumbnailPromise = this.getThumbnailPromise(response.meta.preview_url);
thumbnailPromise
.then((thumbnail) => {
MailPoet.Ajax.post({
api_version: window.mailpoet_api_version,

View File

@ -66,10 +66,16 @@ class Newsletters extends APIEndpoint {
$newsletter = $newsletter
->withSegments()
->withOptions()
->withSendingQueue()
->asArray();
$newsletter = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $newsletter);
return $this->successResponse($newsletter);
->withSendingQueue();
$preview_url = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
$newsletter,
Subscriber::getCurrentWPUser()
);
$newsletter = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $newsletter->asArray());
return $this->successResponse($newsletter, ['preview_url' => $preview_url]);
}
}