Vulcan/packages/telescope-newsletter/lib/client/templates/newsletter_banner.js
2014-09-08 17:29:55 +09:00

87 lines
No EOL
2.5 KiB
JavaScript

var confirmSubscription = function () {
$('.newsletter-banner form').css('opacity', 0);
$('.newsletter-banner .newsletter-subscribed').css('display', 'block').css('opacity', 1);
Meteor.setInterval(function () {
// required because otherwise banner disappears immediately after confirmation
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 () {
// note: should not be reactive
if(
getSetting('showBanner', false) == false
|| Router.current().path != '/'
|| 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 $banner = $('.newsletter-banner');
if(Meteor.user()){
$banner.addClass('show-loader');
Meteor.call('addCurrentUserToMailChimpList', function (error, result) {
$banner.removeClass('show-loader');
if(error){
console.log(error);
throwError(error.message);
}else{
console.log(result);
confirmSubscription();
}
});
}else{
var email = $('.newsletter-email').val();
if(!email){
alert('Please fill in your email.');
return
}
$banner.addClass('show-loader');
Meteor.call('addEmailToMailChimpList', email, function (error, result) {
$banner.removeClass('show-loader');
if(error){
console.log(error);
throwError(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();
}
})