Vulcan/packages/telescope-digest/lib/client/newsletter_banner.js
2014-08-05 10:59:54 +09:00

83 lines
No EOL
2.3 KiB
JavaScript

var confirmSubscription = function () {
$('.newsletter-banner form').css('opacity', 0);
$('.newsletter-banner .newsletter-subscribed').css('display', 'block').css('opacity', 1);
Meteor.setInterval(function () {
dismissBanner();
}, 2000)
}
var dismissBanner = function () {
$('.newsletter-banner').fadeOut('fast', function () {
if(Meteor.user()){
// if user is connected, change setting in their account
setUserSetting('showBanner', false);
}else{
// set cookie
Cookie.set('showBanner', "no");
}
});
}
Template[getTemplate('newsletterBanner')].helpers({
siteName: function () {
return getSetting('title');
},
isNotConnected: function () {
return !Meteor.user()
},
showBanner: function () {
if(
Cookie.get('showBanner') == "no"
|| (Meteor.user() && getUserSetting('showBanner', true) == false)
|| (Meteor.user() && getUserSetting('subscribedToNewsletter', false) == true)
){
return false;
}else{
return true;
}
}
});
Template[getTemplate('newsletterBanner')].events({
'click .newsletter-button': function (e) {
e.preventDefault();
var $b = $('.newsletter-button');
if(Meteor.user()){
$b.addClass('show-loader');
Meteor.call('addCurrentUserToMailChimpList', function (error, result) {
$b.removeClass('show-loader');
if(error){
console.log(error);
thowError(error.message);
}else{
console.log(result);
confirmSubscription();
}
});
}else{
var email = $('.newsletter-email').val();
if(!email){
alert('Please fill in your email.');
return
}
$b.addClass('show-loader');
Meteor.call('addEmailToMailChimpList', email, function (error, result) {
$b.removeClass('show-loader');
if(error){
console.log(error);
thowError(error.message);
}else{
console.log(result);
confirmSubscription();
}
});
}
// $('body').addClass('showing-lightbox');
// $(e.target).parents('.post').find('.post-video-lightbox').fadeIn('fast');
},
'click .newsletter-dismiss': function (e) {
$('.newsletter-banner').fadeOut('fast');
dismissBanner();
e.preventDefault();
}
})