/* Style the form */ body { /* font-family: apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; */ } h1 { font-weight: unset; font-size: 24px; line-height: 32px; text-align: center; color: rgb(61, 61, 61); } p { margin: 0px; font-weight: unset; font-size: 20px; line-height: 28px; text-align: center; color: rgba(61, 61, 61, 0.7); } #gdpr_compliance_form { position: relative; background-color: #ffffff; margin: 0px auto 100px auto; padding: 0px 40px 0px 40px; min-height: 600px; width: 70%; min-width: 300px; max-width: 720px; font-family: "Lato", sans-serif; } #nextBtn { position: relative; font-size: 24px; font-weight: 700; transition-duration: 0.1s; transition-property: background-color, color, border-color, opacity, box-shadow; transition-timing-function: ease-out; outline: none; border: 1px solid transparent; margin: 0px; box-shadow: rgba(0, 0, 0, 0.1) 0px 3px 12px 0px; padding: 8px 18px; min-height: 48px; background-color: rgb(202, 210, 217); color: rgb(69, 83, 96); cursor: pointer; border-radius: 5px; appearance: button; } fieldset { border: 0px; padding: 0.01em 0px 0px; margin: 0px; min-width: 0px; } .headerDomanda { position: relative; font-size: 24px; line-height: 32px; color: rgb(61, 61, 61); box-sizing: inherit; } .numDomanda { position: absolute; height: 32px; display: flex; flex-direction: row; align-items: center; gap: 4px; right: 100%; margin-right: 12px; color: rgb(172, 181, 191); font-size: 14px; line-height: 20px; outline: none; } .bodyDomanda { display: inline-flex; gap: 8px; margin-top: 20px; box-sizing: inherit; } .freccia-numDomanda { font-size: 12px; } .risposta { position: relative; display: flex; align-items: center; border-radius: 4px; background-color: rgba(172, 181, 191, 0.1); box-shadow: rgba(172, 181, 191, 0.6) 0px 0px 0px 1px inset; max-width: 100%; min-width: 75px; min-height: 40px; padding-top: 4px; transition-duration: 0.1s; transition-property: background-color, color, border-color, opacity, box-shadow; transition-timing-function: ease-out; cursor: pointer; opacity: 1; } .risposta:hover { background-color: #E6E9EC; } .risposta-selezionata { box-shadow: rgba(172, 181, 191, 0.8) 0px 0px 0px 2px inset; } .lettera-risposta { display: flex; align-self: flex-start; justify-content: center; align-items: center; border-width: 1px; border-style: solid; position: relative; margin: 4px 8px 0 8px; height: 24px; width: 24px; min-width: 22px; border-radius: 4px; font-size: 12px; font-weight: 700; text-align: center; line-height: 16px; font-family: sans-serif; border-color: rgba(172, 181, 191, 0.6); background-color: rgba(255, 255, 255, 0.8); color: rgb(172, 181, 191); } .lettera-risp-selezionata { background-color: rgba(172, 181, 191, 0.8); color: rgba(255, 255, 255, 0.8); } .testo-risposta { display: flex; align-items: center; padding-bottom: 3px; flex: 1 1 0%; min-width: 75px; text-align: left; font-weight: unset; font-size: 20px; line-height: 28px; color: rgb(171, 181, 191); margin: 0px 10px 0px 0px; } .div-email-input { margin-top: 32px; width: 100%; position: relative; } .email-input { display: block; width: 100%; color: rgb(171, 181, 191); padding: 0px 0px 8px; border: none; outline: none; border-radius: 0px; appearance: none; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; transform: translateZ(0px); font-size: 30px; line-height: unset; animation: 1ms ease 0s 1 normal none running native-autofill-in; transition: background-color 1e+08s ease 0s, box-shadow 0.1s ease-out 0s; box-shadow: rgba(172, 181, 181, 0.3) 0px 1px; background-color: transparent !important; } .email-input-focused { box-shadow: rgba(172, 181, 191) 0px 2px !important; } ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */ color: #ECEEF1; opacity: 1; /* Firefox */ } :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #ECEEF1; } ::-ms-input-placeholder { /* Microsoft Edge */ color: #ECEEF1; } .area-single-button { display: flex; justify-content: center; flex-direction: row; align-items: center; background-color: white; } .align-left-single-button { display: flex; justify-content: left; } .footer { position: relative; width: 100px; margin: 35px auto; } .expand-footer { width: 100%; margin: 15px 0px 15px 0px; } #navigation_buttons { display: flex; flex-direction: row-reverse; border-radius: 4px; background-color: rgb(202, 210, 217); margin-right: 8px; } .navButtons { position: relative; font-weight: 700; cursor: pointer; transition-duration: 0.1s; transition-property: background-color, color, border-color, opacity, box-shadow; transition-timing-function: ease-out; border: 1px solid transparent; margin: 0px; padding: 0px; width: 36px; min-width: 36px; height: 32px; background-color: rgb(202, 210, 217); color: rgb(69, 83, 96); } #navButtons-down { border-radius: 0 4px 4px 0; } #navButtons-up { border-radius: 4px 0px 0px 4px; } .navButtons-divider { background-color: rgba(69, 83, 96, 0.3); width: 1px; } button:disabled { background-color: rgba(239, 239, 239, 0.3) !important; color: rgba(16, 16, 16, 0.3) !important; border-color: rgba(195, 195, 195, 0.3) !important; cursor: default !important; } /* Hide all steps by default: */ .tab { display: none; } Verifica il tuo livello di adesione alla normativa GDPR Questo breve questionario di auto-valutazione ti aiuterà a comprendere a che punto sei nel percorso di adeguamento alla nuova normativa europea per la protezione dei dati personali (GDPR). Domanda 1 1 La tua Azienda è a conoscenza dei dati personali (es: dati dipendenti, clienti, iscritti newsletter, ecc …) trattati nello svolgimento del proprio business? 3 A Si, e sono stati correttamente mappati in relazione ai singoli processi aziendali 2 B Si, la mappatura dei dati personali è in progress 1 C No, ma siamo consapevoli di doverlo fare 0 D No, non ci siamo mai posti il problema Domanda 2 2 È stata effettuata un’analisi dei rischi relativa ai trattamenti dei dati personali? 3 A Sì, per ogni singolo trattamento sono stati classificati e quantificati i rischi 2 B Ce ne stiamo occupando in questo periodo 1 C No, non sapevamo di dover fare un'analisi dei rischi 0 D No, non abbiamo nemmeno effettuato il "data mapping" Domanda 3 3 La tua Azienda è obbligata a designare un DPO? 3 A Sì, ed è stato correttamente designato 3 B No, la mia Azienda non rientra nei casi di obbligatorietà del DPO 1 C Non sappiamo se siamo obbligati a designarlo 0 D Non abbiamo considerato il problema Domanda 4 4 La tua Azienda ha predisposto i Registri delle attività di trattamento dei dati personali? 3 A Si, sia il Registro del Titolare che del Responsabile del trattamento 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverli predisporre 0 D No, non sapevamo di doverli predisporre Domanda 5 5 È stata erogata una formazione privacy ai dipendenti che trattano dati personali? 3 A Si, la formazione privacy è stata erogata a tutti gli autorizzati al trattamento 2 B L’erogazione della formazione privacy è in progress 1 C No, ma sappiamo di doverla erogare 0 D No, non sapevamo che fosse un obbligo Domanda 6 6 Se presente un sistema di videosorveglianza, la tua Azienda si è posta il problema di richiedere un’autorizzazione all’Ispettorato del Lavoro? 3 A Sì, abbiamo verificato le aree di ripresa ed agito di conseguenza 3 B Non è presente un sistema di videosorveglianza 1 C No, ma sappiamo di dover gestire il problema 0 D No, non sapevamo di dover coinvolgere l'Ispettorato del Lavoro Domanda 7 7 Le persone che trattano dati nella tua azienda sono state formalmente autorizzate (hanno ricevuto una formale lettera di autorizzazione)? 3 A Si, abbiamo predisposto tutte le lettere di autorizzazione 2 B Ci stiamo attrezzando in questo momento 1 C No, ma sappiamo di dover gestire le autorizzazioni 0 D No, non sapevamo di dover predisporre le lettere di autorizzazioni Domanda 8 8 La tua Azienda ha definito una procedura per gestire una violazione dei dati personali? 3 A Sì, ed è stata portata a conoscenza di tutto il Personale 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverla predisporre 0 D No, non sapevamo di doverla predisporre Domanda 9 9 Sono stati correttamente definiti i tempi di conservazione dei documenti che contengono dati personali? 3 A Si, ad ogni file o documento cartaceo contenente dati personali è associato un preciso periodo di conservazione 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverli definire 0 D No, non sapevamo di dover stabilire un periodo di conservazione dei dati personali Domanda 10 10 E' previsto un obbligo di cambio password periodico o almeno ogni 90 giorni? 3 A Sì 2 B Ci stiamo lavorando 1 C No, ma sappiamo di dover provvedere 0 D No, non siamo a conoscenza di questo obbligo Domanda 11 11 Sono stati designati Responsabili del trattamento i fornitori che trattano dati personali per conto della tua Azienda (es.: consulente del lavoro)? 3 A Si, i Fornitori che trattano dati per conto nostro sono stati designati Responsabili del trattamento 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverli designare 0 D No, non sapevamo di doverli designare Responsabili del trattamento Domanda 12 12 La tua Azienda ha definito una procedura per gestire tempestivamente le richieste da parte degli Interessati? 3 A Si, ed è correttamente implementata 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverla predisporre 0 D No, non sapevamo di doverla predisporre Domanda 13 13 E' stata correttamente inserita una clausola privacy nei contratti predisposti dalla tua azienda? 3 A Sì 2 B Ci stiamo lavorando 1 C No, ma sappiamo di dover provvedere 0 D No, non siamo a conoscenza di questo obbligo Domanda 14 14 La tua Azienda ha inserito sul proprio sito web Privacy Policy adeguate? 3 A Sì, per ogni categoria di trattamento di dati personali, è stata predisposta adeguata Privacy Policy 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverle predisporre 0 D No, non sapevamo di doverle predisporre Domanda 15 15 Sul sito web aziendale è presente e correttamente configurato uno strumento di gestione dei cookie? 3 A Si, abbiamo installato una CMP (Consent Management Platform) correttamente configurata 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverlo installare 0 D No, non sapevamo di doverlo installare Domanda 16 16 Se sul sito vengono richieste informazioni e/o una mail di contatto, è presente l'informativa breve che rimanda alla policy completa? 3 A Sì 2 B Ci stiamo lavorando 1 C No, ma sappiamo di dover provvedere 0 D No, non siamo a conoscenza di questo obbligo Domanda 17 17 Per l'invio delle newsletter, la tua Azienda gestisce correttamente i consensi dei destinatari? 3 A Si, abbiamo uno strumento che ci permette di tenere traccia sia degli opt-in che degli opt-out 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverli gestire 0 D No, non sapevamo di doverli gestire Domanda 18 18 La tua azienda ha predisposto un sistema di disiscrizione dalla newsletter agevole e facilmente utilizzabile dagli interessati? 3 A Si, abbiamo uno strumento per un'agevole disiscrizione 2 B Ce ne stiamo occupando in questo periodo 1 C No, ma sappiamo di doverli gestire 0 D No, non sapevamo di doverli gestire Domanda 19 19 Se la tua azienda effettua attività di profilazione per finalità di marketing (es.: carta fedeltà, analisi newsletter, ecc …), provvede a gestire separatamente i relativi opt-in opt-out? 3 A Sì 3 B Non gestiamo attività di profilazione per finalità di marketing 1 C No, ma sappiamo di dover gestire il problema 0 D No, non sapevamo di dover provvedere Domanda 20 20 Infine, qual è il tuo indirizzo email? Lo useremo per inviarti un riepilogo con il risultato finale così che potrai consultarlo in futuro. Complimenti! Hai completato il questionario. Controlla le tue e-mail per scoprire a che punto sei nel tuo percorso di adeguamento al nuovo regolamento europeo per la privacy. IniziaPremi invio ↵ var currentTab = 0; // Current tab is set to be the first tab (0) showTab(currentTab); // Display the current tab function showTab(n) { // This function will display the specified tab of the form ... var x = document.getElementsByClassName("tab"); x[n].style.display = (n === 0) ? "flex" : "block"; x[n].classList.add('active'); if (n == (x.length - 1)) { document.querySelector('#footer1').style.display = 'none'; document.querySelector('#footer2').style.display = 'none'; } else if (n == (x.length - 2)) { document.getElementById("navButtons-down").setAttribute('disabled', ''); if (validateEmail(document.querySelector(".email-input").value)) { document.getElementById("nextBtn").removeAttribute('disabled'); } else { document.getElementById("nextBtn").setAttribute('disabled', ''); } document.getElementById("nextBtn").innerHTML = "Invia"; document.getElementById("nextBtn").classList.add("submit"); } else if (n != 0 && n != (x.length - 1)) { let tabAttiva = document.getElementsByClassName('active')[0]; if (tabAttiva.querySelector(".risposta-selezionata") === null) { document.getElementById("navButtons-down").setAttribute('disabled', ''); document.getElementById("nextBtn").setAttribute('disabled', ''); } else { document.getElementById("navButtons-down").removeAttribute('disabled'); document.getElementById("nextBtn").removeAttribute('disabled'); } // Allinea il button a sinistra... document.getElementsByClassName("area-single-button")[0].classList.add("align-left-single-button"); document.getElementsByClassName("footer")[0].classList.add("expand-footer"); document.getElementById("premi_invio_string").style.display = "none"; // Modifica il contenuto del button... document.getElementById("nextBtn").innerHTML = 'OK '; // Rimuove eventualmente l'attributo "disabled" dalle frecce di navigazione... document.getElementById("navButtons-up").removeAttribute('disabled'); // document.getElementById("navButtons-down").removeAttribute('disabled'); // Rimuove eventualmente la classe "submit" impedendo al tasto OK di inviare inavvertitamente chiamate ajax... document.getElementById("nextBtn").classList.remove("submit"); } else if (n == 0) { // Allinea il button al centro (se precedentemente allineato a sinistra)... document.getElementsByClassName("area-single-button")[0].classList.remove("align-left-single-button"); document.getElementsByClassName("footer")[0].classList.remove("expand-footer"); // document.getElementById("premi_invio_string").style.display = "inline-block"; // Modifica il contenuto del button... document.getElementById("nextBtn").innerHTML = "Inizia"; document.getElementById("nextBtn").removeAttribute('disabled'); // Disabilita la frecca di navigazione in su (indietro) perché ci troviamo alla prima pagina... document.getElementById("navButtons-up").setAttribute('disabled', ''); document.getElementById("navButtons-down").removeAttribute('disabled', ''); } // ... and run a function that displays the correct step indicator: // fixStepIndicator(n) } function nextPrev(n) { // This function will figure out which tab to display var x = document.getElementsByClassName("tab"); if (currentTab + n { footer.classList.add("animate__animated", "animate__fadeInUp"); footer.style.display = "block"; }, 400); } if (e.target.classList.contains("risposta") || e.target.closest(".risposta")) { let tutteRisposte = document.getElementsByClassName("risposta"); for (let risp of tutteRisposte) { if (risp.closest('.tab') && risp.closest('.tab').style.display === 'block') { risp.classList.remove("risposta-selezionata"); risp.children[1].classList.remove("lettera-risp-selezionata"); } }; let risposta = e.target.closest(".risposta"); risposta.classList.add("risposta-selezionata"); risposta.children[1].classList.add("lettera-risp-selezionata"); document.getElementById("navButtons-down").removeAttribute("disabled"); document.getElementById("nextBtn").removeAttribute("disabled"); } if ((e.target.id == 'nextBtn' || e.target.closest("#nextBtn")) && document.querySelector('#nextBtn').getAttribute('disabled') === null && (!e.target.classList.contains("submit") && !e.target.closest(".submit"))) { nextPrev(1); } else if (e.target.classList.contains("submit") || e.target.closest(".submit")) { document.getElementById("nextBtn").setAttribute("disabled", ''); let dati = []; let risposte = document.getElementsByClassName("risposta-selezionata"); let email = document.getElementsByClassName('email-input')[0].value; dati.push(email); for (let risposta of risposte) { let fieldset = risposta.closest("fieldset"); let aree = fieldset.classList.value.split(' '); let objDatiRisposta = { 'score': null, 'risposta': null, 'domanda': parseInt(fieldset.children[1].firstElementChild.firstElementChild.textContent), 'aree': aree } for (let datiRisposta of risposta.children) { if (datiRisposta.classList.contains("punteggio-risposta")) { objDatiRisposta.score = parseInt(datiRisposta.textContent); } else if (datiRisposta.classList.contains("lettera-risposta")) { objDatiRisposta.risposta = datiRisposta.textContent; } } dati.push(objDatiRisposta); } function sendFormData(data) { const url = "index.php?option=com_ajax&plugin=gdprform&format=json" let xhr = new XMLHttpRequest() xhr.open('POST', url, true) xhr.setRequestHeader('Content-type', 'application/json; charset=UTF-8'); xhr.send(JSON.stringify({'data': data})); xhr.onload = function (e) { if(xhr.status === 200) { console.log(xhr.responseText); console.log("I dati sono stati inviati con successo."); nextPrev(1); } else { console.log("Si è verificato un errore:"); console.log(xhr.responseText); alert("Si è verificato un errore durante l'invio dell'email."); document.getElementById("nextBtn").removeAttribute("disabled"); } } xhr.onerror = function(e) { console.log("Si è verificato un errore:"); console.log(e); alert("Si è verificato un errore durante l'invio dell'email."); document.getElementById("nextBtn").removeAttribute("disabled"); } } sendFormData(dati); } }); document.querySelector(".email-input").addEventListener('keyup', function(e) { if (validateEmail(document.querySelector(".email-input").value)) { document.getElementById("nextBtn").removeAttribute('disabled'); } else { document.getElementById("nextBtn").setAttribute('disabled', ''); } }); function validateEmail(mail) { if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test(mail)) { return (true) } else { return false; } } document.getElementsByClassName('email-input')[0].addEventListener("focusin", (e) => { e.target.classList.add('email-input-focused'); }); document.getElementsByClassName('email-input')[0].addEventListener("focusout", (e) => { e.target.classList.remove('email-input-focused'); });