diff --git a/assets/js/src/newsletter_editor/components/save.js b/assets/js/src/newsletter_editor/components/save.js index 6ded0f42e1..7c122aedd7 100644 --- a/assets/js/src/newsletter_editor/components/save.js +++ b/assets/js/src/newsletter_editor/components/save.js @@ -93,27 +93,33 @@ define([ }; Module.saveTemplate = function (options) { - var categories = [ - 'saved', - App.getNewsletter().get('type') - ]; + var promise = jQuery.Deferred(); - return Module.getThumbnail( - jQuery('#mailpoet_editor_content > .mailpoet_block').get(0) - ).then(function (thumbnail) { - var data = _.extend(options || {}, { - thumbnail: thumbnail.toDataURL('image/jpeg'), - body: JSON.stringify(App.getBody()), - categories: JSON.stringify(categories) - }); - - return MailPoet.Ajax.post({ - api_version: window.mailpoet_api_version, - endpoint: 'newsletterTemplates', - action: 'save', - data: data - }); + promise.then(function (thumbnail) { + var data = _.extend(options || {}, { + thumbnail: thumbnail.toDataURL('image/jpeg'), + body: JSON.stringify(App.getBody()), + categories: JSON.stringify([ + 'saved', + App.getNewsletter().get('type') + ]) }); + + return MailPoet.Ajax.post({ + api_version: window.mailpoet_api_version, + endpoint: 'newsletterTemplates', + action: 'save', + data: data + }); + }); + + Module.getThumbnail( + jQuery('#mailpoet_editor_content > .mailpoet_block').get(0) + ).then(function (thumbnail) { + promise.resolve(thumbnail); + }); + + return promise; }; Module.exportTemplate = function (options) { diff --git a/tests/javascript/newsletter_editor/components/save.spec.js b/tests/javascript/newsletter_editor/components/save.spec.js index aa42039ea5..baa23026b8 100644 --- a/tests/javascript/newsletter_editor/components/save.spec.js +++ b/tests/javascript/newsletter_editor/components/save.spec.js @@ -143,6 +143,13 @@ define([ }); EditorApplication.getBody = sinon.stub(); + EditorApplication.getNewsletter = function () { + return { + get: function () { + return 'standard'; + } + }; + }; module = SaveInjector({ mailpoet: { Ajax: {