diff --git a/.meteor/packages b/.meteor/packages index ef1b2755e..80bd201d6 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -37,3 +37,4 @@ subs-manager telescope-module-embedly telescope-digest handlebars-server +npm diff --git a/packages.json b/packages.json new file mode 100644 index 000000000..8390b7694 --- /dev/null +++ b/packages.json @@ -0,0 +1,3 @@ +{ + "juice": "0.4.0" +} \ No newline at end of file diff --git a/packages/.gitignore b/packages/.gitignore index d4d9ecf62..4f918beaf 100644 --- a/packages/.gitignore +++ b/packages/.gitignore @@ -33,3 +33,4 @@ i18next-meteor /iron-core /iron-dynamic-template /handlebars-server +/npm diff --git a/packages/telescope-digest/lib/campaign.js b/packages/telescope-digest/lib/campaign.js index 75c40b10a..8af7b106a 100644 --- a/packages/telescope-digest/lib/campaign.js +++ b/packages/telescope-digest/lib/campaign.js @@ -19,6 +19,10 @@ campaignSchema = new SimpleSchema({ type: [String], optional: true }, + webHits: { + type: Number, + optional: true + }, }); Campaigns = new Meteor.Collection("campaigns", { diff --git a/packages/telescope-digest/lib/server/build_campaign.js b/packages/telescope-digest/lib/server/build_campaign.js index d9b7c5830..34ed7ac27 100644 --- a/packages/telescope-digest/lib/server/build_campaign.js +++ b/packages/telescope-digest/lib/server/build_campaign.js @@ -6,11 +6,9 @@ buildCampaign = function (postsCount) { limit: postsCount }); var campaignPosts = Posts.find(params.find, params.options).fetch(); - console.log(_.pluck(campaignPosts, 'title')) // iterate through posts and pass each of them through a handlebars template var postsHTML = _.map(campaignPosts, function(post){ - console.log(post) // the naked post object as stored in the database is missing a few properties, so let's add them var properties = _.extend(post, { @@ -24,11 +22,15 @@ buildCampaign = function (postsCount) { if(post.url) properties.domain = getDomain(post.url) - var template = Handlebars.templates[getTemplate('postItemEmail')](properties); + var template = Handlebars.templates[getTemplate('emailPostItem')](properties); return template; }).join(''); - console.log(postsHTML) + var emailHTML = buildEmailTemplate(postsHTML) + + // console.log(emailHTML) + + return emailHTML } Meteor.methods({ diff --git a/packages/telescope-digest/lib/server/routes.js b/packages/telescope-digest/lib/server/routes.js new file mode 100644 index 000000000..7a3a130da --- /dev/null +++ b/packages/telescope-digest/lib/server/routes.js @@ -0,0 +1,19 @@ + +Meteor.startup(function () { + + Router.map(function() { + + this.route('campaign', { + where: 'server', + path: '/campaign/:id?', + action: function() { + var campaignId = parseInt(this.params.id); + var htmlContent = buildCampaign(2); + this.response.write(htmlContent); + this.response.end(); + } + }); + + }); + +}); \ No newline at end of file diff --git a/packages/telescope-digest/lib/server/templates/emailPostItem.handlebars b/packages/telescope-digest/lib/server/templates/emailPostItem.handlebars new file mode 100644 index 000000000..cdabf2024 --- /dev/null +++ b/packages/telescope-digest/lib/server/templates/emailPostItem.handlebars @@ -0,0 +1,7 @@ + + +{{title}}

diff --git a/packages/telescope-digest/lib/server/templates/postItemEmail.handlebars b/packages/telescope-digest/lib/server/templates/postItemEmail.handlebars deleted file mode 100644 index e14ea8de8..000000000 --- a/packages/telescope-digest/lib/server/templates/postItemEmail.handlebars +++ /dev/null @@ -1,14 +0,0 @@ - - {{title}} - {{#if sticky}} - Sponsored - {{/if}} -
-{{domain}}
- - - -Added by @{{twitterName}} -| - Tweet -


\ No newline at end of file diff --git a/packages/telescope-digest/package.js b/packages/telescope-digest/package.js index 60a10bfd5..e02ac3bb7 100644 --- a/packages/telescope-digest/package.js +++ b/packages/telescope-digest/package.js @@ -29,7 +29,8 @@ Package.on_use(function (api) { api.add_files([ 'lib/server/build_campaign.js', - 'lib/server/templates/postItemEmail.handlebars' + 'lib/server/routes.js', + 'lib/server/templates/emailPostItem.handlebars' ], ['server']); api.export([ diff --git a/server/email.js b/server/email.js index 7ced7d94c..f4dd97029 100644 --- a/server/email.js +++ b/server/email.js @@ -21,4 +21,30 @@ sendEmail = function(to, subject, text, html){ text: text, html: html }); -}; \ No newline at end of file +}; + +buildEmailTemplate = function (htmlContent) { + var juice = Meteor.require('juice'); + + var emailHTML = Handlebars.templates[getTemplate('emailMain')]({ + headerColor: getSetting('headerColor'), + buttonColor: getSetting('buttonColor'), + logo: '', + siteName: getSetting('title'), + siteUrl: getSiteUrl(), + body: htmlContent, + unsubscribe: '', + footer: '' + }); + + var inlinedHTML = Async.runSync(function(done) { + juice.juiceContent(emailHTML, { + url: getSiteUrl(), + removeStyleTags: false + }, function (error, result) { + done(null, result); + }); + }).result; + + return inlinedHTML; +} \ No newline at end of file diff --git a/server/templates/emailMain.handlebars b/server/templates/emailMain.handlebars new file mode 100644 index 000000000..726171712 --- /dev/null +++ b/server/templates/emailMain.handlebars @@ -0,0 +1,112 @@ + + + + + + + + Antwort - responsive Email Layout + + + + +
+ + + + + + +
+ + + + + + + + + + + + +
+ {{siteName}} +
+
+ + {{{body}}} + +
+ + +
+ +
+
+ + diff --git a/server/templates/mainTemplateEmail.handlebars b/server/templates/mainTemplateEmail.handlebars deleted file mode 100644 index e69de29bb..000000000 diff --git a/smart.json b/smart.json index a24ae0053..6ea5883a6 100644 --- a/smart.json +++ b/smart.json @@ -13,6 +13,7 @@ "bootstrap3-datepicker": {}, "subs-manager": {}, "telescope-module-embedly": {}, - "handlebars-server": {} + "handlebars-server": {}, + "npm": {} } } diff --git a/smart.lock b/smart.lock index cd11c74ef..83354fcea 100644 --- a/smart.lock +++ b/smart.lock @@ -14,7 +14,8 @@ "bootstrap3-datepicker": {}, "subs-manager": {}, "telescope-module-embedly": {}, - "handlebars-server": {} + "handlebars-server": {}, + "npm": {} }, "packages": { "momentjs": { @@ -82,6 +83,11 @@ "tag": "v1.2.0", "commit": "1b72c4e9d82af66293e50be4516c487d15d97464" }, + "npm": { + "git": "https://github.com/arunoda/meteor-npm.git", + "tag": "v0.2.6", + "commit": "177ab6118de5bf8cffb19481343d5762ff7a2aaf" + }, "iron-layout": { "git": "https://github.com/EventedMind/iron-layout.git", "tag": "v0.2.0",