switched from handlebars-server to spacebars-tohtml

This commit is contained in:
Sacha Greif 2015-12-14 12:43:45 +09:00
parent bd3dca78f4
commit 1815a7afcd
12 changed files with 55 additions and 6 deletions

View file

@ -35,6 +35,7 @@ cmather:handlebars-server@2.0.0
coffeescript@1.0.11
cosmos:browserify@0.8.1
dburles:collection-helpers@1.0.4
dburles:spacebars-tohtml@1.0.1
ddp@1.2.2
ddp-client@1.2.1
ddp-common@1.2.2

View file

@ -0,0 +1,3 @@
Telescope.email.addTemplates({
custom_emailPostItem: Assets.getText("lib/server/templates/custom_emailPostItem.handlebars"),
});

View file

@ -23,6 +23,7 @@ Package.onUse(function (api) {
api.addFiles([
'lib/custom_fields.js',
'lib/template_modules.js',
'lib/email_templates.js',
'lib/callbacks.js'
], ['client', 'server']);
@ -39,7 +40,7 @@ Package.onUse(function (api) {
// server
api.addFiles([
api.addAssets([
'lib/server/templates/custom_emailPostItem.handlebars'
], ['server']);

View file

@ -63,6 +63,7 @@ Template.registerHelper('pluralize', function(count, string) {
Template.registerHelper('getProfileUrl', function(userOrUserId) {
var user = (typeof userOrUserId === 'string') ? Meteor.users.findOne(userOrUserId) : userOrUserId;
console.log(user)
if (!!user) {
return Users.getProfileUrl(user);
}

View file

@ -4,6 +4,12 @@
*/
Telescope.email = {};
Telescope.email.templates = {};
Telescope.email.addTemplates = function (templates) {
_.extend(Telescope.email.templates, templates);
};
var htmlToText = Npm.require('html-to-text');
// for template "foo", check if "custom_foo" exists. If it does, use it instead
@ -13,12 +19,16 @@ Telescope.email.getTemplate = function (templateName) {
// go through prefixes and keep the last one (if any) that points to a valid template
Telescope.config.customPrefixes.forEach(function (prefix) {
if(typeof Handlebars.templates[prefix+templateName] === 'function'){
if(typeof Telescope.email.templates[prefix+templateName] === 'string'){
template = prefix + templateName;
}
});
return Handlebars.templates[template];
// return Handlebars.templates[template];
return function (properties) {
return Spacebars.toHTML(properties, Telescope.email.templates[template]);
}
};
@ -113,3 +123,9 @@ function adminUserCreationNotification (user) {
return user;
}
Telescope.callbacks.add("onCreateUser", adminUserCreationNotification);
Telescope.email.addTemplates({
emailInvite: Assets.getText("lib/server/templates/emailInvite.handlebars"),
emailTest: Assets.getText("lib/server/templates/emailTest.handlebars"),
emailWrapper: Assets.getText("lib/server/templates/emailWrapper.handlebars")
});

View file

@ -25,9 +25,12 @@ Package.onUse(function (api) {
api.addFiles([
'lib/server/email.js',
], ['server']);
api.addAssets([
'lib/server/templates/emailInvite.handlebars',
'lib/server/templates/emailTest.handlebars',
'lib/server/templates/emailWrapper.handlebars',
'lib/server/templates/emailWrapper.handlebars'
], ['server']);
var languages = ["ar", "bg", "cs", "da", "de", "el", "en", "es", "et", "fr", "hu", "id", "it", "ja", "kk", "ko", "nl", "pl", "pt-BR", "ro", "ru", "sl", "sv", "th", "tr", "vi", "zh-CN"];

View file

@ -74,7 +74,8 @@ Package.onUse(function (api) {
// 'dburles:iron-router-query-array@1.0.1'
'utilities:onsubscribed@0.1.2',
'utilities:menu@0.1.4',
'seba:minifiers-autoprefixer@0.0.1'
'seba:minifiers-autoprefixer@0.0.1',
'dburles:spacebars-tohtml@1.0.1'
];
api.use(packages);

View file

@ -225,3 +225,10 @@ Telescope.modules.add("contentTop", {
return user;
}
Telescope.callbacks.add("profileCompletedAsync", subscribeUserOnProfileCompletion);
Telescope.email.addTemplates({
emailDigest: Assets.getText("lib/server/templates/emailDigest.handlebars"),
emailDigestConfirmation: Assets.getText("lib/server/templates/emailDigestConfirmation.handlebars"),
emailPostItem: Assets.getText("lib/server/templates/emailPostItem.handlebars")
});

View file

@ -34,6 +34,9 @@ Package.onUse(function (api) {
'lib/server/cron.js',
'lib/server/mailchimp.js',
'lib/server/routes.js',
], ['server']);
api.addAssets([
'lib/server/templates/emailDigest.handlebars',
'lib/server/templates/emailDigestConfirmation.handlebars',
'lib/server/templates/emailPostItem.handlebars'

View file

@ -95,3 +95,13 @@ _.each(notifications, function (notification, notificationName) {
Herald.addCourier(notificationName, courier);
});
Telescope.email.addTemplates({
emailAccountApproved: Assets.getText("lib/server/templates/emailAccountApproved.handlebars"),
emailNewComment: Assets.getText("lib/server/templates/emailNewComment.handlebars"),
emailNewPost: Assets.getText("lib/server/templates/emailNewPost.handlebars"),
emailNewPendingPost: Assets.getText("lib/server/templates/emailNewPendingPost.handlebars"),
emailPostApproved: Assets.getText("lib/server/templates/emailPostApproved.handlebars"),
emailNewReply: Assets.getText("lib/server/templates/emailNewReply.handlebars"),
emailNewUser: Assets.getText("lib/server/templates/emailNewUser.handlebars")
});

View file

@ -77,6 +77,6 @@ Picker.route('/email/account-approved/:id?', function(params, req, res, next) {
siteTitle: Settings.get('title'),
siteUrl: Telescope.utils.getSiteUrl()
};
var html = Handlebars.templates.emailAccountApproved(emailProperties);
var html = Telescope.email.getTemplate('emailAccountApproved')(emailProperties);
res.end(Telescope.email.buildTemplate(html));
});

View file

@ -43,6 +43,9 @@ Package.onUse(function (api) {
api.addFiles([
'lib/server/notifications-server.js',
'lib/server/routes.js',
], ['server']);
api.addAssets([
'lib/server/templates/emailAccountApproved.handlebars',
'lib/server/templates/emailNewComment.handlebars',
'lib/server/templates/emailNewPost.handlebars',