diff --git a/lib/tools.js b/lib/tools.js index 5a7988bd..4fc8b396 100644 --- a/lib/tools.js +++ b/lib/tools.js @@ -188,7 +188,7 @@ function formatMessage(serviceUrl, campaign, list, subscription, message, filter return message.replace(/\[([a-z0-9_]+)(?:\/([^\]]+))?\]/ig, (match, identifier, fallback) => { identifier = identifier.toUpperCase(); let value = (getValue(identifier) || fallback || '').trim(); - return value ? filter(value) : ''; + return value ? filter(value) : match; }); } diff --git a/routes/archive.js b/routes/archive.js index c0c0245b..d9c7eb56 100644 --- a/routes/archive.js +++ b/routes/archive.js @@ -64,20 +64,26 @@ router.get('/:campaign/:list/:subscription', passport.csrfProtection, (req, res, } let renderHtml = (html, renderTags) => { - campaign.editorName = campaign.editorName || 'summernote'; - let sfx = ''; - if (campaign.editorName !== 'summernote' && campaign.editorName !== 'codeeditor') { - sfx = '-raw'; + let render = (view, layout) => { + res.render(view, { + layout, + message: renderTags ? tools.formatMessage(serviceUrl, campaign, list, subscription, html) : html, + campaign, + list, + subscription, + attachments, + csrfToken: req.csrfToken() + }); + }; + + if (campaign.editorName && campaign.editorName !== 'summernote' && campaign.editorName !== 'codeeditor') { + res.render('partials/tracking-scripts', { layout: 'archive/layout-raw' }, (err, scripts) => { + html = scripts ? html.replace(/<\/body\b/i, match => scripts + match) : html; + render('archive/view-raw', 'archive/layout-raw'); + }); + } else { + render('archive/view', 'archive/layout'); } - res.render('archive/view' + sfx, { - layout: 'archive/layout' + sfx, - message: renderTags ? tools.formatMessage(serviceUrl, campaign, list, subscription, html) : html, - campaign, - list, - subscription, - attachments, - csrfToken: req.csrfToken() - }); }; let renderAndShow = (html, renderTags) => { diff --git a/views/archive/layout.hbs b/views/archive/layout.hbs index 88cafbf4..a257eb3b 100644 --- a/views/archive/layout.hbs +++ b/views/archive/layout.hbs @@ -41,24 +41,8 @@ - {{#if uaCode}} - - {{/if}} + {{> tracking_scripts}} + diff --git a/views/campaigns/edit-rss.hbs b/views/campaigns/edit-rss.hbs index 03c96d4e..d9080534 100644 --- a/views/campaigns/edit-rss.hbs +++ b/views/campaigns/edit-rss.hbs @@ -82,9 +82,9 @@ {{#if disableWysiwyg}} - {{> codeeditor}} +{{> codeeditor}} {{else}} - {{> summernote}} +{{> summernote}} {{/if}}
diff --git a/views/campaigns/edit-triggered.hbs b/views/campaigns/edit-triggered.hbs index d709c177..5a7924b0 100644 --- a/views/campaigns/edit-triggered.hbs +++ b/views/campaigns/edit-triggered.hbs @@ -131,12 +131,12 @@ {{> merge_tag_reference}} - {{> plaintext}} +{{> plaintext}} {{#if disableWysiwyg}} - {{> codeeditor}} +{{> codeeditor}} {{else}} - {{> (lookup . 'editorName') }} +{{> (lookup . 'editorName') }} {{/if}} {{/if}} diff --git a/views/campaigns/edit.hbs b/views/campaigns/edit.hbs index 53dac119..098b502a 100644 --- a/views/campaigns/edit.hbs +++ b/views/campaigns/edit.hbs @@ -147,12 +147,12 @@ {{> merge_tag_reference}} - {{> plaintext}} +{{> plaintext}} {{#if disableWysiwyg}} - {{> codeeditor}} +{{> codeeditor}} {{else}} - {{> (lookup . 'editorName') }} +{{> (lookup . 'editorName') }} {{/if}} {{/if}} diff --git a/views/layout.hbs b/views/layout.hbs index f2f1b724..9e9e3a95 100644 --- a/views/layout.hbs +++ b/views/layout.hbs @@ -153,24 +153,8 @@ {{/if}} - {{#if uaCode}} - - {{/if}} diff --git a/views/partials/tracking-scripts.hbs b/views/partials/tracking-scripts.hbs new file mode 100644 index 00000000..72e045d2 --- /dev/null +++ b/views/partials/tracking-scripts.hbs @@ -0,0 +1,18 @@ +{{#if uaCode}} + +{{/if}} diff --git a/views/templates/edit.hbs b/views/templates/edit.hbs index 55f2ffe0..704b3a82 100644 --- a/views/templates/edit.hbs +++ b/views/templates/edit.hbs @@ -26,12 +26,12 @@ {{> merge_tag_reference mergeTagReferenceFooterText='In addition to that any custom field can have its own merge tag.'}} - {{> plaintext}} +{{> plaintext}} {{#if disableWysiwyg}} - {{> codeeditor}} +{{> codeeditor}} {{else}} - {{> (lookup . 'editorName') }} +{{> (lookup . 'editorName') }} {{/if}}