Inserimento nuova gestione cookie policy
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
// Parametri di configurazione
|
||||
const cookiePolicyUrl = "https://www.gestionespiaggia.it/it/cookiepolicy";
|
||||
const cookiePolicyUrl = "https://www.adriaticasistemi.it/it/cookiepolicy";
|
||||
const cookieApiUrl = "https://cookie.adriaticasistemi.it/consensi";
|
||||
const cookieApiH = "d4c1b34181a4b565e9878ff5d579940ad0f308adc73fbfa02addc1f36fd5412a";
|
||||
const cookieExpiresDays = 90;
|
||||
const cookieExpiresDays = 120;
|
||||
const cookieBsVersione = 5;
|
||||
|
||||
const cookieAcceptText = "Accetto tutti";
|
||||
const cookieDeclineText = "Rifiuto";
|
||||
@@ -20,12 +21,104 @@ const cookiePolicyText = `Utilizziamo cookie, anche di terze parti, per consenti
|
||||
href="${cookiePolicyUrl}"
|
||||
target="_blank">cookie policy</a>.`;
|
||||
|
||||
// Blocchi html e css
|
||||
const cookieBlockStyle = `<style>
|
||||
// Blocchi html e css Bootstrap 5
|
||||
const cookieBlockStyle = `<style data-bs-v="5">
|
||||
|
||||
/** COOKIE POLICY STYLE **/
|
||||
|
||||
#cookie_block {
|
||||
#cookie_banner {
|
||||
background-color: ${cookiePolicyMainColor};
|
||||
color: ${cookiePolicyMainColorContrast};
|
||||
bottom: 0;
|
||||
height: auto;
|
||||
padding: 16px 16px 12px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
#cookie_banner a {
|
||||
color: ${cookiePolicyMainColorContrast};
|
||||
}
|
||||
|
||||
#cookie_banner a.cookie_link{
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
#cookie_banner a.btn {
|
||||
border: 1px solid ${cookiePolicyMainColorContrast};
|
||||
border-radius: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cookie_banner a.btn:hover {
|
||||
background-color: ${cookiePolicyMainColorContrast};
|
||||
color: ${cookiePolicyMainColor};
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cookie_main_btn {
|
||||
display: block;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 10px;
|
||||
padding: 10px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%);
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
#cookie_main_btn:hover{
|
||||
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 50%);
|
||||
}
|
||||
|
||||
#cookie_main_btn img{
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
#close_btn{
|
||||
padding-right: 4px;
|
||||
margin-bottom: 4px;
|
||||
color: #9D9D9D;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#close_btn:hover{
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
</style>`;
|
||||
const cookieBlockHtml = `
|
||||
<div id="cookie_block" data-bs-v="5">
|
||||
<div id="cookie_main_btn">
|
||||
<img src="./cookie/cookies-icon.svg" />
|
||||
</div>
|
||||
<div id="cookie_banner">
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-9 text-justify mt-1">
|
||||
${cookiePolicyText}
|
||||
</div>
|
||||
<div class="col-12 col-md-3 mb-2">
|
||||
<i id="close_btn" class="fa fa-times pull-right"></i>
|
||||
<div class="clearfix"></div>
|
||||
<div class="d-grid gap-2">
|
||||
<a data-cookie="all" href="#" class="btn btn-outline-light btn-sm cookie_btn"><i class="fa fa-check fa-fw"></i> ${cookieAcceptText}</a>
|
||||
<a data-cookie="tecnici" href="#" class="btn btn-outline-light btn-sm cookie_btn"><i class="fa fa-times fa-fw"></i> ${cookieDeclineText}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
// Blocchi Html per Bootstrap 4
|
||||
const cookieBlockStyle_Bs4 = `<style data-bs-v="4">
|
||||
|
||||
/** COOKIE POLICY STYLE **/
|
||||
|
||||
#cookie_banner {
|
||||
background-color: ${cookiePolicyMainColor};
|
||||
color: ${cookiePolicyMainColorContrast};
|
||||
bottom: 0;
|
||||
@@ -37,46 +130,95 @@ const cookieBlockStyle = `<style>
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#cookie_block a {
|
||||
#cookie_banner a {
|
||||
color: ${cookiePolicyMainColorContrast};
|
||||
}
|
||||
|
||||
#cookie_block a.cookie_link{
|
||||
#cookie_banner a.cookie_link{
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
#cookie_block a.btn {
|
||||
#cookie_banner a.btn {
|
||||
border: 1px solid ${cookiePolicyMainColorContrast};
|
||||
border-radius: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cookie_block a.btn:hover {
|
||||
#cookie_banner a.btn:hover {
|
||||
background-color: ${cookiePolicyMainColorContrast};
|
||||
color: ${cookiePolicyMainColor};
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cookie_main_btn {
|
||||
display: block;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 10px;
|
||||
padding: 10px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%);
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
#cookie_main_btn:hover{
|
||||
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 50%);
|
||||
}
|
||||
|
||||
#cookie_main_btn img{
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
#close_btn{
|
||||
padding-right: 8px;
|
||||
color: #9D9D9D;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#close_btn:hover{
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
</style>`;
|
||||
const cookieBlockHtml = `<div id="cookie_block">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-9 text-justify">
|
||||
${cookiePolicyText}
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-3">
|
||||
<a data-cookie="all" href="#" class="btn pull-right btn-sm mt-2 cookie_btn"><i class="fa fa-check fa-fw"></i> ${cookieAcceptText}</a>
|
||||
<a data-cookie="tecnici" href="#" class="btn pull-right btn-sm mt-2 cookie_btn"><i class="fa fa-times fa-fw"></i> ${cookieDeclineText}</a>
|
||||
const cookieBlockHtml_Bs4 = `
|
||||
<div id="cookie_block" data-bs-v="4">
|
||||
<div id="cookie_main_btn">
|
||||
<img src="./cookie/cookies-icon.svg" />
|
||||
</div>
|
||||
<div id="cookie_banner">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-9 text-justify">
|
||||
${cookiePolicyText}
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-3">
|
||||
<i id="close_btn" class="fa fa-times pull-right"></i>
|
||||
<div class="clearfix"></div>
|
||||
<a data-cookie="all" href="#" class="btn pull-right btn-sm mt-2 cookie_btn"><i class="fa fa-check fa-fw"></i> ${cookieAcceptText}</a>
|
||||
<a data-cookie="tecnici" href="#" class="btn pull-right btn-sm mt-2 cookie_btn"><i class="fa fa-times fa-fw"></i> ${cookieDeclineText}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
// Terze Parti Html Block
|
||||
const cookieAnalyticsGTagBlock = `
|
||||
<script class="gtag_block" async src="https://www.googletagmanager.com/gtag/js?id=UA-15275419-1"></script>
|
||||
<script class="gtag_block">
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-15275419-1');
|
||||
</script>`;
|
||||
|
||||
// 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 = "";
|
||||
} else var expires = "";
|
||||
|
||||
document.cookie = name + "=" + value + expires + "; path=/";
|
||||
}
|
||||
@@ -96,28 +238,54 @@ function eraseCookie(name) {
|
||||
createCookie(name, "", -1);
|
||||
}
|
||||
|
||||
function removeCookieTerzeParti() {
|
||||
$('.gtag_block').remove();
|
||||
}
|
||||
|
||||
function addCookieTerzeParti() {
|
||||
$(document.head).append(cookieAnalyticsGTagBlock);
|
||||
}
|
||||
|
||||
function closeBanner(slide = true){
|
||||
const cookieBanner = $('#cookie_banner');
|
||||
const cookieMainBtn = $('#cookie_main_btn');
|
||||
slide ? cookieBanner.slideUp() : cookieBanner.hide();
|
||||
slide ? cookieMainBtn.slideDown() : cookieMainBtn.show();
|
||||
}
|
||||
|
||||
function showBanner(slide = true){
|
||||
const cookieBanner = $('#cookie_banner');
|
||||
const cookieMainBtn = $('#cookie_main_btn');
|
||||
slide ? cookieBanner.slideDown() : cookieBanner.show();
|
||||
slide ? cookieMainBtn.slideUp() : cookieMainBtn.hide();
|
||||
}
|
||||
|
||||
function initCookiePlugin(){
|
||||
const cookieStyle = cookieBsVersione === 4 ? cookieBlockStyle_Bs4 : cookieBlockStyle;
|
||||
const cookieHtml = cookieBsVersione === 4 ? cookieBlockHtml_Bs4 : cookieBlockHtml;
|
||||
$(document.head).append(cookieStyle);
|
||||
$(document.body).append(cookieHtml);
|
||||
}
|
||||
|
||||
// Controller
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$(document.head).append(cookieBlockStyle);
|
||||
$(document.body).append(cookieBlockHtml);
|
||||
const cookieBlock = $('#cookie_block');
|
||||
initCookiePlugin();
|
||||
|
||||
// const cookiePolicyInfo = readCookie('cookiePolicyInfo');
|
||||
const cookiePolicyInfo = JSON.parse(readCookie('cookiePolicyInfo'));
|
||||
const displayCookiePolicy = readCookie('displayCookiePolicy');
|
||||
|
||||
if(displayCookiePolicy){
|
||||
cookieBlock.hide();
|
||||
}else{
|
||||
cookieBlock.show();
|
||||
}
|
||||
displayCookiePolicy ? closeBanner(false) : showBanner(false);
|
||||
|
||||
}).delegate('.cookie_btn','click',(link) => {
|
||||
// Gestione Cookie Terze Parti
|
||||
(cookiePolicyInfo && cookiePolicyInfo.CheckCookieTerzeParti) ? addCookieTerzeParti() : undefined;
|
||||
|
||||
}).delegate('.cookie_btn', 'click', (link) => {
|
||||
link.preventDefault();
|
||||
|
||||
const element = $(link.target);
|
||||
if(element.attr('disabled')) return;
|
||||
if (element.attr('disabled')) return;
|
||||
|
||||
const icon = element.children('i');
|
||||
|
||||
@@ -135,17 +303,20 @@ $(document).ready(function () {
|
||||
})
|
||||
};
|
||||
|
||||
const iconName = CheckCookieTerzeParti ? 'fa-check':'fa-times';
|
||||
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};
|
||||
if (cookieApiH) callSettings.headers = {Authorization: cookieApiH};
|
||||
|
||||
$.ajax(callSettings).done((res) => {
|
||||
createCookie('displayCookiePolicy', res.Identificativo, cookieExpiresDays);
|
||||
createCookie('cookiePolicyInfo', JSON.stringify(res), cookieExpiresDays);
|
||||
|
||||
$('#cookie_block').slideUp();
|
||||
// Inserisce i blocchi autorizzati con i cookie di terze parti
|
||||
res.CheckCookieTerzeParti ? addCookieTerzeParti() : removeCookieTerzeParti();
|
||||
|
||||
closeBanner();
|
||||
}).fail(() => {
|
||||
eraseCookie('displayCookiePolicy');
|
||||
eraseCookie('cookiePolicyInfo');
|
||||
@@ -153,4 +324,8 @@ $(document).ready(function () {
|
||||
$('.cookie_btn').removeAttr('disabled');
|
||||
icon.removeClass('fa-circle-o-notch fa-spin').addClass(iconName);
|
||||
});
|
||||
}).delegate('#cookie_main_btn', 'click', () => {
|
||||
showBanner();
|
||||
}).delegate('#close_btn', 'click', () => {
|
||||
closeBanner();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user