diff --git a/assets/js/src/newsletters/send.jsx b/assets/js/src/newsletters/send.jsx index ececc4fbb0..daa05134b3 100644 --- a/assets/js/src/newsletters/send.jsx +++ b/assets/js/src/newsletters/send.jsx @@ -92,7 +92,8 @@ define( }, saveTemplate: function (response, done) { const iframe = document.createElement('iframe'); - iframe.src = response.meta.preview_url; + const protocol = location.href.startsWith('https://') ? 'https' : 'http'; + iframe.src = protocol + response.meta.preview_url.replace(/^https?/, ''); iframe.onload = () => { html2canvas(iframe.contentDocument.documentElement).then((thumbnail) => { document.body.removeChild(iframe); @@ -111,9 +112,20 @@ define( }).then(done).fail(this.showError); }); }; + const onError = () => { + document.body.removeChild(iframe); + MailPoet.Notice.error([MailPoet.I18n.t('errorWhileTakingScreenshot')], { scroll: true }); + done(); + }; + iframe.onerror = onError; + iframe.onError = onError; // just to hide the iframe iframe.className ='mailpoet_template_iframe'; - document.body.appendChild(iframe); + try { + document.body.appendChild(iframe); + } catch (err) { + onError(); + } }, handleSend: function (e) { e.preventDefault(); diff --git a/views/newsletters.html b/views/newsletters.html index c02d7aac83..3b16aa9560 100644 --- a/views/newsletters.html +++ b/views/newsletters.html @@ -270,7 +270,9 @@ 'savedTemplates': __('Your saved templates'), 'blank': _x('Blank', 'Blank newsletters templates category'), 'sample': _x('Sample', 'Sample newsletters templates category'), - 'noTemplates': __('This category does not contain any template yet!') + 'noTemplates': __('This category does not contain any template yet!'), + + 'errorWhileTakingScreenshot': __('An error occured while saving the template on "Recently sent"') }) %> <% endblock %>