Updated RSS merge tag reference

This commit is contained in:
witzig 2017-05-03 23:13:05 +02:00
parent d555ca44ac
commit 408db13fd4
5 changed files with 48 additions and 21 deletions

View file

@ -6,7 +6,8 @@ let templates = require('../lib/models/templates');
let campaigns = require('../lib/models/campaigns'); let campaigns = require('../lib/models/campaigns');
module.exports = { module.exports = {
getResource getResource,
getMergeTagsForResource
}; };
function getResource(type, id, callback) { function getResource(type, id, callback) {
@ -53,7 +54,7 @@ function getMergeTagsForResource(resource, callback) {
return callback(err.message || err); return callback(err.message || err);
} }
if (!resource.list) { if (!Number(resource.list)) {
return callback(null, defaultMergeTags); return callback(null, defaultMergeTags);
} }
@ -62,7 +63,17 @@ function getMergeTagsForResource(resource, callback) {
return callback(err.message || err); 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));
});
}); });
}); });
} }

View file

@ -52,7 +52,7 @@ module.exports.fetch = (url, callback) => {
link: item.link, link: item.link,
content: item.description || item.summary, content: item.description || item.summary,
summary: item.summary || item.description, summary: item.summary || item.description,
image_url: item.image.url, image_url: item.image.url
}; };
entries.push(entry); entries.push(entry);
} }

View file

@ -16,6 +16,7 @@ let hbs = require('hbs');
module.exports = { module.exports = {
getDefaultMergeTags, getDefaultMergeTags,
getRSSMergeTags,
getListMergeTags, getListMergeTags,
captureFlashMessages, captureFlashMessages,
injectCustomFormData, 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) { function getListMergeTags(listId, callback) {
lists.get(listId, (err, list) => { lists.get(listId, (err, list) => {
if (err) { if (err) {

View file

@ -9,7 +9,7 @@ let campaigns = require('../lib/models/campaigns');
let subscriptions = require('../lib/models/subscriptions'); let subscriptions = require('../lib/models/subscriptions');
let settings = require('../lib/models/settings'); let settings = require('../lib/models/settings');
let tools = require('../lib/tools'); let tools = require('../lib/tools');
let helpers = require('../lib/helpers'); let editorHelpers = require('../lib/editor-helpers.js');
let striptags = require('striptags'); let striptags = require('striptags');
let passport = require('../lib/passport'); let passport = require('../lib/passport');
let htmlescape = require('escape-html'); let htmlescape = require('escape-html');
@ -186,25 +186,14 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
view = 'campaigns/edit'; view = 'campaigns/edit';
} }
helpers.getDefaultMergeTags((err, defaultMergeTags) => { editorHelpers.getMergeTagsForResource(campaign, (err, mergeTags) => {
if (err) { if (err) {
req.flash('danger', err.message || err); req.flash('danger', err.message || err);
return res.redirect('/'); return res.redirect('/');
} }
helpers.getListMergeTags(campaign.list, (err, listMergeTags) => { campaign.mergeTags = mergeTags;
if (err) { res.render(view, campaign);
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);
});
}); });
}); });
}); });

View file

@ -71,8 +71,6 @@
</div> </div>
</div> </div>
{{> merge_tag_reference}}
<div class="form-group"> <div class="form-group">
<label for="template" class="col-sm-2 control-label">{{#translate}}RSS Feed Url{{/translate}}</label> <label for="template" class="col-sm-2 control-label">{{#translate}}RSS Feed Url{{/translate}}</label>
<div class="col-sm-10"> <div class="col-sm-10">
@ -81,6 +79,8 @@
</div> </div>
</div> </div>
{{> merge_tag_reference}}
{{#if disableWysiwyg}} {{#if disableWysiwyg}}
{{> codeeditor}} {{> codeeditor}}
{{else}} {{else}}