/* SLIDE UP
/* SLIDE UP */
let slideUp = (target, duration=500) => {
target.style.transitionProperty = 'højde, margin, polstring';
target.style.transitionDuration = varighed + 'ms';
target.style.boxSizing = 'border-box';
target.style.height = target.offsetHeight + 'px';
mål.offsetHøjde;
target.style.overflow = 'skjult';
target.style.height = 0;
target.style.paddingTop = 0;
target.style.paddingBottom = 0;
target.style.marginTop = 0;
target.style.marginBottom = 0;
window.setTimeout( () => {
target.style.display = 'none';
target.style.removeProperty('højde');
target.style.removeProperty('padding-top');
target.style.removeProperty('padding-bottom');
target.style.removeProperty('margin-top');
target.style.removeProperty('margin-bottom');
target.style.removeProperty('overflow');
target.style.removeProperty('transition-duration');
target.style.removeProperty('transition-property');
}, varighed);
}
/* SLIDE DOWN */
let slideDown = (target, duration=500) => {
setTimeout(function(){
target.style.removeProperty('display');
let display = window.getComputedStyle(target).display;
if (display === 'none') display = 'block';
target.style.display = display;
let height = target.offsetHeight;
target.style.overflow = 'skjult';
target.style.height = 0;
target.style.paddingTop = 0;
target.style.paddingBottom = 0;
target.style.marginTop = 0;
target.style.marginBottom = 0;
target.offsetHeight;
target.style.boxSizing = 'border-box';
target.style.transitionProperty = "højde, margin, polstring";
target.style.transitionDuration = varighed + 'ms';
target.style.height = højde + 'px';
target.style.removeProperty('padding-top');
target.style.removeProperty('padding-bottom');
target.style.removeProperty('margin-top');
target.style.removeProperty('margin-bottom');
window.setTimeout( () => {
target.style.removeProperty('height');
target.style.removeProperty('overflow');
target.style.removeProperty('transition-duration');
target.style.removeProperty('transition-property');
}, varighed);
}, 100)
}
/* TOOGLE */
var slideToggle = (target, duration = 500) => {
hvis (window.getComputedStyle(target).display === 'none') {
return slideDown(target, duration);
} else {
return slideUp(target, duration);
}
}
/* FADE */
var toggleFadeiSense = (elem, show) => {
if (show) {
elem.style.display = "block";
setTimeout(function(){
elem.classList.add('show-isense');
elem.classList.remove('hide-isense');
},20)
} else {
elem.classList.remove('show-isense');
elem.classList.add('hide-isense');
setTimeout(() => {
elem.style.display = 'none';
}, 400)
}
}
var gdprSlideUpAll = function() {
slideUp(document.querySelector('#form-gdpr-edit-account-request'), 100);
slideUp(document.querySelector('#form-gdpr-data-account-request'), 100);
slideUp(document.querySelector('#form-gdpr-personal-data-report-request'), 100);
slideUp(document.querySelector('#form-gdpr-delete-account-request'), 100);
document.querySelector('#gdpr_page button').setAttribute("aria-expanded", "false");
};
var email, type, consentGiven = false;
var verificationModalContent = `
`;
var gdprSendRequest = function(callback) {
fetch('https://www.cloudflare.com/cdn-cgi/trace', {
method: 'GET' ,
headers: {
'Content-Type': 'text/plain',
},
})
.then(resp => resp.text())
.then(resp => {
if (!resp.error) {
let ipInfo = resp;
let formData = new FormData();
formData.append('shop', Shopify.shop);
formData.append('email', email);
formData.append('type', type);
formData.append('sourceOfRequest', 1);
formData.append('ipAddress', ipInfo);
formData.append('consentGiven', consentGiven);
formData.append('page', 'gdpr');
formData.append('lang', Shopify.locale ? Shopify.locale : '');
formData.append('gtranslateLang', isenseGDPR.Cookies.get('googtrans') ? isenseGDPR.Cookies.get('googtrans') : '');
fetch('https://gdpr.apps.isenselabs.com/gdprRequests/submitRequest', {
method: 'POST',
body: formData
})
.then(resp => resp.json())
.then(resp => {
if (!resp.error) {
gdprSlideUpAll();
if (resp.message.length) {
alert(resp.message);
} else {
alert('Din anmodning er blevet sendt med succes. Tjek venligst din e-mail for flere oplysninger.');
}
} else {
alert(resp.message);
}
if (typeof callback == 'function') {
callback(resp);
}
})
.catch(fejl => {
alert(error.message);
})
}
else {
alert(resp.besked);
}
})
}
/Føj modal til body, fordi den ellers ikke vil forblive centreret (selvom positionen er fast)
document.querySelector("body").insertAdjacentHTML('beforeend', verificationModalContent);
document.addEventListener("DOMContentLoaded", function() {
// Når brugeren klikker på
(x), lukkes modalvinduet
document.querySelector('.data-verification-close').addEventListener('click', function(e) {
e.preventDefault();
closeVerificationModal();
});
document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e) {
e.preventDefault();
// Registrer en href's klik, fordi den overskrives.
if(e.target.tagName === "A") {
window.open(e.target.href, '_blank');
return;
}
document.querySelector('#data-verification-icon').classList.add("clicked");
setTimeout(()=>{
toggleFadeiSense(document.querySelector("#data-verification-modal"), false);
document.querySelector('#data-verification-background .loading').style.display = 'inline-block';
consentGiven = true;
gdprSendRequest(function(resp) {
consentGiven = false;
closeVerificationModal();
});
}, 400);
});
});
function openVerificationModal(){
toggleFadeiSense(document.querySelector("#data-verification-modal"), true);
toggleFadeiSense(document.querySelector('#data-verification-background'), true);
}
function closeVerificationModal(){
toggleFadeiSense(document.querySelector("#data-verification-background"), false);
document.querySelector('#data-verification-icon').classList.remove("clicked");
document.querySelector('#data-verification-background .loading').style.display = 'none';
}
document.querySelector('#btn-gdpr-edit-account-request').addEventListener('click', function(e) {
e.preventDefault();
gdprSlideUpAll();
slideDown(document.querySelector('#form-gdpr-edit-account-request'), 200);
this.setAttribute("aria-expanded", "true");
});
document.querySelector('#form-gdpr-edit-account-request-submit').addEventListener('click', function(e) {
e.preventDefault();
email = document.querySelector('#form-gdpr-edit-account-request-email').value;
type = 'kunde/rediger';
openVerificationModal();
});
document.querySelectorAll('#btn-gdpr-requests-request, #btn-gdpr-personal-information-request, #btn-gdpr-orders-request').forEach(element => {
element.addEventListener('klik', function(e) {
e.preventDefault();
gdprSlideUpAll();
type = '';
switch(this.getAttribute('id')) {
case 'btn-gdpr-anmodninger-anmodning':
type = 'kunde/anmodninger';
break;
case 'btn-gdpr-personal-information-request':
type = 'kunde/personlig_info';
break;
case 'btn-gdpr-orders-request':
type = 'kunde/ordrer';
break;
}
document.querySelector('#form-gdpr-data-account-request-request-type').value = type;
slideDown(document.querySelector('#form-gdpr-data-kontoanmodning'), 200);
this.setAttribute("aria-expanded", "true");
})
});
document.querySelector('#form-gdpr-data-account-request-submit').addEventListener('click', function(e) {
e.preventDefault();
email = document.querySelector('#form-gdpr-data-account-request-email').value;
type = document.querySelector('#form-gdpr-data-account-request-request-type').value;
openVerificationModal();
});
document.querySelector('#btn-gdpr-personal-data-report-request').addEventListener('click', function(e) {
e.preventDefault();
gdprSlideUpAll();
slideDown(document.querySelector('#form-gdpr-personal-data-report-request'), 200);
this.setAttribute("aria-expanded", "true");
});
document.querySelector('#form-gdpr-personal-data-report-request-submit').addEventListener('click', function(e) {
e.preventDefault();
email = document.querySelector('#form-gdpr-personal-data-report-request-email').value;
type = 'kunde/rapport';
openVerificationModal();
});
document.querySelector('#btn-gdpr-delete-account-request').addEventListener('click', function(e) {
e.preventDefault();
gdprSlideUpAll();
slideDown(document.querySelector('#form-gdpr-delete-account-request'), 200);
this.setAttribute("aria-expanded", "true");
});
document.querySelector('#form-gdpr-delete-account-request-submit').addEventListener('click', function(e) {
e.preventDefault();
email = document.querySelector('#form-gdpr-delete-account-request-email').value;
type = 'kunde/slette';
openVerificationModal();
});