From c61b4c812a763cc1adcc47d055d330ef7e93486c Mon Sep 17 00:00:00 2001 From: Giacomo G Date: Thu, 10 Feb 2022 12:58:08 +0100 Subject: [PATCH] Inserimento nuova gestione cookie policy --- application/layouts/scripts/layout.phtml | 6 +- .../scripts/public/_privacyPolicy.phtml | 60 ------- public/front/cookie/cookie.as.js | 156 ++++++++++++++++++ public/front/cookie/cookie.as.min.js | 56 +++++++ 4 files changed, 214 insertions(+), 64 deletions(-) delete mode 100644 application/layouts/scripts/public/_privacyPolicy.phtml create mode 100644 public/front/cookie/cookie.as.js create mode 100644 public/front/cookie/cookie.as.min.js diff --git a/application/layouts/scripts/layout.phtml b/application/layouts/scripts/layout.phtml index be5852e..1e260fe 100644 --- a/application/layouts/scripts/layout.phtml +++ b/application/layouts/scripts/layout.phtml @@ -74,10 +74,8 @@ integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"> - - - render('public/_privacyPolicy.phtml'); ?> - + + diff --git a/application/layouts/scripts/public/_privacyPolicy.phtml b/application/layouts/scripts/public/_privacyPolicy.phtml deleted file mode 100644 index f8bd850..0000000 --- a/application/layouts/scripts/public/_privacyPolicy.phtml +++ /dev/null @@ -1,60 +0,0 @@ - - -
-
-
- Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento - ed utili alle finalità illustrate nella privacy policy e cookie policy - Ok,acconsento -
-
-
- - diff --git a/public/front/cookie/cookie.as.js b/public/front/cookie/cookie.as.js new file mode 100644 index 0000000..a905afd --- /dev/null +++ b/public/front/cookie/cookie.as.js @@ -0,0 +1,156 @@ +// Parametri di configurazione +const cookiePolicyUrl = "https://www.gestionespiaggia.it/it/cookiepolicy"; +const cookieApiUrl = "https://cookie.adriaticasistemi.it/consensi"; +const cookieApiH = "d4c1b34181a4b565e9878ff5d579940ad0f308adc73fbfa02addc1f36fd5412a"; +const cookieExpiresDays = 90; + +const cookieAcceptText = "Accetto tutti"; +const cookieDeclineText = "Rifiuto"; +const cookiePolicyMainColor = "#F4C058"; +const cookiePolicyMainColorContrast = "#FFFFFF"; +const cookiePolicyText = `Utilizziamo cookie, anche di terze parti, per consentire il funzionamento del nostro sito e dei servizi + offerti e per misurare in forma aggregata il traffico e le prestazioni dello stesso e dei relativi servizi + nonché, previo tuo consenso, per utilizzare dati sulla tua attività navigazione, al fine di migliorare le + prestazioni, personalizzare la navigazione sulla base delle tue preferenze, inviare pubblicità mirata. + Cliccando su “${cookieAcceptText}” acconsenti all’attivazione di tutti i cookie. + Cliccando su "${cookieDeclineText}" permarranno le + impostazioni di default e, dunque, continuerai a navigare in assenza di cookie o altri strumenti di + tracciamento diversi da quelli tecnici. Per maggiori informazioni sui cookie utilizzati, consulta la cookie policy.`; + +// Blocchi html e css +const cookieBlockStyle = ``; +const cookieBlockHtml = ``; + +// Funzioni per la gestione dei cookie +function createCookie(name, value, days) { + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + var expires = "; expires=" + date.toGMTString(); + } + else var expires = ""; + + document.cookie = name + "=" + value + expires + "; path=/"; +} + +function readCookie(name) { + let nameEQ = name + "="; + let ca = document.cookie.split(';'); + for (let i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1, c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); + } + return null; +} + +function eraseCookie(name) { + createCookie(name, "", -1); +} + +// Controller + +$(document).ready(function () { + + $(document.head).append(cookieBlockStyle); + $(document.body).append(cookieBlockHtml); + const cookieBlock = $('#cookie_block'); + + // const cookiePolicyInfo = readCookie('cookiePolicyInfo'); + const displayCookiePolicy = readCookie('displayCookiePolicy'); + + if(displayCookiePolicy){ + cookieBlock.hide(); + }else{ + cookieBlock.show(); + } + +}).delegate('.cookie_btn','click',(link) => { + link.preventDefault(); + + const element = $(link.target); + if(element.attr('disabled')) return; + + const icon = element.children('i'); + + const CheckCookieTerzeParti = element.data('cookie') === "all"; + + const callSettings = { + url: cookieApiUrl, + type: 'POST', + dataType: 'json', + contentType: "application/json", + data: JSON.stringify({ + CheckCookieTecnici: true, + CheckCookieTerzeParti, + UrlSito: window.location.host + }) + }; + + const iconName = CheckCookieTerzeParti ? 'fa-check':'fa-times'; + icon.removeClass(iconName).addClass('fa-circle-o-notch fa-spin'); + $('.cookie_btn').attr('disabled', true); + + if(cookieApiH) callSettings.headers = {Authorization: cookieApiH}; + + $.ajax(callSettings).done((res) => { + createCookie('displayCookiePolicy', res.Identificativo, cookieExpiresDays); + createCookie('cookiePolicyInfo', JSON.stringify(res), cookieExpiresDays); + + $('#cookie_block').slideUp(); + }).fail(() => { + eraseCookie('displayCookiePolicy'); + eraseCookie('cookiePolicyInfo'); + }).always(() => { + $('.cookie_btn').removeAttr('disabled'); + icon.removeClass('fa-circle-o-notch fa-spin').addClass(iconName); + }); +}); diff --git a/public/front/cookie/cookie.as.min.js b/public/front/cookie/cookie.as.min.js new file mode 100644 index 0000000..89a18b4 --- /dev/null +++ b/public/front/cookie/cookie.as.min.js @@ -0,0 +1,56 @@ +const cookiePolicyUrl="https://www.gestionespiaggia.it/it/cookiepolicy";const cookieApiUrl="https://cookie.adriaticasistemi.it/consensi";const cookieApiH="d4c1b34181a4b565e9878ff5d579940ad0f308adc73fbfa02addc1f36fd5412a";const cookieExpiresDays=90;const cookieAcceptText="Accetto tutti";const cookieDeclineText="Rifiuto";const cookiePolicyMainColor="#F4C058";const cookiePolicyMainColorContrast="#FFFFFF";const cookiePolicyText=`Utilizziamo cookie, anche di terze parti, per consentire il funzionamento del nostro sito e dei servizi + offerti e per misurare in forma aggregata il traffico e le prestazioni dello stesso e dei relativi servizi + nonché, previo tuo consenso, per utilizzare dati sulla tua attività navigazione, al fine di migliorare le + prestazioni, personalizzare la navigazione sulla base delle tue preferenze, inviare pubblicità mirata. + Cliccando su “${cookieAcceptText}” acconsenti all’attivazione di tutti i cookie. + Cliccando su "${cookieDeclineText}" permarranno le + impostazioni di default e, dunque, continuerai a navigare in assenza di cookie o altri strumenti di + tracciamento diversi da quelli tecnici. Per maggiori informazioni sui cookie utilizzati, consulta la cookie policy.`;const cookieBlockStyle=``;const cookieBlockHtml=``;function createCookie(name,value,days){if(days){var date=new Date;date.setTime(date.getTime()+days*24*60*60*1e3);var expires="; expires="+date.toGMTString()}else var expires="";document.cookie=name+"="+value+expires+"; path=/"}function readCookie(name){let nameEQ=name+"=";let ca=document.cookie.split(";");for(let i=0;i{link.preventDefault();const element=$(link.target);if(element.attr("disabled"))return;const icon=element.children("i");const CheckCookieTerzeParti=element.data("cookie")==="all";const callSettings={url:cookieApiUrl,type:"POST",dataType:"json",contentType:"application/json",data:JSON.stringify({CheckCookieTecnici:true,CheckCookieTerzeParti:CheckCookieTerzeParti,UrlSito:window.location.host})};const iconName=CheckCookieTerzeParti?"fa-check":"fa-times";icon.removeClass(iconName).addClass("fa-circle-o-notch fa-spin");$(".cookie_btn").attr("disabled",true);if(cookieApiH)callSettings.headers={Authorization:cookieApiH};$.ajax(callSettings).done(res=>{createCookie("displayCookiePolicy",res.Identificativo,cookieExpiresDays);createCookie("cookiePolicyInfo",JSON.stringify(res),cookieExpiresDays);$("#cookie_block").slideUp()}).fail(()=>{eraseCookie("displayCookiePolicy");eraseCookie("cookiePolicyInfo")}).always(()=>{$(".cookie_btn").removeAttr("disabled");icon.removeClass("fa-circle-o-notch fa-spin").addClass(iconName)})}); \ No newline at end of file