From 408db13fd45442adb3ada69dc6d59e5d34cc77fd Mon Sep 17 00:00:00 2001 From: witzig Date: Wed, 3 May 2017 23:13:05 +0200 Subject: [PATCH] Updated RSS merge tag reference --- lib/editor-helpers.js | 17 ++++++++++++++--- lib/feed.js | 2 +- lib/helpers.js | 27 +++++++++++++++++++++++++++ routes/campaigns.js | 19 ++++--------------- views/campaigns/edit-rss.hbs | 4 ++-- 5 files changed, 48 insertions(+), 21 deletions(-) diff --git a/lib/editor-helpers.js b/lib/editor-helpers.js index c81eebad..e4c4e79f 100644 --- a/lib/editor-helpers.js +++ b/lib/editor-helpers.js @@ -6,7 +6,8 @@ let templates = require('../lib/models/templates'); let campaigns = require('../lib/models/campaigns'); module.exports = { - getResource + getResource, + getMergeTagsForResource }; function getResource(type, id, callback) { @@ -53,7 +54,7 @@ function getMergeTagsForResource(resource, callback) { return callback(err.message || err); } - if (!resource.list) { + if (!Number(resource.list)) { return callback(null, defaultMergeTags); } @@ -62,7 +63,17 @@ function getMergeTagsForResource(resource, callback) { return callback(err.message || err); } - callback(null, defaultMergeTags.concat(listMergeTags)); + if (resource.type !== 2) { + return callback(null, defaultMergeTags.concat(listMergeTags)); + } + + helpers.getRSSMergeTags((err, rssMergeTags) => { + if (err) { + return callback(err.message || err); + } + + callback(null, defaultMergeTags.concat(listMergeTags, rssMergeTags)); + }); }); }); } diff --git a/lib/feed.js b/lib/feed.js index 10611eb2..66bd2f20 100644 --- a/lib/feed.js +++ b/lib/feed.js @@ -52,7 +52,7 @@ module.exports.fetch = (url, callback) => { link: item.link, content: item.description || item.summary, summary: item.summary || item.description, - image_url: item.image.url, + image_url: item.image.url }; entries.push(entry); } diff --git a/lib/helpers.js b/lib/helpers.js index 2cac3dbb..597c36d8 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -16,6 +16,7 @@ let hbs = require('hbs'); module.exports = { getDefaultMergeTags, + getRSSMergeTags, getListMergeTags, captureFlashMessages, injectCustomFormData, @@ -59,6 +60,32 @@ function getDefaultMergeTags(callback) { }]); } +function getRSSMergeTags(callback) { + // Using a callback for the sake of future-proofness + callback(null, [{ + key: 'RSS_ENTRY', + value: _('content from an RSS entry') + }, { + key: 'RSS_ENTRY_TITLE', + value: _('RSS entry title') + }, { + key: 'RSS_ENTRY_DATE', + value: _('RSS entry date') + }, { + key: 'RSS_ENTRY_LINK', + value: _('RSS entry link') + }, { + key: 'RSS_ENTRY_CONTENT', + value: _('content from an RSS entry') + }, { + key: 'RSS_ENTRY_SUMMARY', + value: _('RSS entry summary') + }, { + key: 'RSS_ENTRY_IMAGE_URL', + value: _('RSS entry image URL') + }]); +} + function getListMergeTags(listId, callback) { lists.get(listId, (err, list) => { if (err) { diff --git a/routes/campaigns.js b/routes/campaigns.js index f239bdd6..424aebbb 100644 --- a/routes/campaigns.js +++ b/routes/campaigns.js @@ -9,7 +9,7 @@ let campaigns = require('../lib/models/campaigns'); let subscriptions = require('../lib/models/subscriptions'); let settings = require('../lib/models/settings'); let tools = require('../lib/tools'); -let helpers = require('../lib/helpers'); +let editorHelpers = require('../lib/editor-helpers.js'); let striptags = require('striptags'); let passport = require('../lib/passport'); let htmlescape = require('escape-html'); @@ -186,25 +186,14 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => { view = 'campaigns/edit'; } - helpers.getDefaultMergeTags((err, defaultMergeTags) => { + editorHelpers.getMergeTagsForResource(campaign, (err, mergeTags) => { if (err) { req.flash('danger', err.message || err); return res.redirect('/'); } - helpers.getListMergeTags(campaign.list, (err, listMergeTags) => { - if (err) { - req.flash('danger', err.message || err); - return res.redirect('/'); - } - - campaign.mergeTags = defaultMergeTags.concat(listMergeTags); - campaign.type === 2 && campaign.mergeTags.push({ - key: 'RSS_ENTRY', - value: _('content from an RSS entry') - }); - res.render(view, campaign); - }); + campaign.mergeTags = mergeTags; + res.render(view, campaign); }); }); }); diff --git a/views/campaigns/edit-rss.hbs b/views/campaigns/edit-rss.hbs index d9080534..3c13c859 100644 --- a/views/campaigns/edit-rss.hbs +++ b/views/campaigns/edit-rss.hbs @@ -71,8 +71,6 @@ - {{> merge_tag_reference}} -
@@ -81,6 +79,8 @@
+ {{> merge_tag_reference}} + {{#if disableWysiwyg}} {{> codeeditor}} {{else}}