Support for custom HTML editors
This commit is contained in:
parent
78d262ac8d
commit
a11d95f3d7
22 changed files with 255 additions and 133 deletions
|
@ -62,8 +62,12 @@ router.get('/:campaign/:list/:subscription', passport.csrfProtection, (req, res,
|
|||
}
|
||||
|
||||
let renderHtml = (html, renderTags) => {
|
||||
res.render('archive/view', {
|
||||
layout: 'archive/layout',
|
||||
let sfx = '';
|
||||
if (campaign.editorName !== 'summernote' && campaign.editorName !== 'codeeditor') {
|
||||
sfx = '-raw';
|
||||
}
|
||||
res.render('archive/view' + sfx, {
|
||||
layout: 'archive/layout' + sfx,
|
||||
message: renderTags ? tools.formatMessage(serviceUrl, campaign, list, subscription, html) : html,
|
||||
campaign,
|
||||
list,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
let config = require('config');
|
||||
let express = require('express');
|
||||
let router = new express.Router();
|
||||
let lists = require('../lib/models/lists');
|
||||
|
@ -115,7 +116,10 @@ router.post('/create', passport.parseForm, passport.csrfProtection, (req, res) =
|
|||
return res.redirect('/campaigns/create?' + tools.queryParams(req.body));
|
||||
}
|
||||
req.flash('success', 'Campaign “' + req.body.name + '” created');
|
||||
res.redirect('/campaigns/view/' + id);
|
||||
res.redirect((req.body.type === 'rss')
|
||||
? '/campaigns/edit/' + id
|
||||
: '/campaigns/edit/' + id + '?tab=template'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -159,6 +163,8 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
|
|||
campaign.csrfToken = req.csrfToken();
|
||||
campaign.listItems = listItems;
|
||||
campaign.useEditor = true;
|
||||
campaign.editorName = campaign.editorName || 'summernote';
|
||||
campaign.editorConfig = config[campaign.editorName];
|
||||
|
||||
campaign.disableWysiwyg = configItems.disableWysiwyg;
|
||||
campaign.showGeneral = req.query.tab === 'general' || !req.query.tab;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
let config = require('config');
|
||||
let express = require('express');
|
||||
let router = new express.Router();
|
||||
let templates = require('../lib/models/templates');
|
||||
|
@ -66,6 +67,23 @@ router.get('/create', passport.csrfProtection, (req, res, next) => {
|
|||
data.text = data.text || rendererText(configItems);
|
||||
data.disableWysiwyg = configItems.disableWysiwyg;
|
||||
|
||||
data.editors = config.editors || [['summernote', 'Summernote']];
|
||||
data.editors = data.editors.map(ed => {
|
||||
let editor = {
|
||||
name: ed[0],
|
||||
label: ed[1],
|
||||
};
|
||||
if (config[editor.name] && config[editor.name].templates) {
|
||||
editor.templates = config[editor.name].templates.map(tmpl => {
|
||||
return {
|
||||
name: tmpl[0],
|
||||
label: tmpl[1],
|
||||
}
|
||||
});
|
||||
}
|
||||
return editor;
|
||||
});
|
||||
|
||||
res.render('templates/create', data);
|
||||
});
|
||||
});
|
||||
|
@ -79,7 +97,7 @@ router.post('/create', passport.parseForm, passport.csrfProtection, (req, res) =
|
|||
return res.redirect('/templates/create?' + tools.queryParams(req.body));
|
||||
}
|
||||
req.flash('success', 'Template created');
|
||||
res.redirect('/templates');
|
||||
res.redirect('/templates/edit/' + id);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -95,6 +113,8 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
|
|||
}
|
||||
template.csrfToken = req.csrfToken();
|
||||
template.useEditor = true;
|
||||
template.editorName = template.editorName || 'summernote';
|
||||
template.editorConfig = config[template.editorName];
|
||||
template.disableWysiwyg = configItems.disableWysiwyg;
|
||||
res.render('templates/edit', template);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue