Files
wyczarujprezent.pl/modules/jxnewsletter/views/js/jxnewsletter.js
2024-10-28 22:14:22 +01:00

170 lines
4.2 KiB
JavaScript

/*
* 2017-2019 Zemez
*
* JX Newsletter
*
* NOTICE OF LICENSE
*
* This source file is subject to the General Public License (GPL 2.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/GPL-2.0
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade the module to newer
* versions in the future.
*
* @author Zemez (Alexander Grosul)
* @copyright 2017-2019 Zemez
* @license http://opensource.org/licenses/GPL-2.0 General Public License (GPL 2.0)
*/
$(document).ready(function(){
initTemplate();
if (popup_status && blocking_popup != 1) {
if (!user_newsletter_status) {
getNewsletterTemplate('guest', 4000);
} else if (user_newsletter_status == 2) {
getNewsletterTemplate('user', 4000);
}
$(document).on('click', '#newsletter_popup', function(event){
event.stopPropagation();
});
//click close button
$(document).on('click', '.jxnewsletter-close, .newsletter-overlay', function(){
closePopup();
updateDate();
});
//click submit button
$(document).on('click', '.jxnewsletter-submit', function(){
submitNewsletter();
});
$(document).on('focus blur keyup change', '.jxnewsletter-content input[name="email"]', function (){
validateEmail($(this));
});
// GDPR module
$(document).on('change', '.jxnewsletter-content input[name="psgdpr_consent_checkbox"]', function() {
if ($(this).is(':checked')) {
$('button.jxnewsletter-submit').attr('disabled', false);
} else {
$('button.jxnewsletter-submit').attr('disabled', true);
}
});
}
});
function initTemplate(){
jxnewslettercap = true; // for old module version
}
function setTemplate(html) {
$('body').append('<div class="newsletter-overlay">'+html+'</div>');
if ($('.jxnewsletter-content input[name="psgdpr_consent_checkbox"]').length) {
$('button.jxnewsletter-submit').attr('disabled', true);
}
}
//display successful message
function displayMessage(message){
$('body').find('#newsletter_popup .status-message').html('<div class="message">'+message+'</div>');
}
//function close newsletter popup
function closePopup(){
$('#newsletter_popup, .newsletter-overlay').fadeOut(300, function(){
$('#newsletter_popup').remove();
});
}
//validate email
function validateEmail(email){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test(email);
}
//newsletter submit
function submitNewsletter(){
var status;
if ($('#newsletter_popup input[name="disable_popup"]').is(':checked')) {
status = 1;
} else {
status = 0;
}
var email_field = $('#newsletter_popup').find('input');
var email = email_field.val();
if (!email || !validateEmail(email)) {
email_field.addClass('email-error');
} else {
email_field.removeClass('email-error');
$.ajax({
type:'POST',
url: jxnewsletterAjaxController,
data: 'action=sendemail&email='+email+'&status='+status+'&is_logged='+is_logged,
dataType:"json",
success:function(response) {
if (response.success_status) {
displayMessage(response.success_status);
} else {
displayMessage(response.error_status);
}
}
});
}
}
//ajax function set new date
function updateDate(){
var status;
if ($('#newsletter_popup input[name="disable_popup"]').is(':checked')) {
status = 1;
} else {
status = 0;
}
$.ajax({
type: 'POST',
url: jxnewsletterAjaxController,
async: true,
cache: false,
dataType : "json",
data:
{
action:'updatedate',
status: status,
}
});
}
//ajax function get template for newsletter
function getNewsletterTemplate(type, delay){
$.ajax({
type: 'POST',
url: jxnewsletterAjaxController,
async: true,
cache: false,
dataType : "json",
data:
{
action:'getNewsletterTemplate',
type: type
},
success:function(response) {
if (response.content) {
content = response.content;
setTimeout('setTemplate(content)', delay);
} else {
console.log('Template loading false');
}
},
error: function(response) {
console.log(response)
}
});
}