157 lines
5.3 KiB
JavaScript
157 lines
5.3 KiB
JavaScript
// 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 <a
|
||
class="cookie_link"
|
||
href="${cookiePolicyUrl}"
|
||
target="_blank">cookie policy</a>.`;
|
||
|
||
// Blocchi html e css
|
||
const cookieBlockStyle = `<style>
|
||
|
||
/** COOKIE POLICY STYLE **/
|
||
|
||
#cookie_block {
|
||
background-color: ${cookiePolicyMainColor};
|
||
color: ${cookiePolicyMainColorContrast};
|
||
bottom: 0;
|
||
height: auto;
|
||
padding: 16px 16px 12px;
|
||
position: fixed;
|
||
width: 100%;
|
||
z-index: 1000;
|
||
font-size: 12px;
|
||
}
|
||
|
||
#cookie_block a {
|
||
color: ${cookiePolicyMainColorContrast};
|
||
}
|
||
|
||
#cookie_block a.cookie_link{
|
||
text-decoration: underline !important;
|
||
}
|
||
|
||
#cookie_block a.btn {
|
||
border: 1px solid ${cookiePolicyMainColorContrast};
|
||
border-radius: 0;
|
||
text-decoration: none;
|
||
}
|
||
|
||
#cookie_block a.btn:hover {
|
||
background-color: ${cookiePolicyMainColorContrast};
|
||
color: ${cookiePolicyMainColor};
|
||
text-decoration: none;
|
||
}
|
||
</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>
|
||
</div>
|
||
</div>
|
||
</div>`;
|
||
|
||
// 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);
|
||
});
|
||
});
|