in src/assets/js/basket-client.js [43:115]
function newsletterSubscribe(evt) {
var skipXHR = newsletterForm.getAttribute('data-skip-xhr');
if (skipXHR) {
return true;
}
evt.preventDefault();
evt.stopPropagation();
// new submission, clear old errors
errorArray = [];
newsletterErrors.style.display = 'none';
while (newsletterErrors.firstChild)
newsletterErrors.removeChild(newsletterErrors.firstChild);
var fmt = document.getElementById('fmt').value;
var email = document.getElementById('email').value;
var newsletter = document.getElementById('newsletters').value;
var privacy = document.querySelector('input[name="privacy"]:checked')
? '&privacy=true'
: '';
var params =
'email=' +
encodeURIComponent(email) +
'&newsletters=' +
newsletter +
privacy +
'&fmt=' +
fmt +
'&source_url=' +
encodeURIComponent(document.location.href);
var xhr = new XMLHttpRequest();
xhr.onload = function (r) {
if (r.target.status >= 200 && r.target.status < 300) {
// response is null if handled by service worker
if (response === null) {
newsletterError(new Error());
return;
}
var response = r.target.response;
if (response.success === true) {
newsletterForm.style.display = 'none';
newsletterThanks();
} else {
if (response.errors) {
for (var i = 0; i < response.errors.length; i++) {
errorArray.push(response.errors[i]);
}
}
newsletterError(new Error());
}
} else {
newsletterError(new Error());
}
};
xhr.onerror = function (e) {
newsletterError(e);
};
var url = newsletterForm.getAttribute('action');
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.timeout = 5000;
xhr.ontimeout = newsletterError;
xhr.responseType = 'json';
xhr.send(params);
return false;
}