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

View File

@ -66,10 +66,16 @@ class Newsletters extends APIEndpoint {
$newsletter = $newsletter $newsletter = $newsletter
->withSegments() ->withSegments()
->withOptions() ->withOptions()
->withSendingQueue() ->withSendingQueue();
->asArray();
$newsletter = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $newsletter); $preview_url = NewsletterUrl::getViewInBrowserUrl(
return $this->successResponse($newsletter); 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]);
} }
} }