;(function ($) {
"use strict";
function newsletterFormSubmit(elements, options) {
if (!elements.$form.length) return;
let isValidEmail = false;
let isValidPolicy = false; // Único check obligatorio
/* --- Validar checkbox de política --- */
if (elements.$form.find('#policy').is(':checked')) {
isValidPolicy = true;
} else {
elements.$messageContainer.html(
'
Por favor acepte el tratamiento de datos personales.
'
);
}
/* --- Validar email --- */
if (
/^[a-zA-Z0-9.!#$%&\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(
elements.$inputEmail.val()
)
) {
isValidEmail = true;
} else {
elements.$messageContainer.html(
'El formato del email debe ser example@example.com
'
);
}
/* --- Si todo es válido, enviar --- */
if (isValidEmail && isValidPolicy) {
options.datosInputs.email = elements.$inputEmail.val().trim();
elements.$btnSelector.html('ENVIANDO...').attr('disabled', true);
const endPoint = location.href.includes('qacalypso')
? 'https://newqa-calypsomiddleware.com/api/newsletter'
: 'https://newpdn-calypsomiddleware.com/api/newsletter';
fetch(endPoint, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
email: options.datosInputs.email,
sendEmail: true,
listId: 84,
form: 'NEWSLETTER ECOMMERCE'
})
});
/* --- Verificar / guardar en Master Data --- */
MasterDataService.getObjectRegistrationByEspecificField(
'email',
options.datosInputs.email,
options.MASTER_DATA_NEWSLETTER_FORM
)
.then(function () {
resetFields();
elements.$messageContainer
.html('Ya se encuentra suscrito a nuestro boletín de noticias.
')
.show()
.delay(5000);
})
.fail(function (xhr) {
if (xhr.status === 404) {
MasterDataService.saveData(
options.datosInputs,
options.MASTER_DATA_NEWSLETTER_FORM
)
.then(function () {
resetFields();
elements.$messageContainer
.html('Gracias por suscribirte a nuestro boletín de noticias.
')
.show()
.delay(5000);
location.href =
'/landings/gracias/newsletter?type=form&utm_source=newsletter';
})
.fail(console.error);
} else {
elements.$form.fadeOut(400, function () {
elements.$messageContainer.fadeIn();
});
console.error(xhr.statusText);
}
})
.always(function () {
elements.$btnSelector.html('SUSCRIBIRME').removeAttr('disabled');
});
} else {
elements.$messageContainer.show().delay(5000);
}
/* --- Helper para limpiar campos --- */
function resetFields() {
elements.$inputEmail.val('');
$('#policy').prop('checked', false);
}
}
/* -------- Plugins: Newsletter & NewsletterHome (sin cambios) -------- */
$.fn.CalypsoNewsletter = function (params) {
const options = $.extend(
{
datosInputs: {},
MASTER_DATA_NEWSLETTER_FORM: 'NL',
formSelector: '#newsletterForm',
messageSelector: '#newsletterForm .message-container-newsletter',
btnSelector: '#newsletterForm button',
emailSelector: '#newsletterForm #email'
},
params
);
const elements = {
$form: $(options.formSelector),
$messageContainer: $(options.messageSelector),
$btnSelector: $(options.btnSelector),
$inputEmail: $(options.emailSelector)
};
$(options.btnSelector).on('click', function (e) {
e.preventDefault();
newsletterFormSubmit(elements, options);
});
};
$.fn.CalypsoNewsletterHome = function (params) {
const options = $.extend(
{
datosInputs: {},
MASTER_DATA_NEWSLETTER_FORM: 'NL',
formSelector: '#newsletter-subscriber',
messageSelector: '#newsletter-subscriber .message-container-newsletter',
btnSelector: '#newsletter-subscriber button',
emailSelector: '#newsletter-subscriber #email'
},
params
);
const elements = {
$form: $(options.formSelector),
$messageContainer: $(options.messageSelector),
$btnSelector: $(options.btnSelector),
$inputEmail: $(options.emailSelector)
};
$(options.btnSelector).on('click', function (e) {
e.preventDefault();
newsletterFormSubmit(elements, options);
});
};
})(jQuery);
if (window.innerWidth > 768) {
document.querySelectorAll("details").forEach((d) => d.setAttribute("open", true));
}