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",