GDPR Kérésküldő függvény és töltőjelző 1500 ms végtelen forgás 360 fokban

```html

#form-gdpr-edit-account-request,

#form-gdpr-requests-request,

#form-gdpr-personal-information-request,

#form-gdpr-orders-request,

#form-gdpr-personal-data-report-request,

#form-gdpr-delete-account-request {

display: none;

}

#gdpr_page button {

background-color: transparent;

border: 0;

border-bottom: 1px solid black;

padding: 0px;

}

/* Modal background */

#data-verification-background {

display: none;

position: fixed;

z-index: 1;

padding-top: calc(50vh - 83px);

left: 0;

top: 0;

width: 100%;

height: 100%;

overflow: auto;

background-color: rgb(0,0,0);

background-color: rgba(0,0,0,0.4);

opacity: unset;

z-index: 9999;

}

/* Modal Content */

#data-verification-modal {

background-color: #fefefe;

margin: auto;

padding: 16px;

border: 1px solid #888;

width: 38%;

opacity: 1;

}

/* Modal Close Button */

.data-verification-close {

color: #aaaaaa;

float: right;

font-size: 28px;

font-weight: bold;

line-height: 17px;

background-color: transparent;

border: 0px;

padding: 0px;

}

.data-verification-close:hover {

color: #000;

text-decoration: none;

cursor: pointer;

}

/* Checkbox Text */

#data-verification-container p {

display: inline-block;

padding: 0;

margin: 0;

line-height: 24px;

padding-left: 10px;

vertical-align: top;

width: calc(100% - 45px);

}

#data-verification-container a, #data-verification-container a:hover{

text-decoration: underline!important;

color: #4285f4;

}

#data-verification-container input {

opacity: 0;

width: 0;

height: 0;

margin: 0;

padding: 0;

}

/* Checkbox Icon */

#data-verification-icon {

cursor: pointer;

position: relative;

margin: auto;

width: 18px;

height: 18px;

-webkit-tap-highlight-color: transparent;

transform: translate3d(0, 0, 0);

margin-top: 2px;

}

#data-verification-icon:before {

content: "";

position: absolute;

top: -7px;

left: -7px;

width: 32px;

height: 32px;

border-radius: 50%;

background: rgba(34,50,84,0.03);

opacity: 0;

transition: opacity 0.2s ease;

}

#data-verification-icon svg {

position: relative;

z-index: 1;

fill: none;

stroke-linecap: round;

stroke-linejoin: round;

stroke: #c8ccd4;

stroke-width: 1.5;

transform: translate3d(0, 0, 0);

transition: all 0.2s ease;

}

#data-verification-icon svg path {

stroke-dasharray: 60;

stroke-dashoffset: 0;

}

#data-verification-icon svg polyline {

stroke-dasharray: 22;

stroke-dashoffset: 66;

}

#data-verification-icon:hover:before {

opacity: 1;

}

#data-verification-container:hover #data-verification-icon svg {

stroke: #4285f4;

}

#data-verification-icon.clicked svg {

stroke: #4285f4;

}

#data-verification-icon.clicked svg path {

stroke-dashoffset: 60;

transition: all 0.3s linear;

}

#data-verification-icon.clicked svg polyline {

stroke-dashoffset: 42;

transition: all 0.2s linear;

transition-delay: 0.15s;

}

/* Accessibility design */

#data-verification-icon:focus, .data-verification-close:focus, #data-verification-container input:focus ~ #data-verification-icon svg, #data-verification-container a:focus {

box-shadow: 0 0 0 3px rgba(21, 156, 228, 0.4);

transition: all 0.3s ease;

outline: none;

transform: scale(1.06);

}

/* Loading Element */

.loading {

display: none;

top:50vh;

left:50vw;

position:fixed;

}

.loading:not(:required):after {

content: '';

display: block;

font-size: 10px;

width: 1em;

height: 1em;

margin-top: -0.5em;

-webkit-animation: spinner 1500ms infinite linear;

-moz-animation: spinner 1500ms infinite linear;

-ms-animation: spinner 1500ms infinite linear;

-o-animation: spinner 1500ms infinite linear;

animation: spinner 1500ms infinite linear;

border-radius: 0.5em;

-webkit-box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0;

box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0;

}

#gdpr_page .list-unstyled li button {

cursor: pointer;

}

.show-isense {

transition: opacity 400ms !important;

}

.hide-isense {

opacity: 0 !important;

transition: 0.4s ease-out;

}

/* Modal changes on mobile resolution*/

@media only screen and (max-width: 600px) {

#data-verification-modal {

width: 90%;

}

}

/* Animation */

@-webkit-keyframes spinner {

0% {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

100% {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

@-moz-keyframes spinner {

0% {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

100% {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

@-o-keyframes spinner {

0% {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

100% {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

@keyframes spinner {

0% {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

100% {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

When you submit a Data Subject Access Request (DSAR) through our Compliance page, our compliance provider, Consentmo, processes your IP address and email solely to fulfill your request. This ensures secure and verified handling of your personal information. For more details on how your data is managed, you can review Consentmo’s Data Processing Policy by clicking this link: Consentmo’s Data Processing Policy.


Data Rectification

If your account data is inaccurate or requires updates, you can efficiently rectify it using the provided link below. This feature ensures that your personal information, crucial for a seamless experience with our range of products like women’s bags & wallets, remains current and precise.

Data Portability

We empower you to download all the data we store, which is utilized to enhance your shopping experience, particularly when browsing our exquisite collection of women’s bags & wallets. This ensures you maintain full control and accessibility over your personal data.

Access to Personal Data

You can request a comprehensive report that details all personal information we retain about you. We commit to responding to your request within 30 days, providing you with transparency and access to your data. This process is facilitated through the gdprsendrequest function resp, ensuring secure delivery of your information.

Right to be Forgotten

This option allows you to permanently remove your personal and other associated data from our store. Please be aware that initiating this process will lead to the deletion of your account, rendering it inaccessible for future use. The loading animation, resembling a spinner 1500ms infinite, rotating at 360deg, will indicate the processing of your request.

Right to Restrict Processing

Under specific circumstances, you have the right to request that we limit or temporarily cease the processing of your personal data. For assistance with exercising this right, please contact us directly at stiledonnabags@gmail.com.

Right to Object

You are entitled to object to certain types of data processing activities, including direct marketing and processing based on legitimate interests. To submit your objection and ensure your preferences are respected, please reach out to us at stiledonnabags@gmail.com.

Contact Information

For any inquiries regarding your personal data or privacy rights, please contact our dedicated Data Protection Officer (DPO) at the following details:

Email: stiledonnabags@gmail.com

Address: Via Testulla 149, 95122 Catania Catania, Italy

Right to Lodge a Complaint

Should you feel that your concerns have not been adequately addressed, you retain the right to lodge a complaint with your national data protection authority.

/* SLIDE UP */

let slideUp = (target, duration=500) => {

target.style.transitionProperty = 'height, margin, padding';

target.style.transitionDuration = duration + 'ms';

target.style.boxSizing = 'border-box';

target.style.height = target.offsetHeight + 'px';

target.offsetHeight;

target.style.overflow = 'hidden';

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('height');

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');

}, duration);

}

/* 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 = 'hidden';

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 = "height, margin, padding";

target.style.transitionDuration = duration + 'ms';

target.style.height = height + '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');

}, duration);

}, 100)

}

/* TOOGLE */

var slideToggle = (target, duration = 500) => {

if (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);

document.querySelector('#btn-gdpr-edit-account-request').setAttribute("aria-expanded", "false");

slideUp(document.querySelector('#form-gdpr-requests-request'), 100);

document.querySelector('#btn-gdpr-requests-request').setAttribute("aria-expanded", "false");

slideUp(document.querySelector('#form-gdpr-personal-information-request'), 100);

document.querySelector('#btn-gdpr-personal-information-request').setAttribute("aria-expanded", "false");

slideUp(document.querySelector('#form-gdpr-orders-request'), 100);

document.querySelector('#btn-gdpr-orders-request').setAttribute("aria-expanded", "false");

slideUp(document.querySelector('#form-gdpr-personal-data-report-request'), 100);

document.querySelector('#btn-gdpr-personal-data-report-request').setAttribute("aria-expanded", "false");

slideUp(document.querySelector('#form-gdpr-delete-account-request'), 100);

document.querySelector('#btn-gdpr-delete-account-request').setAttribute("aria-expanded", "false");

document.querySelector('#gdpr_page button').setAttribute("aria-expanded", "false");

};

var email, type, consentGiven = false;

var verificationModalContent = '

I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy &amp Terms of Service.

';

var isEmailValid = function(email) {

let regex = /^(([^()\[\]\\.,;:\s@"]+(\.[^()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

if (email == '' || email == undefined) {

return false;

} else {

return regex.test(email);

}

}

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('Your request has been submitted successfully. Please check your email for more information.');

}

} else {

alert(resp.message);

}

if (typeof callback == 'function') {

callback(resp);

}

})

.catch(error => {

alert(error.message);

})

}

else {

alert(resp.message);

}

})

}

//Append modal to body, because otherwise it will not stay centered(even if position is fixed)

document.querySelector("body").insertAdjacentHTML( 'beforeend', verificationModalContent);

document.addEventListener("DOMContentLoaded", function() {

// When the user clicks on (x), close the modal

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();

// Detect a href's click, because it is overwritten.

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(){

if(!isEmailValid(email)) {

alert('Invalid email');

return;

}

toggleFadeiSense(document.querySelector("#data-verification-modal"), true);

toggleFadeiSense(document.querySelector('#data-verification-background'), true);

document.querySelector('#data-verification-container input').focus();

}

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';

// Focus the button of the request type that was picked

let gdprForms = document.querySelectorAll('.form-gdpr-request');

gdprForms.forEach(function(gdprForm) {

if (gdprForm.style.display !== "none") {

let gdprFormLinks = gdprForm.previousElementSibling.querySelectorAll('li');

if (gdprFormLinks.length === 1) {

gdprFormLinks[0].querySelector('button').focus();

} else {

// Focus logic for Data Portability requests

gdprFormLinks = gdprForm.parentElement;

if (gdprFormLinks.nodeName === 'LI') {

gdprFormLinks.querySelector('button').focus();

}

}

}

});

}

document.querySelector('#btn-gdpr-edit-account-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-edit-account-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-edit-account-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

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 = 'customer/edit';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

document.querySelector('#btn-gdpr-requests-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-requests-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-requests-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

document.querySelector('#form-gdpr-requests-request-submit').addEventListener('click', function(e) {

e.preventDefault();

email = document.querySelector('#form-gdpr-requests-request-email').value;

type = 'customer/requests';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

document.querySelector('#btn-gdpr-personal-information-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-personal-information-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-personal-information-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

document.querySelector('#form-gdpr-personal-information-request-submit').addEventListener('click', function(e) {

e.preventDefault();

email = document.querySelector('#form-gdpr-personal-information-request-email').value;

type = 'customer/personal_info';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

document.querySelector('#btn-gdpr-orders-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-orders-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-orders-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

document.querySelector('#form-gdpr-orders-request-submit').addEventListener('click', function(e) {

e.preventDefault();

email = document.querySelector('#form-gdpr-orders-request-email').value;

type = 'customer/orders';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

document.querySelector('#btn-gdpr-personal-data-report-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-personal-data-report-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-personal-data-report-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

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 = 'customer/report';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

document.querySelector('#btn-gdpr-delete-account-request').addEventListener('click', function(e) {

e.preventDefault();

let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;

gdprSlideUpAll();

if(!isExpanded) {

slideDown(document.querySelector('#form-gdpr-delete-account-request'), 200);

this.setAttribute("aria-expanded", "true");

} else {

slideUp(document.querySelector('#form-gdpr-delete-account-request'), 200);

this.setAttribute("aria-expanded", "false");

}

});

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 = 'customer/delete';

gdprSendRequest(function(resp) {

consentGiven = true;

});

});

// Keyboard navigation in data verification modal for accesibility

document.querySelector('#data-verification-modal').addEventListener('keydown', function(e) {

let isTabPressed = e.keyCode === 9 || e.key === "Tab" || e.code === "Tab";

let isEscapePressed = e.keyCode === 27 || e.key === "Escape" || e.code === "Escape";

let isSpacePressed = event.keyCode === 32 || e.key === " " || event.code === "Space";

let isEnterPressed = event.keyCode === 13 || e.key === "Enter" || event.code === "Enter";

let dataVerificationCloseButton = document.querySelector('.data-verification-close');

let dataVerificationCheckbox = document.querySelector('#data-verification-container input');

let dataVerificationLink = document.querySelector('#data-verification-container a');

// This function saves us the trouble of calling e.preventDefault() after every focusing

let executeFocus = (focusElement) => {focusElement.focus();e.preventDefault();}

if (isEscapePressed) {

if (dataVerificationCloseButton) {

dataVerificationCloseButton.click();

}

}

if (isSpacePressed || isEnterPressed) {

if (document.activeElement === dataVerificationCheckbox) {

document.querySelector('#data-verification-container #data-verification-icon').click();

}

}

if (isTabPressed) {

if (e.shiftKey) {

if (dataVerificationCloseButton && document.activeElement === dataVerificationCloseButton) {

executeFocus(dataVerificationLink);

}

} else {

if (dataVerificationLink && document.activeElement === dataVerificationLink) {

executeFocus(dataVerificationCloseButton);

}

}

}

});

```