Merge branch 'master' into HotJar

This commit is contained in:
Amauri CHAMPEAUX 2018-10-08 08:20:27 +02:00 committed by GitHub
commit 9048a0d356
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 982 additions and 344 deletions

116
README.md
View File

@ -1,4 +1,5 @@
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/SASAICAGENCY) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/SASAICAGENCY) [![](https://data.jsdelivr.com/v1/package/gh/AmauriC/tarteaucitron.js/badge)](https://www.jsdelivr.com/package/gh/AmauriC/tarteaucitron.js)
tarteaucitron.js tarteaucitron.js
@ -19,92 +20,6 @@ Bonus:
- Load service when user click on Allow (without reload of the page), - Load service when user click on Allow (without reload of the page),
- Incorporate a fallback system (display a link instead of social button and a static banner instead of advertising). - Incorporate a fallback system (display a link instead of social button and a static banner instead of advertising).
## Supported services
* Advertising network
* Ad Up Technology (ads)
* Ad Up Technology (conversion)
* Ad Up Technology (retargeting)
* Amazon
* Clicmanager
* Criteo
* FERank (pub)
* Google Adsense
* Google Adsense Search (form)
* Google Adsense Search (result)
* Google Adwords (conversion)
* Google Adwords (remarketing)
* Pubdirecte
* Twenga
* vShop
* APIs
* Google jsapi
* Google Maps
* Google Tag Manager
* Timeline JS
* Typekit (adobe)
* Audience measurement
* Alexa
* Clicky
* Crazyegg
* FERank
* Get+
* Google Analytics (ga.js)
* Google Analytics (universal)
* StatCounter
* VisualRevenue
* Xiti
* Comment
* Disqus
* Facebook (commentaire)
* Marketing Automation & CRM
* Mautic
* Webmecanik Automation
* Koban
* Social network
* AddThis
* AddToAny (feed)
* AddToAny (share)
* eKomi
* Facebook
* Facebook (like box)
* Google+
* Google+ (badge)
* Linkedin
* Pinterest
* Shareaholic
* ShareThis
* Twitter
* Twitter (cards)
* Twitter (timelines)
* Support
* UserVoice
* Zopim
* Video
* Calameo
* Dailymotion
* Prezi
* SlideShare
* Vimeo
* YouTube
* Issuu
## Visitors outside the EU
In PHP for example, you can bypass all the script by setting this var `tarteaucitron.user.bypass = true;` if the visitor is not in the EU.
## Tested on
- IE 6+
- FF 3+
- Safari 4+
- Chrome 14+
- Opera 10+
# Installation guide # Installation guide
[Visit opt-out.ferank.eu](https://opt-out.ferank.eu/) [Visit opt-out.ferank.eu](https://opt-out.ferank.eu/)
@ -117,15 +32,24 @@ In PHP for example, you can bypass all the script by setting this var `tarteauci
<script type="text/javascript"> <script type="text/javascript">
tarteaucitron.init({ tarteaucitron.init({
"hashtag": "#tarteaucitron", /* Ouverture automatique du panel avec le hashtag */ "privacyUrl": "", /* Privacy policy url */
"highPrivacy": false, /* désactiver le consentement implicite (en naviguant) ? */
"orientation": "top", /* le bandeau doit être en haut (top) ou en bas (bottom) ? */ "hashtag": "#tarteaucitron", /* Open the panel with this hashtag */
"adblocker": false, /* Afficher un message si un adblocker est détecté */ "cookieName": "tartaucitron", /* Cookie name */
"showAlertSmall": true, /* afficher le petit bandeau en bas à droite ? */
"cookieslist": true, /* Afficher la liste des cookies installés ? */ "orientation": "top", /* Banner position (top - bottom) */
"removeCredit": false, /* supprimer le lien vers la source ? */ "showAlertSmall": true, /* Show the small banner on bottom right */
"handleBrowserDNTRequest": false, /* Répondre au DoNotTrack du navigateur ?*/ "cookieslist": true, /* Show the cookie list */
"cookieDomain": ".my-multisite-domaine.fr" /* Nom de domaine sur lequel sera posé le cookie - pour les multisites / sous-domaines - Facultatif */
"adblocker": false, /* Show a Warning if an adblocker is detected */
"AcceptAllCta" : true, /* Show the accept all button when highPrivacy on */
"highPrivacy": false, /* Disable auto consent */
"handleBrowserDNTRequest": false, /* If Do Not Track == 1, disallow all */
"removeCredit": false, /* Remove credit link */
"moreInfoLink": true, /* Show more info link */
//"cookieDomain": ".my-multisite-domaine.fr" /* Shared cookie for subdomain website */
}); });
</script> </script>
``` ```

View File

@ -1,3 +1,75 @@
.modal-open{
overflow: hidden;
height: 100%;
}
#contentWrapper {display:unset;}
/***
* Reset CSS
*/
#tarteaucitronRoot div, #tarteaucitronRoot span, #tarteaucitronRoot applet, #tarteaucitronRoot object, #tarteaucitronRoot iframe, #tarteaucitronRoot h1, #tarteaucitronRoot h2, #tarteaucitronRoot h3, #tarteaucitronRoot h4, #tarteaucitronRoot h5, #tarteaucitronRoot h6, #tarteaucitronRoot p, #tarteaucitronRoot blockquote, #tarteaucitronRoot pre, #tarteaucitronRoot a, #tarteaucitronRoot abbr, #tarteaucitronRoot acronym, #tarteaucitronRoot address, #tarteaucitronRoot big, #tarteaucitronRoot cite, #tarteaucitronRoot code, #tarteaucitronRoot del, #tarteaucitronRoot dfn, #tarteaucitronRoot em, #tarteaucitronRoot img, #tarteaucitronRoot ins, #tarteaucitronRoot kbd, #tarteaucitronRoot q, #tarteaucitronRoot s, #tarteaucitronRoot samp, #tarteaucitronRoot small, #tarteaucitronRoot strike, #tarteaucitronRoot strong, #tarteaucitronRoot sub, #tarteaucitronRoot sup, #tarteaucitronRoot tt, #tarteaucitronRoot var, #tarteaucitronRoot b, #tarteaucitronRoot u, #tarteaucitronRoot i, #tarteaucitronRoot center, #tarteaucitronRoot dl, #tarteaucitronRoot dt, #tarteaucitronRoot dd, #tarteaucitronRoot ol, #tarteaucitronRoot ul, #tarteaucitronRoot li, #tarteaucitronRoot fieldset, #tarteaucitronRoot form, #tarteaucitronRoot label, #tarteaucitronRoot legend, #tarteaucitronRoot table, #tarteaucitronRoot caption, #tarteaucitronRoot tbody, #tarteaucitronRoot tfoot, #tarteaucitronRoot thead, #tarteaucitronRoot tr, #tarteaucitronRoot th, #tarteaucitronRoot td,article, #tarteaucitronRoot aside, #tarteaucitronRoot canvas, #tarteaucitronRoot details, #tarteaucitronRoot embed, #tarteaucitronRoot figure, #tarteaucitronRoot figcaption, #tarteaucitronRoot footer, #tarteaucitronRoot header, #tarteaucitronRoot hgroup, #tarteaucitronRoot menu, #tarteaucitronRoot nav, #tarteaucitronRoot output, #tarteaucitronRoot ruby, #tarteaucitronRoot section, #tarteaucitronRoot summary, #tarteaucitronRoot time, #tarteaucitronRoot mark, #tarteaucitronRoot audio, #tarteaucitronRoot video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
background: initial;
text-align: initial;
text-shadow: initial;
}
/* HTML5 display-role reset for older browsers */
#tarteaucitronRoot article, #tarteaucitronRoot aside, #tarteaucitronRoot details, #tarteaucitronRoot figcaption, #tarteaucitronRoot figure, #tarteaucitronRoot footer, #tarteaucitronRoot header, #tarteaucitronRoot hgroup, #tarteaucitronRoot menu, #tarteaucitronRoot nav, #tarteaucitronRoot section {
display: block;
}
#tarteaucitronRoot ol, #tarteaucitronRoot ul {
list-style: none;
}
#tarteaucitronRoot blockquote, #tarteaucitronRoot q {
quotes: none;
}
#tarteaucitronRoot blockquote:before, #tarteaucitronRoot blockquote:after, #tarteaucitronRoot q:before, #tarteaucitronRoot q:after {
content: '';
content: none;
}
#tarteaucitronRoot table {
border-collapse: collapse;
border-spacing: 0;
}
#tarteaucitronRoot a:focus, #tarteaucitronRoot button:focus {
/*outline: 2px solid #cb3333;*/
}
/***
* Better scroll management
*/
div#tarteaucitronMainLineOffset {
margin-top: 0!important;
}
div#tarteaucitronServices {
margin-top: 21px!important;
}
#tarteaucitronServices::-webkit-scrollbar {
width: 5px;
}
#tarteaucitronServices::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0);
}
#tarteaucitronServices::-webkit-scrollbar-thumb {
background-color: #ddd;
outline: 0px solid slategrey;
}
div#tarteaucitronServices {
box-shadow: 0 0 35px #575757;
}
/*** /***
* Responsive layout for the control panel * Responsive layout for the control panel
*/ */
@ -37,6 +109,18 @@
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle { #tarteaucitron #tarteaucitronServices .tarteaucitronTitle {
text-align: left !important; text-align: left !important;
} }
.tarteaucitronName h2 {
max-width: 80%;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk {
text-align: center !important;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk button {
margin-bottom: 5px;
}
} }
@media screen and (min-width:768px) and (max-width:991px) { @media screen and (min-width:768px) and (max-width:991px) {
@ -56,6 +140,16 @@
zoom: 1; zoom: 1;
} }
#tarteaucitronRoot div#tarteaucitron {
left: 0;
right: 0;
margin: auto;
}
#tarteaucitronRoot button#tarteaucitronBack {
background: #eee;
}
#tarteaucitron .clear { #tarteaucitron .clear {
clear: both; clear: both;
} }
@ -67,15 +161,30 @@
text-decoration: none; text-decoration: none;
} }
#tarteaucitronRoot button {
background: transparent;
border: 0;
}
#tarteaucitronAlertBig strong, #tarteaucitronAlertSmall strong,
#tarteaucitronAlertBig a, #tarteaucitronAlertSmall a { #tarteaucitronAlertBig a, #tarteaucitronAlertSmall a {
color: #fff; color: #fff;
} }
#tarteaucitron b { #tarteaucitron strong {
font-size: 22px; font-size: 22px;
font-weight: 500; font-weight: 500;
} }
#tarteaucitron ul {
padding: 0;
}
.cookie-list {
list-style: none;
padding: 0;
margin: 0;
}
/*** /***
* Root div added just before </body> * Root div added just before </body>
*/ */
@ -96,6 +205,23 @@
vertical-align: initial; vertical-align: initial;
} }
#tarteaucitronRoot h1 {
font-size: 1.5em;
text-align: center;
color: #fff;
margin: 15px 0 28px;
}
#tarteaucitronRoot h2 {
display: inline-block;
margin: 12px 0 0 10px;
color: #fff;
}
h2#tarteaucitronCookiesNumberBis {
margin-left: 0;
}
/*** /***
* Control panel * Control panel
*/ */
@ -153,9 +279,13 @@
width: 80%; width: 80%;
} }
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronHidden, .tarteaucitronSelfLink, #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronHidden,
#tarteaucitron #tarteaucitronServices .tarteaucitronHidden { #tarteaucitron #tarteaucitronServices .tarteaucitronHidden {
background: rgba(51, 51, 51, 0.07); background: rgba(51, 51, 51, 0.07);
}a.tarteaucitronSelfLink {
text-align: center!important;
display: block;
padding: 7px!important;
} }
#tarteaucitron #tarteaucitronServices .tarteaucitronHidden { #tarteaucitron #tarteaucitronServices .tarteaucitronHidden {
@ -163,11 +293,15 @@
position: relative; position: relative;
} }
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle, #tarteaucitronCookiesList h3.tarteaucitronTitle {
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle, width: 100%;
box-sizing: border-box;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle button,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button,
#tarteaucitron #tarteaucitronInfo, #tarteaucitron #tarteaucitronInfo,
#tarteaucitron #tarteaucitronServices .tarteaucitronDetails { #tarteaucitron #tarteaucitronServices .tarteaucitronDetails {
background: #333;
color: #fff; color: #fff;
display: inline-block; display: inline-block;
font-size: 14px; font-size: 14px;
@ -199,6 +333,7 @@
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle { #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle {
padding: 5px 10px; padding: 5px 10px;
margin: 0;
} }
#tarteaucitron #tarteaucitronInfo, #tarteaucitron #tarteaucitronInfo,
@ -250,7 +385,7 @@
margin-top: 2px; margin-top: 2px;
} }
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName b { #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName button {
color: #fff; color: #fff;
} }
@ -289,6 +424,7 @@
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
width: auto; width: auto;
border: 0;
} }
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies { #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies {
@ -296,6 +432,16 @@
font-size: 12px; font-size: 12px;
} }
#tarteaucitron h3 {
font-size: 18px;
}
#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName {
width: auto!important;
margin-left: 0!important;
font-size: 14px;
}
/*** /***
* Big alert * Big alert
*/ */
@ -307,7 +453,7 @@
bottom: 0; bottom: 0;
} }
#tarteaucitronAlertBig { #tarteaucitronRoot #tarteaucitronAlertBig {
background: #333; background: #333;
color: #fff; color: #fff;
display: none; display: none;
@ -316,22 +462,29 @@
padding: 5px 5%; padding: 5px 5%;
position: fixed; position: fixed;
text-align: center; text-align: center;
width: 90%;
box-sizing: content-box; box-sizing: content-box;
z-index: 2147483645; z-index: 2147483645;
text-align: center;
padding: 10px;
margin: auto;
width: 100%;
} }
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert, #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b { #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
font: 15px verdana; font: 15px verdana;
color: #fff; color: #fff;
} }
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b { #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
font-weight: 700; font-weight: 700;
} }
#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize { #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
cursor: pointer;
}
#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize, #tarteaucitron #tarteaucitronPrivacyUrl {
background: #008300; background: #008300;
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
@ -342,7 +495,7 @@
margin-left: 7px; margin-left: 7px;
} }
#tarteaucitronAlertBig #tarteaucitronCloseAlert { #tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitron #tarteaucitronPrivacyUrl {
background: #fff; background: #fff;
color: #333; color: #333;
font-size: 13px; font-size: 13px;
@ -352,7 +505,7 @@
} }
#tarteaucitronPercentage { #tarteaucitronPercentage {
background: #0A0; background: #0A0!important;
box-shadow: 0 0 2px #fff, 0 1px 2px #555; box-shadow: 0 0 2px #fff, 0 1px 2px #555;
height: 5px; height: 5px;
left: 0; left: 0;
@ -461,7 +614,7 @@
text-align: left; text-align: left;
} }
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList b { #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList strong {
color: #333; color: #333;
} }
@ -472,7 +625,7 @@
text-align: left; text-align: left;
} }
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle b { #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle strong {
color: #fff; color: #fff;
font-size: 16px; font-size: 16px;
} }
@ -497,7 +650,7 @@
width: 50%; width: 50%;
} }
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft a b { #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft a strong {
color: darkred; color: darkred;
} }
@ -531,7 +684,7 @@
vertical-align: middle; vertical-align: middle;
} }
.tac_activate .tac_float b { .tac_activate .tac_float strong {
color: #fff; color: #fff;
} }
@ -551,3 +704,41 @@ div.amazon_product {
height:240px; height:240px;
width:120px; width:120px;
} }
.tarteaucitronIsAllowed .tarteaucitronDeny {
opacity: 0.4!important;
}.tarteaucitronIsDenied .tarteaucitronAllow {
opacity: 0.4!important;
}.tarteaucitronIsAllowed .tarteaucitronAllow {
opacity: 1!important;
}.tarteaucitronIsDenied .tarteaucitronDeny {
opacity: 1!important;
}
.tarteaucitronLine .tarteaucitronAllow, .tarteaucitronLine .tarteaucitronAllow {
opacity: 0.4;
}
div#tarteaucitronInfo {
display: block!important;
position: initial!important;
text-align: center!important;
max-width: 80%!important;
padding: 15px 0!important;
margin: -10px auto 40px!important;
font-size: 1em!important;
border-bottom: 1px solid;
border-top: 1px solid;
border-color: #555;
}
a.tarteaucitronSelfLink {
position: absolute;
left: 0;
right: 0;
padding-top: 13px!important;
display: block;
text-shadow: 0 0 14px white;
text-transform: uppercase;
}.tarteaucitronMainLine h2 {
font-size: 1.2em!important;
margin-top: 4px!important;
}

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, přijmout vše", "acceptAll": "OK, přijmout vše",
"close": "Zavřít", "close": "Zavřít",
"privacyUrl": "Zásady ochrany osobních údajů",
"all": "Nastavení všech služeb", "all": "Nastavení všech služeb",
"info": "Chrání tvé soukromí", "info": "Chrání tvé soukromí",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zobrazit oficiální stránku", "source": "Zobrazit oficiální stránku",
"credit": "Správce cookies od tarteaucitron.js", "credit": "Správce cookies od tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "je vypnutý.", "fallback": "je vypnutý.",
"ads": { "ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, akzeptiere alles", "acceptAll": "OK, akzeptiere alles",
"close": "Beenden", "close": "Beenden",
"privacyUrl": "Datenschutz-Bestimmungen",
"all": "Präferenz für alle Dienste", "all": "Präferenz für alle Dienste",
"info": "Schutz der Privatsphäre", "info": "Schutz der Privatsphäre",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zur offiziellen Webseite", "source": "Zur offiziellen Webseite",
"credit": "Cookies manager von tarteaucitron.js", "credit": "Cookies manager von tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "ist deaktiviert.", "fallback": "ist deaktiviert.",
"ads": { "ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, accept all", "acceptAll": "OK, accept all",
"close": "Close", "close": "Close",
"privacyUrl": "Privacy policy",
"all": "Preference for all services", "all": "Preference for all services",
"info": "Protecting your privacy", "info": "Protecting your privacy",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "View the official website", "source": "View the official website",
"credit": "Cookies manager by tarteaucitron.js", "credit": "Cookies manager by tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "is disabled.", "fallback": "is disabled.",
"ads": { "ads": {

View File

@ -1,26 +1,28 @@
/*global tarteaucitron */ /*global tarteaucitron */
tarteaucitron.lang = { tarteaucitron.lang = {
"adblock": "Hola! Este sitio web es transparente y le da la opción de activar los servicios de terceros.", "adblock": "¡Hola! Este sitio web es transparente y te da la opción de activar los servicios de terceros.",
"adblock_call": "Por favor deshabilite su AdBlocker para empezar a personalizar los servicios.", "adblock_call": "Por favor deshabilita tu AdBlocker para empezar a personalizar los servicios.",
"reload": "Actualizar esta página", "reload": "Actualizar esta página",
"alertBigScroll": "Al continuar para desplazarse,", "alertBigScroll": "Al continuar desplazándote,",
"alertBigClick": "Si continuas navegando por este sitio web,", "alertBigClick": "Si continuas navegando por este sitio web,",
"alertBig": "estar permitiendo servicios terceros", "alertBig": "estás permitiendo servicios terceros",
"alertBigPrivacy": "Este sitio web usa cookies y te permite controlar lo que deseas activar", "alertBigPrivacy": "Este sitio web usa cookies y te permite controlar las que deseas activar",
"alertSmall": "Gestionar servicios", "alertSmall": "Gestionar servicios",
"personalize": "Personalizar", "personalize": "Personalizar",
"acceptAll": "OK, aceptar todas", "acceptAll": "OK, aceptar todas",
"close": "Cerrar", "close": "Cerrar",
"privacyUrl": "Política de privacidad",
"all": "Ajustes para todos los servicios", "all": "Ajustes para todos los servicios",
"info": "Protegiendo tu privacidad", "info": "Protegiendo tu privacidad",
"disclaimer": "Aceptando estos servicios terceros, estas aceptando sus cookies y el uso de tecnologías de rastreo necesarias para su correcto funcionamiento.", "disclaimer": "Aceptando estos servicios de terceros, estás aceptando sus cookies y el uso de tecnologías de rastreo necesarias para su correcto funcionamiento.",
"allow": "Permitir", "allow": "Permitir",
"deny": "Denegar", "deny": "Denegar",
"noCookie": "Este servicio no usa cookie.", "noCookie": "Este servicio no usa cookies.",
"useCookie": "Este servicio puede instalar", "useCookie": "Este servicio puede instalar",
"useCookieCurrent": "Este servicio ha instalado", "useCookieCurrent": "Este servicio ha instalado",
"useNoCookie": "Este servicio no ha instalado ninguna cookie.", "useNoCookie": "Este servicio no ha instalado ninguna cookie.",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Ver sitio web oficial", "source": "Ver sitio web oficial",
"credit": "Gestor de cookies realizada por tarteaucitron.js", "credit": "Gestor de cookies realizada por tarteaucitron.js",
"toggleInfoBox": "Mostrar/ocultar información sobre almacenamiento de cookies",
"title": "Panel de gestión de cookies",
"cookieDetail": "Detalles de las cookies para",
"ourSite": "en nuestra web",
"newWindow": "(ventana nueva)",
"allowAll": "Permitir todas las cookies",
"denyAll": "Denegar todas las cookies",
"fallback": "está deshabilitado.", "fallback": "está deshabilitado.",
"ads": { "ads": {
@ -35,8 +45,8 @@ tarteaucitron.lang = {
"details": "Las redes publicitarias pueden generar ingresos mediante la venta de espacios publicitarios en el sitio." "details": "Las redes publicitarias pueden generar ingresos mediante la venta de espacios publicitarios en el sitio."
}, },
"analytic": { "analytic": {
"title": "Mediciión de audiencia", "title": "Medición de audiencia",
"details": "Los servicios de medición de audiencia se usan para generar asistencia estadísticas útiles para mejorar el sitio." "details": "Los servicios de medición de audiencia se usan para generar estadísticas útiles para mejorar el sitio."
}, },
"social": { "social": {
"title": "Redes sociales", "title": "Redes sociales",

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"personalize": "Personnaliser", "personalize": "Personnaliser",
"close": "Fermer", "close": "Fermer",
"privacyUrl": "Politique de confidentialité",
"all": "Préférence pour tous les services", "all": "Préférence pour tous les services",
"info": "Protection de votre vie privée", "info": "Protection de votre vie privée",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Voir le site officiel", "source": "Voir le site officiel",
"credit": "Gestion des cookies par tarteaucitron.js", "credit": "Gestion des cookies par tarteaucitron.js",
"toggleInfoBox": "Afficher/masquer les informations sur le stockage des cookies",
"title": "Panneau de gestion des cookies",
"cookieDetail": "Détail des cookies",
"ourSite": "sur notre site",
"newWindow": "(nouvelle fenêtre)",
"allowAll": "Autoriser tous les cookies",
"denyAll": "Interdire tous les cookies",
"fallback": "est désactivé.", "fallback": "est désactivé.",
"ads": { "ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"personalize": "Personalizza", "personalize": "Personalizza",
"close": "Chiudi", "close": "Chiudi",
"privacyUrl": "Politica sulla riservatezza",
"all": "Preferenze per tutti i servizi", "all": "Preferenze per tutti i servizi",
"info": "Tutela della privacy", "info": "Tutela della privacy",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Vai al sito ufficiale", "source": "Vai al sito ufficiale",
"credit": "Gestione dei cookies da tarteaucitron.js", "credit": "Gestione dei cookies da tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "è disattivato", "fallback": "è disattivato",
"ads": { "ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, accepteer alle", "acceptAll": "OK, accepteer alle",
"close": "Sluit", "close": "Sluit",
"privacyUrl": "Privacybeleid",
"all": "Voorkeur voor alle diensten", "all": "Voorkeur voor alle diensten",
"info": "Bescherming van uw privacy", "info": "Bescherming van uw privacy",
@ -30,6 +32,14 @@ tarteaucitron.lang = {
"fallback": "is uitgeschakeld.", "fallback": "is uitgeschakeld.",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"ads": { "ads": {
"title": "Advertentienetwerk", "title": "Advertentienetwerk",
"details": "Advertentienetwerken kunnen inkomsten genereren door advertentieruimte op de site te verkopen." "details": "Advertentienetwerken kunnen inkomsten genereren door advertentieruimte op de site te verkopen."

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, akceptuję wszystko", "acceptAll": "OK, akceptuję wszystko",
"close": "zamknij", "close": "zamknij",
"privacyUrl": "Polityka prywatności",
"all": "Preferencja dla wszystkich usług", "all": "Preferencja dla wszystkich usług",
"info": "Ochrona prywatności", "info": "Ochrona prywatności",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zobacz oficjalną stronę internetowa", "source": "Zobacz oficjalną stronę internetowa",
"credit": "Cookies menadżer z tarteaucitron.js", "credit": "Cookies menadżer z tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "jest nieaktywna.", "fallback": "jest nieaktywna.",
"ads": { "ads": {

View File

@ -13,6 +13,9 @@ tarteaucitron.lang = {
"personalize": "Personalizar", "personalize": "Personalizar",
"acceptAll": "OK, aceitar tudo", "acceptAll": "OK, aceitar tudo",
"close": "Fechar", "close": "Fechar",
"privacyUrl": "Política de Privacidade",
"all": "Definições dos serviços", "all": "Definições dos serviços",
"info": "Proteger sua privacidade", "info": "Proteger sua privacidade",
"disclaimer": "Ao aceitar os serviços terceiros, você aceita o uso de cookies em conjunto de tecnologias de rastreamento que lhe são necessárias para funcionar", "disclaimer": "Ao aceitar os serviços terceiros, você aceita o uso de cookies em conjunto de tecnologias de rastreamento que lhe são necessárias para funcionar",
@ -25,6 +28,15 @@ tarteaucitron.lang = {
"more": "Ler mais", "more": "Ler mais",
"source": "Ver o site oficial", "source": "Ver o site oficial",
"credit": "Gerenciador de cookies por tarteaucitron.js", "credit": "Gerenciador de cookies por tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "está desativado.", "fallback": "está desativado.",
"ads": { "ads": {
"title": "Rede de anúncios", "title": "Rede de anúncios",

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "Ок, все активировать", "acceptAll": "Ок, все активировать",
"close": "Закрыть", "close": "Закрыть",
"privacyUrl": "Политика конфиденциальности",
"all": "Преференция всем сервисам", "all": "Преференция всем сервисам",
"info": "Защитить вашу конфиденциальность", "info": "Защитить вашу конфиденциальность",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Посетите официальный сайт", "source": "Посетите официальный сайт",
"credit": "Кукис манаджер tarteaucitron.js", "credit": "Кукис манаджер tarteaucitron.js",
"toggleInfoBox": "Show/hide informations about cookie storage",
"title": "Cookies management panel",
"cookieDetail": "Cookie detail for",
"ourSite": "on our site",
"newWindow": "(new window)",
"allowAll": "Allow all cookies",
"denyAll": "Deny all cookies",
"fallback": "Деактивирован.", "fallback": "Деактивирован.",
"ads": { "ads": {

View File

@ -3,16 +3,20 @@
// define correct path for files inclusion // define correct path for files inclusion
var scripts = document.getElementsByTagName('script'), var scripts = document.getElementsByTagName('script'),
path = scripts[scripts.length - 1].src.split('?')[0], path = scripts[scripts.length - 1].src.split('?')[0],
cdn = path.split('/').slice(0, -1).join('/') + '/', tarteaucitronForceCDN = (tarteaucitronForceCDN === undefined) ? '' : tarteaucitronForceCDN,
cdn = (tarteaucitronForceCDN === '') ? path.split('/').slice(0, -1).join('/') + '/' : tarteaucitronForceCDN,
alreadyLaunch = (alreadyLaunch === undefined) ? 0 : alreadyLaunch, alreadyLaunch = (alreadyLaunch === undefined) ? 0 : alreadyLaunch,
tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage, tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage,
tarteaucitronForceExpire = (tarteaucitronForceExpire === undefined) ? '' : tarteaucitronForceExpire, tarteaucitronForceExpire = (tarteaucitronForceExpire === undefined) ? '' : tarteaucitronForceExpire,
tarteaucitronCustomText = (tarteaucitronCustomText === undefined) ? '' : tarteaucitronCustomText,
timeExipre = 31536000000, timeExipre = 31536000000,
tarteaucitronProLoadServices, tarteaucitronProLoadServices,
tarteaucitronNoAdBlocker = false; tarteaucitronNoAdBlocker = false;
var tarteaucitron = { var tarteaucitron = {
"version": 323, "version": 20181003,
"cdn": cdn, "cdn": cdn,
"user": {}, "user": {},
"lang": {}, "lang": {},
@ -24,6 +28,10 @@ var tarteaucitron = {
"parameters": {}, "parameters": {},
"isAjax": false, "isAjax": false,
"reloadThePage": false, "reloadThePage": false,
"events": {
"init": function () {},
"load": function () {},
},
"init": function (params) { "init": function (params) {
"use strict"; "use strict";
var origOpen; var origOpen;
@ -51,7 +59,7 @@ var tarteaucitron = {
if (scrollPos > (screen.height * 2)) { if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true); tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > (screen.height / 2)) { } else if (scrollPos > (screen.height / 2)) {
document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<b>' + tarteaucitron.lang.alertBigScroll + '</b> ' + tarteaucitron.lang.alertBig; document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
} }
if (tarteaucitron.orientation === 'top') { if (tarteaucitron.orientation === 'top') {
@ -63,6 +71,7 @@ var tarteaucitron = {
} }
} }
}, false); }, false);
window.addEventListener("keydown", function (evt) { window.addEventListener("keydown", function (evt) {
if (evt.keyCode === 27) { if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel(); tarteaucitron.userInterface.closePanel();
@ -106,7 +115,7 @@ var tarteaucitron = {
if (scrollPos > (screen.height * 2)) { if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true); tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > (screen.height / 2)) { } else if (scrollPos > (screen.height / 2)) {
document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<b>' + tarteaucitron.lang.alertBigScroll + '</b> ' + tarteaucitron.lang.alertBig; document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
} }
if (tarteaucitron.orientation === 'top') { if (tarteaucitron.orientation === 'top') {
document.getElementById('tarteaucitronPercentage').style.top = heightPosition; document.getElementById('tarteaucitronPercentage').style.top = heightPosition;
@ -121,6 +130,21 @@ var tarteaucitron = {
if (evt.keyCode === 27) { if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel(); tarteaucitron.userInterface.closePanel();
} }
if ( evt.keyCode === 9 && focusableEls.indexOf(evt.target) >= 0) {
if ( evt.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus();
evt.preventDefault();
}
} else /* tab */ {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
evt.preventDefault();
}
}
}
}); });
window.attachEvent("onhashchange", function () { window.attachEvent("onhashchange", function () {
if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') { if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
@ -170,6 +194,10 @@ var tarteaucitron = {
}; };
} }
} }
if(tarteaucitron.events.init) {
tarteaucitron.events.init();
}
}, },
"load": function () { "load": function () {
"use strict"; "use strict";
@ -181,25 +209,34 @@ var tarteaucitron = {
defaults = { defaults = {
"adblocker": false, "adblocker": false,
"hashtag": '#tarteaucitron', "hashtag": '#tarteaucitron',
"cookieName": 'tarteaucitron',
"highPrivacy": false, "highPrivacy": false,
"orientation": "top", "orientation": "top",
"removeCredit": false, "removeCredit": false,
"showAlertSmall": true, "showAlertSmall": true,
"cookieslist": true, "cookieslist": true,
"handleBrowserDNTRequest": false "handleBrowserDNTRequest": false,
"AcceptAllCta" : false,
"moreInfoLink": true,
"privacyUrl": ""
}, },
params = tarteaucitron.parameters; params = tarteaucitron.parameters;
// Step 0: get params // Step 0: get params
if (params !== undefined) { if (params !== undefined) {
tarteaucitron.extend(defaults, params);
for (var k in defaults) {
if(!tarteaucitron.parameters.hasOwnProperty(k)) {
tarteaucitron.parameters[k] = defaults[k];
}
}
} }
// global // global
tarteaucitron.orientation = defaults.orientation; tarteaucitron.orientation = tarteaucitron.parameters.orientation;
tarteaucitron.hashtag = defaults.hashtag; tarteaucitron.hashtag = tarteaucitron.parameters.hashtag;
tarteaucitron.highPrivacy = defaults.highPrivacy; tarteaucitron.highPrivacy = tarteaucitron.parameters.highPrivacy;
tarteaucitron.handleBrowserDNTRequest = defaults.handleBrowserDNTRequest; tarteaucitron.handleBrowserDNTRequest = tarteaucitron.parameters.handleBrowserDNTRequest;
// Step 1: load css // Step 1: load css
linkElement.rel = 'stylesheet'; linkElement.rel = 'stylesheet';
@ -209,6 +246,10 @@ var tarteaucitron = {
// Step 2: load language and services // Step 2: load language and services
tarteaucitron.addScript(pathToLang, '', function () { tarteaucitron.addScript(pathToLang, '', function () {
if(tarteaucitronCustomText !== ''){
tarteaucitron.lang = tarteaucitron.AddOrUpdate(tarteaucitron.lang, tarteaucitronCustomText);
}
tarteaucitron.addScript(pathToServices, '', function () { tarteaucitron.addScript(pathToServices, '', function () {
var body = document.body, var body = document.body,
@ -227,96 +268,122 @@ var tarteaucitron = {
// Step 3: prepare the html // Step 3: prepare the html
html += '<div id="tarteaucitronPremium"></div>'; html += '<div id="tarteaucitronPremium"></div>';
html += '<div id="tarteaucitronBack" onclick="tarteaucitron.userInterface.closePanel();"></div>'; html += '<button id="tarteaucitronBack" onclick="tarteaucitron.userInterface.closePanel();" aria-label="' + tarteaucitron.lang.close + '"></button>';
html += '<div id="tarteaucitron">'; html += '<div id="tarteaucitron" role="dialog" aria-labelledby="dialogTitle">';
html += ' <div id="tarteaucitronClosePanel" onclick="tarteaucitron.userInterface.closePanel();">'; html += ' <button id="tarteaucitronClosePanel" onclick="tarteaucitron.userInterface.closePanel();">';
html += ' ' + tarteaucitron.lang.close; html += ' ' + tarteaucitron.lang.close;
html += ' </div>'; html += ' </button>';
html += ' <div id="tarteaucitronServices">'; html += ' <div id="tarteaucitronServices">';
html += ' <div class="tarteaucitronLine tarteaucitronMainLine" id="tarteaucitronMainLineOffset">'; html += ' <div class="tarteaucitronLine tarteaucitronMainLine" id="tarteaucitronMainLineOffset">';
html += ' <div class="tarteaucitronName">'; html += ' <h1 id="dialogTitle">'+ tarteaucitron.lang.title + '</h1>';
html += ' <b><a href="#" onclick="tarteaucitron.userInterface.toggle(\'tarteaucitronInfo\', \'tarteaucitronInfoBox\');return false">&#10011;</a> ' + tarteaucitron.lang.all + '</b>';
html += ' </div>';
html += ' <div class="tarteaucitronAsk" id="tarteaucitronScrollbarAdjust">';
html += ' <div id="tarteaucitronAllAllowed" class="tarteaucitronAllow" onclick="tarteaucitron.userInterface.respondAll(true);">';
html += ' &#10003; ' + tarteaucitron.lang.allow;
html += ' </div> ';
html += ' <div id="tarteaucitronAllDenied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respondAll(false);">';
html += ' &#10007; ' + tarteaucitron.lang.deny;
html += ' </div>';
html += ' </div>';
html += ' </div>';
html += ' <div id="tarteaucitronInfo" class="tarteaucitronInfoBox">'; html += ' <div id="tarteaucitronInfo" class="tarteaucitronInfoBox">';
html += ' ' + tarteaucitron.lang.disclaimer; html += ' ' + tarteaucitron.lang.disclaimer;
if (defaults.removeCredit === false) { if (tarteaucitron.parameters.privacyUrl !== "") {
html += ' <br/><br/>'; html += ' <br/><br/>';
html += ' <a href="https://opt-out.ferank.eu/" rel="nofollow" target="_blank" rel="noopener">' + tarteaucitron.lang.credit + '</a>'; html += ' <button id="tarteaucitronPrivacyUrl" onclick="document.location = tarteaucitron.parameters.privacyUrl">';
html += ' ' + tarteaucitron.lang.privacyUrl;
html += ' </button>';
} }
html += ' </div>'; html += ' </div>';
html += ' <div class="tarteaucitronBorder" id="tarteaucitronScrollbarParent">'; html += ' <div class="tarteaucitronName">';
html += ' <div class="clear"></div>'; html += ' <h2>' + tarteaucitron.lang.all + '</h2>';
html += ' </div>';
html += ' <div class="tarteaucitronAsk" id="tarteaucitronScrollbarAdjust">';
html += ' <button id="tarteaucitronAllAllowed" class="tarteaucitronAllow" onclick="tarteaucitron.userInterface.respondAll(true);">';
html += ' &#10003; ' + tarteaucitron.lang.allowAll;
html += ' </button> ';
html += ' <button id="tarteaucitronAllDenied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respondAll(false);">';
html += ' &#10007; ' + tarteaucitron.lang.denyAll;
html += ' </button>';
html += ' </div>';
html += ' </div>';
html += ' <div class="tarteaucitronBorder">';
html += ' <div class="clear"></div><ul>';
for (i = 0; i < cat.length; i += 1) { for (i = 0; i < cat.length; i += 1) {
html += ' <div id="tarteaucitronServicesTitle_' + cat[i] + '" class="tarteaucitronHidden">'; html += ' <li id="tarteaucitronServicesTitle_' + cat[i] + '" class="tarteaucitronHidden">';
html += ' <div class="tarteaucitronTitle">'; html += ' <div class="tarteaucitronTitle">';
html += ' <a href="#" onclick="tarteaucitron.userInterface.toggle(\'tarteaucitronDetails' + cat[i] + '\', \'tarteaucitronInfoBox\');return false">&#10011;</a> ' + tarteaucitron.lang[cat[i]].title; html += ' <button onclick="tarteaucitron.userInterface.toggle(\'tarteaucitronDetails' + cat[i] + '\', \'tarteaucitronInfoBox\');return false">&#10011; ' + tarteaucitron.lang[cat[i]].title + '</button>';
html += ' </div>'; html += ' </div>';
html += ' <div id="tarteaucitronDetails' + cat[i] + '" class="tarteaucitronDetails tarteaucitronInfoBox">'; html += ' <div id="tarteaucitronDetails' + cat[i] + '" class="tarteaucitronDetails tarteaucitronInfoBox">';
html += ' ' + tarteaucitron.lang[cat[i]].details; html += ' ' + tarteaucitron.lang[cat[i]].details;
html += ' </div>'; html += ' </div>';
html += ' </div>'; html += ' <ul id="tarteaucitronServices_' + cat[i] + '"></ul></li>';
html += ' <div id="tarteaucitronServices_' + cat[i] + '"></div>';
} }
html += ' </ul>';
html += ' <div class="tarteaucitronHidden" id="tarteaucitronScrollbarChild" style="height:20px;display:block"></div>'; html += ' <div class="tarteaucitronHidden" id="tarteaucitronScrollbarChild" style="height:20px;display:block"></div>';
if (tarteaucitron.parameters.removeCredit === false) {
html += ' <a class="tarteaucitronSelfLink" href="https://opt-out.ferank.eu/" rel="nofollow" target="_blank" rel="noopener" title="tarteaucitron ' + tarteaucitron.lang.newWindow + '">🍋 ' + tarteaucitron.lang.credit + '</a>';
}
html += ' </div>'; html += ' </div>';
html += ' </div>'; html += ' </div>';
html += '</div>'; html += '</div>';
if (defaults.orientation === 'bottom') { if (tarteaucitron.parameters.orientation === 'bottom') {
orientation = 'Bottom'; orientation = 'Bottom';
} }
if (defaults.highPrivacy) { if (tarteaucitron.parameters.highPrivacy && !tarteaucitron.parameters.AcceptAllCta) {
html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">'; html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
html += ' <span id="tarteaucitronDisclaimerAlert">'; html += ' <span id="tarteaucitronDisclaimerAlert">';
html += ' ' + tarteaucitron.lang.alertBigPrivacy; html += ' ' + tarteaucitron.lang.alertBigPrivacy;
html += ' </span>'; html += ' </span>';
html += ' <span id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.openPanel();">'; html += ' <button id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' ' + tarteaucitron.lang.personalize; html += ' ' + tarteaucitron.lang.personalize;
html += ' </span>'; html += ' </button>';
if (tarteaucitron.parameters.privacyUrl !== "") {
html += ' <button id="tarteaucitronPrivacyUrl" onclick="document.location = tarteaucitron.parameters.privacyUrl">';
html += ' ' + tarteaucitron.lang.privacyUrl;
html += ' </button>';
}
html += '</div>'; html += '</div>';
} else { } else {
html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">'; html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
html += ' <span id="tarteaucitronDisclaimerAlert">'; html += ' <span id="tarteaucitronDisclaimerAlert">';
if (tarteaucitron.parameters.highPrivacy) {
html += ' ' + tarteaucitron.lang.alertBigPrivacy;
} else {
html += ' ' + tarteaucitron.lang.alertBigClick + ' ' + tarteaucitron.lang.alertBig; html += ' ' + tarteaucitron.lang.alertBigClick + ' ' + tarteaucitron.lang.alertBig;
}
html += ' </span>'; html += ' </span>';
html += ' <span id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.respondAll(true);">'; html += ' <button id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.respondAll(true);">';
html += ' &#10003; ' + tarteaucitron.lang.acceptAll; html += ' &#10003; ' + tarteaucitron.lang.acceptAll;
html += ' </span>'; html += ' </button>';
html += ' <span id="tarteaucitronCloseAlert" onclick="tarteaucitron.userInterface.openPanel();">'; html += ' <button id="tarteaucitronCloseAlert" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' ' + tarteaucitron.lang.personalize; html += ' ' + tarteaucitron.lang.personalize;
html += ' </span>'; html += ' </button>';
if (tarteaucitron.parameters.privacyUrl !== "") {
html += ' <button id="tarteaucitronPrivacyUrl" onclick="document.location = tarteaucitron.parameters.privacyUrl">';
html += ' ' + tarteaucitron.lang.privacyUrl;
html += ' </button>';
}
html += '</div>'; html += '</div>';
html += '<div id="tarteaucitronPercentage"></div>'; html += '<div id="tarteaucitronPercentage"></div>';
} }
if (defaults.showAlertSmall === true) { if (tarteaucitron.parameters.showAlertSmall === true) {
html += '<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall' + orientation + '">'; html += '<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall' + orientation + '">';
html += ' <div id="tarteaucitronManager" onclick="tarteaucitron.userInterface.openPanel();">'; html += ' <button id="tarteaucitronManager" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' ' + tarteaucitron.lang.alertSmall; html += ' ' + tarteaucitron.lang.alertSmall;
html += ' <div id="tarteaucitronDot">'; html += ' <span id="tarteaucitronDot">';
html += ' <span id="tarteaucitronDotGreen"></span>'; html += ' <span id="tarteaucitronDotGreen"></span>';
html += ' <span id="tarteaucitronDotYellow"></span>'; html += ' <span id="tarteaucitronDotYellow"></span>';
html += ' <span id="tarteaucitronDotRed"></span>'; html += ' <span id="tarteaucitronDotRed"></span>';
html += ' </div>'; html += ' </span>';
if (defaults.cookieslist === true) { if (tarteaucitron.parameters.cookieslist === true) {
html += ' </div><!-- @whitespace'; html += ' </button><!-- @whitespace';
html += ' --><div id="tarteaucitronCookiesNumber" onclick="tarteaucitron.userInterface.toggleCookiesList();">0</div>'; html += ' --><button id="tarteaucitronCookiesNumber" onclick="tarteaucitron.userInterface.toggleCookiesList();">0</button>';
html += ' <div id="tarteaucitronCookiesListContainer">'; html += ' <div id="tarteaucitronCookiesListContainer">';
html += ' <div id="tarteaucitronClosePanelCookie" onclick="tarteaucitron.userInterface.closePanel();">'; html += ' <button id="tarteaucitronClosePanelCookie" onclick="tarteaucitron.userInterface.closePanel();">';
html += ' ' + tarteaucitron.lang.close; html += ' ' + tarteaucitron.lang.close;
html += ' </div>'; html += ' </button>';
html += ' <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">'; html += ' <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">';
html += ' <b id="tarteaucitronCookiesNumberBis">0 cookie</b>'; html += ' <h2 id="tarteaucitronCookiesNumberBis">0 cookie</h2>';
html += ' </div>'; html += ' </div>';
html += ' <div id="tarteaucitronCookiesList"></div>'; html += ' <div id="tarteaucitronCookiesList"></div>';
html += ' </div>'; html += ' </div>';
@ -327,7 +394,20 @@ var tarteaucitron = {
} }
tarteaucitron.addScript(tarteaucitron.cdn + 'advertising.js?v=' + tarteaucitron.version, '', function () { tarteaucitron.addScript(tarteaucitron.cdn + 'advertising.js?v=' + tarteaucitron.version, '', function () {
if (tarteaucitronNoAdBlocker === true || defaults.adblocker === false) { if (tarteaucitronNoAdBlocker === true || tarteaucitron.parameters.adblocker === false) {
// create a wrapper container at the same level than tarteaucitron so we can add an aria-hidden when tarteaucitron is opened
/*var wrapper = document.createElement('div');
wrapper.id = "contentWrapper";
while (document.body.firstChild)
{
wrapper.appendChild(document.body.firstChild);
}
// Append the wrapper to the body
document.body.appendChild(wrapper);*/
div.id = 'tarteaucitronRoot'; div.id = 'tarteaucitronRoot';
body.appendChild(div, body); body.appendChild(div, body);
div.innerHTML = html; div.innerHTML = html;
@ -371,21 +451,34 @@ var tarteaucitron = {
tarteaucitron.cookie.number(); tarteaucitron.cookie.number();
setInterval(tarteaucitron.cookie.number, 60000); setInterval(tarteaucitron.cookie.number, 60000);
} }
}, defaults.adblocker); }, tarteaucitron.parameters.adblocker);
if (defaults.adblocker === true) { if (tarteaucitron.parameters.adblocker === true) {
setTimeout(function () { setTimeout(function () {
if (tarteaucitronNoAdBlocker === false) { if (tarteaucitronNoAdBlocker === false) {
html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '" style="display:block">'; html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '" style="display:block" role="alert" aria-live="polite">';
html += ' <span id="tarteaucitronDisclaimerAlert">'; html += ' <p id="tarteaucitronDisclaimerAlert">';
html += ' ' + tarteaucitron.lang.adblock + '<br/>'; html += ' ' + tarteaucitron.lang.adblock + '<br/>';
html += ' <b>' + tarteaucitron.lang.adblock_call + '</b>'; html += ' <strong>' + tarteaucitron.lang.adblock_call + '</strong>';
html += ' </span>'; html += ' </p>';
html += ' <span id="tarteaucitronPersonalize" onclick="location.reload();">'; html += ' <button id="tarteaucitronPersonalize" onclick="location.reload();">';
html += ' ' + tarteaucitron.lang.reload; html += ' ' + tarteaucitron.lang.reload;
html += ' </span>'; html += ' </button>';
html += '</div>'; html += '</div>';
html += '<div id="tarteaucitronPremium"></div>'; html += '<div id="tarteaucitronPremium"></div>';
// create wrapper container
/*var wrapper = document.createElement('div');
wrapper.id = "contentWrapper";
while (document.body.firstChild)
{
wrapper.appendChild(document.body.firstChild);
}
// Append the wrapper to the body
document.body.appendChild(wrapper);*/
div.id = 'tarteaucitronRoot'; div.id = 'tarteaucitronRoot';
body.appendChild(div, body); body.appendChild(div, body);
div.innerHTML = html; div.innerHTML = html;
@ -397,6 +490,10 @@ var tarteaucitron = {
} }
}); });
}); });
if(tarteaucitron.events.load) {
tarteaucitron.events.load();
}
}, },
"addService": function (serviceId) { "addService": function (serviceId) {
"use strict"; "use strict";
@ -406,7 +503,7 @@ var tarteaucitron = {
cookie = tarteaucitron.cookie.read(), cookie = tarteaucitron.cookie.read(),
hostname = document.location.hostname, hostname = document.location.hostname,
hostRef = document.referrer.split('/')[2], hostRef = document.referrer.split('/')[2],
isNavigating = (hostRef === hostname) ? true : false, isNavigating = (hostRef === hostname && window.location.href !== tarteaucitron.parameters.privacyUrl) ? true : false,
isAutostart = (!service.needConsent) ? true : false, isAutostart = (!service.needConsent) ? true : false,
isWaiting = (cookie.indexOf(service.key + '=wait') >= 0) ? true : false, isWaiting = (cookie.indexOf(service.key + '=wait') >= 0) ? true : false,
isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false, isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false,
@ -417,27 +514,29 @@ var tarteaucitron = {
if (tarteaucitron.added[service.key] !== true) { if (tarteaucitron.added[service.key] !== true) {
tarteaucitron.added[service.key] = true; tarteaucitron.added[service.key] = true;
html += '<div id="' + service.key + 'Line" class="tarteaucitronLine">'; html += '<li id="' + service.key + 'Line" class="tarteaucitronLine">';
html += ' <div class="tarteaucitronName">'; html += ' <div class="tarteaucitronName">';
html += ' <b>' + service.name + '</b><br/>'; html += ' <h3>' + service.name + '</h3>';
html += ' <span id="tacCL' + service.key + '" class="tarteaucitronListCookies"></span><br/>'; html += ' <span id="tacCL' + service.key + '" class="tarteaucitronListCookies"></span><br/>';
html += ' <a href="https://opt-out.ferank.eu/service/' + service.key + '/" target="_blank" rel="noopener">'; if (tarteaucitron.parameters.moreInfoLink == true) {
html += ' <a href="https://opt-out.ferank.eu/service/' + service.key + '/" target="_blank" rel="noopener" title="'+ tarteaucitron.lang.cookieDetail + ' ' + service.name + ' ' + tarteaucitron.lang.ourSite + ' ' + tarteaucitron.lang.newWindow +'">';
html += ' ' + tarteaucitron.lang.more; html += ' ' + tarteaucitron.lang.more;
html += ' </a>'; html += ' </a>';
html += ' - '; html += ' - ';
html += ' <a href="' + service.uri + '" target="_blank" rel="noopener">'; html += ' <a href="' + service.uri + '" target="_blank" rel="noopener" title="' + service.name + ' ' + tarteaucitron.lang.newWindow + '">';
html += ' ' + tarteaucitron.lang.source; html += ' ' + tarteaucitron.lang.source;
html += ' </a>'; html += ' </a>';
}
html += ' </div>'; html += ' </div>';
html += ' <div class="tarteaucitronAsk">'; html += ' <div class="tarteaucitronAsk">';
html += ' <div id="' + service.key + 'Allowed" class="tarteaucitronAllow" onclick="tarteaucitron.userInterface.respond(this, true);">'; html += ' <button id="' + service.key + 'Allowed" class="tarteaucitronAllow" onclick="tarteaucitron.userInterface.respond(this, true);">';
html += ' &#10003; ' + tarteaucitron.lang.allow; html += ' &#10003; ' + tarteaucitron.lang.allow;
html += ' </div> '; html += ' </button> ';
html += ' <div id="' + service.key + 'Denied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respond(this, false);">'; html += ' <button id="' + service.key + 'Denied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respond(this, false);">';
html += ' &#10007; ' + tarteaucitron.lang.deny; html += ' &#10007; ' + tarteaucitron.lang.deny;
html += ' </button>';
html += ' </div>'; html += ' </div>';
html += ' </div>'; html += '</li>';
html += '</div>';
tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block'); tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block');
@ -587,10 +686,16 @@ var tarteaucitron = {
tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + greenDark); tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + greenDark);
tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', greenDark); tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', greenDark);
tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', gray); tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', gray);
document.getElementById(key + 'Line').classList.add('tarteaucitronIsAllowed');
document.getElementById(key + 'Line').classList.remove('tarteaucitronIsDenied');
} else if (status === false) { } else if (status === false) {
tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + redDark); tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + redDark);
tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', gray); tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', gray);
tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', redDark); tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', redDark);
document.getElementById(key + 'Line').classList.remove('tarteaucitronIsAllowed');
document.getElementById(key + 'Line').classList.add('tarteaucitronIsDenied');
} }
// check if all services are allowed // check if all services are allowed
@ -610,13 +715,15 @@ var tarteaucitron = {
if (nbDenied === 0 && nbPending === 0) { if (nbDenied === 0 && nbPending === 0) {
tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', greenDark); tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', greenDark);
tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', gray); tarteaucitron.userInterface.css(c + 'AllDenied', 'opacity', '0.4');
tarteaucitron.userInterface.css(c + 'AllAllowed', 'opacity', '1');
} else if (nbAllowed === 0 && nbPending === 0) { } else if (nbAllowed === 0 && nbPending === 0) {
tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', gray); tarteaucitron.userInterface.css(c + 'AllAllowed', 'opacity', '0.4');
tarteaucitron.userInterface.css(c + 'AllDenied', 'opacity', '1');
tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', redDark); tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', redDark);
} else { } else {
tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', gray); tarteaucitron.userInterface.css(c + 'AllAllowed', 'opacity', '0.4');
tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', gray); tarteaucitron.userInterface.css(c + 'AllDenied', 'opacity', '0.4');
} }
// close the alert if all service have been reviewed // close the alert if all service have been reviewed
@ -641,9 +748,15 @@ var tarteaucitron = {
}, },
"openPanel": function () { "openPanel": function () {
"use strict"; "use strict";
tarteaucitron.userInterface.css('tarteaucitron', 'display', 'block'); tarteaucitron.userInterface.css('tarteaucitron', 'display', 'block');
tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block'); tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block');
tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none'); tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none');
document.getElementById('tarteaucitronClosePanel').focus();
//document.getElementById('contentWrapper').setAttribute("aria-hidden", "true");
document.getElementsByTagName('body')[0].classList.add('modal-open');
tarteaucitron.userInterface.focusTrap();
tarteaucitron.userInterface.jsSizing('main'); tarteaucitron.userInterface.jsSizing('main');
}, },
"closePanel": function () { "closePanel": function () {
@ -664,6 +777,52 @@ var tarteaucitron = {
} else { } else {
tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none'); tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none');
} }
if (document.getElementById('tarteaucitronCloseAlert') !== null) {
document.getElementById('tarteaucitronCloseAlert').focus();
}
//document.getElementById('contentWrapper').setAttribute("aria-hidden", "false");
document.getElementsByTagName('body')[0].classList.remove('modal-open');
},
"focusTrap": function() {
"use strict";
var focusableEls,
firstFocusableEl,
lastFocusableEl,
filtered;
focusableEls = document.getElementById('tarteaucitron').querySelectorAll('a[href], button');
filtered = [];
// get only visible items
for (var i = 0, max = focusableEls.length; i < max; i++) {
if (focusableEls[i].offsetHeight > 0) {
filtered.push(focusableEls[i]);
}
}
firstFocusableEl = filtered[0];
lastFocusableEl = filtered[filtered.length - 1];
//loop focus inside tarteaucitron
document.getElementById('tarteaucitron').addEventListener("keydown", function (evt) {
if ( evt.key === 'Tab' || evt.keyCode === 9 ) {
if ( evt.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus();
evt.preventDefault();
}
} else /* tab */ {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
evt.preventDefault();
}
}
}
})
}, },
"openAlert": function () { "openAlert": function () {
"use strict"; "use strict";
@ -740,6 +899,8 @@ var tarteaucitron = {
if (typeof Array.prototype.map === 'function') { if (typeof Array.prototype.map === 'function') {
Array.prototype.map.call(main.children, Object).sort(function (a, b) { Array.prototype.map.call(main.children, Object).sort(function (a, b) {
//var mainChildren = Array.from(main.children);
//mainChildren.sort(function (a, b) {
if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; } if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; }
if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; } if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; }
return 0; return 0;
@ -794,20 +955,20 @@ var tarteaucitron = {
if (document.getElementById('tarteaucitron') !== null && document.getElementById('tarteaucitronClosePanel') !== null && document.getElementById('tarteaucitronMainLineOffset') !== null) { if (document.getElementById('tarteaucitron') !== null && document.getElementById('tarteaucitronClosePanel') !== null && document.getElementById('tarteaucitronMainLineOffset') !== null) {
// reset // reset
tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', 'auto'); tarteaucitron.userInterface.css('tarteaucitronServices', 'height', 'auto');
// calculate // calculate
mainHeight = document.getElementById('tarteaucitron').offsetHeight; mainHeight = document.getElementById('tarteaucitron').offsetHeight;
closeButtonHeight = document.getElementById('tarteaucitronClosePanel').offsetHeight; closeButtonHeight = document.getElementById('tarteaucitronClosePanel').offsetHeight;
headerHeight = document.getElementById('tarteaucitronMainLineOffset').offsetHeight;
// apply // apply
servicesHeight = (mainHeight - closeButtonHeight - headerHeight + 1); servicesHeight = (mainHeight - closeButtonHeight + 2);
tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', servicesHeight + 'px'); tarteaucitron.userInterface.css('tarteaucitronServices', 'height', servicesHeight + 'px');
tarteaucitron.userInterface.css('tarteaucitronServices', 'overflow-x', 'auto');
} }
// align the main allow/deny button depending on scrollbar width // align the main allow/deny button depending on scrollbar width
if (document.getElementById('tarteaucitronScrollbarParent') !== null && document.getElementById('tarteaucitronScrollbarChild') !== null) { if (document.getElementById('tarteaucitronServices') !== null && document.getElementById('tarteaucitronScrollbarChild') !== null) {
// media query // media query
if (e[a + 'Width'] <= 479) { if (e[a + 'Width'] <= 479) {
@ -816,7 +977,7 @@ var tarteaucitron = {
scrollbarMarginRight = 12; scrollbarMarginRight = 12;
} }
scrollbarWidthParent = document.getElementById('tarteaucitronScrollbarParent').offsetWidth; scrollbarWidthParent = document.getElementById('tarteaucitronServices').offsetWidth;
scrollbarWidthChild = document.getElementById('tarteaucitronScrollbarChild').offsetWidth; scrollbarWidthChild = document.getElementById('tarteaucitronScrollbarChild').offsetWidth;
tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginRight', ((scrollbarWidthParent - scrollbarWidthChild) + scrollbarMarginRight) + 'px'); tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginRight', ((scrollbarWidthParent - scrollbarWidthChild) + scrollbarMarginRight) + 'px');
} }
@ -886,7 +1047,7 @@ var tarteaucitron = {
expireTime = time + timeExipre, // 365 days expireTime = time + timeExipre, // 365 days
regex = new RegExp("!" + key + "=(wait|true|false)", "g"), regex = new RegExp("!" + key + "=(wait|true|false)", "g"),
cookie = tarteaucitron.cookie.read().replace(regex, ""), cookie = tarteaucitron.cookie.read().replace(regex, ""),
value = 'tarteaucitron=' + cookie + '!' + key + '=' + status, value = tarteaucitron.parameters.cookieName + '=' + cookie + '!' + key + '=' + status,
domain = (tarteaucitron.parameters.cookieDomain !== undefined && tarteaucitron.parameters.cookieDomain !== '') ? 'domain=' + tarteaucitron.parameters.cookieDomain + ';' : ''; domain = (tarteaucitron.parameters.cookieDomain !== undefined && tarteaucitron.parameters.cookieDomain !== '') ? 'domain=' + tarteaucitron.parameters.cookieDomain + ';' : '';
if (tarteaucitron.cookie.read().indexOf(key + '=' + status) === -1) { if (tarteaucitron.cookie.read().indexOf(key + '=' + status) === -1) {
@ -898,7 +1059,7 @@ var tarteaucitron = {
}, },
"read": function () { "read": function () {
"use strict"; "use strict";
var nameEQ = "tarteaucitron=", var nameEQ = tarteaucitron.parameters.cookieName + "=",
ca = document.cookie.split(';'), ca = document.cookie.split(';'),
i, i,
c; c;
@ -1014,27 +1175,28 @@ var tarteaucitron = {
if (tarteaucitron.cookie.owner[name] !== undefined && tarteaucitron.cookie.owner[name].join(' // ') !== savedname) { if (tarteaucitron.cookie.owner[name] !== undefined && tarteaucitron.cookie.owner[name].join(' // ') !== savedname) {
savedname = tarteaucitron.cookie.owner[name].join(' // '); savedname = tarteaucitron.cookie.owner[name].join(' // ');
html += '<div class="tarteaucitronHidden">'; html += '<div class="tarteaucitronHidden">';
html += ' <div class="tarteaucitronTitle">'; html += ' <h3 class="tarteaucitronTitle">';
html += ' ' + tarteaucitron.cookie.owner[name].join(' // '); html += ' ' + tarteaucitron.cookie.owner[name].join(' // ');
html += ' </div>'; html += ' </h3>';
html += '</div>'; html += '</div><ul class="cookie-list">';
} else if (tarteaucitron.cookie.owner[name] === undefined && host !== savedname) { } else if (tarteaucitron.cookie.owner[name] === undefined && host !== savedname) {
savedname = host; savedname = host;
html += '<div class="tarteaucitronHidden">'; html += '<div class="tarteaucitronHidden">';
html += ' <div class="tarteaucitronTitle">'; html += ' <h3 class="tarteaucitronTitle">';
html += ' ' + host; html += ' ' + host;
html += ' </div>'; html += ' </h3>';
html += '</div>'; html += '</div><ul class="cookie-list">';
} }
html += '<div class="tarteaucitronCookiesListMain">'; html += '<li class="tarteaucitronCookiesListMain">';
html += ' <div class="tarteaucitronCookiesListLeft"><a href="#" onclick="tarteaucitron.cookie.purge([\'' + cookies[i].split('=', 1) + '\']);tarteaucitron.cookie.number();tarteaucitron.userInterface.jsSizing(\'cookie\');return false"><b>&times;</b></a> <b>' + name + '</b>'; html += ' <div class="tarteaucitronCookiesListLeft"><button onclick="tarteaucitron.cookie.purge([\'' + cookies[i].split('=', 1) + '\']);tarteaucitron.cookie.number();tarteaucitron.userInterface.jsSizing(\'cookie\');return false"><strong>&times;</strong></button> <strong>' + name + '</strong>';
html += ' </div>'; html += ' </div>';
html += ' <div class="tarteaucitronCookiesListRight">' + cookies[i].split('=').slice(1).join('=') + '</div>'; html += ' <div class="tarteaucitronCookiesListRight">' + cookies[i].split('=').slice(1).join('=') + '</div>';
html += '</div>'; html += '</li>';
} }
html += '</ul>';
} else { } else {
html += '<div class="tarteaucitronCookiesListMain">'; html += '<div class="tarteaucitronCookiesListMain">';
html += ' <div class="tarteaucitronCookiesListLeft"><b>-</b></div>'; html += ' <div class="tarteaucitronCookiesListLeft"><strong>-</strong></div>';
html += ' <div class="tarteaucitronCookiesListRight"></div>'; html += ' <div class="tarteaucitronCookiesListRight"></div>';
html += '</div>'; html += '</div>';
} }
@ -1230,14 +1392,19 @@ var tarteaucitron = {
"engage": function (id) { "engage": function (id) {
"use strict"; "use strict";
var html = '', var html = '',
r = Math.floor(Math.random() * 100000); r = Math.floor(Math.random() * 100000),
engage = tarteaucitron.services[id].name + ' ' + tarteaucitron.lang.fallback;
if (tarteaucitron.lang['engage-' + id] !== undefined) {
engage = tarteaucitron.lang['engage-' + id];
}
html += '<div class="tac_activate">'; html += '<div class="tac_activate">';
html += ' <div class="tac_float">'; html += ' <div class="tac_float">';
html += ' <b>' + tarteaucitron.services[id].name + '</b> ' + tarteaucitron.lang.fallback; html += ' ' + engage;
html += ' <div class="tarteaucitronAllow" id="Eng' + r + 'ed' + id + '" onclick="tarteaucitron.userInterface.respond(this, true);">'; html += ' <button class="tarteaucitronAllow" id="Eng' + r + 'ed' + id + '" onclick="tarteaucitron.userInterface.respond(this, true);">';
html += ' &#10003; ' + tarteaucitron.lang.allow; html += ' &#10003; ' + tarteaucitron.lang.allow;
html += ' </div>'; html += ' </button>';
html += ' </div>'; html += ' </div>';
html += '</div>'; html += '</div>';
@ -1285,5 +1452,24 @@ var tarteaucitron = {
} }
tarteaucitron.cookie.number(); tarteaucitron.cookie.number();
},
"AddOrUpdate" : function(source, custom){
/**
Utility function to Add or update the fields of obj1 with the ones in obj2
*/
for(key in custom){
if(custom[key] instanceof Object){
source[key] = tarteaucitron.AddOrUpdate(source[key], custom[key]);
}else{
source[key] = custom[key];
}
}
return source;
},
"getElemWidth": function(elem) {
return elem.getAttribute('width') || elem.clientWidth;
},
"getElemHeight": function(elem) {
return elem.getAttribute('height') || elem.clientHeight;
} }
}; };

View File

@ -1020,7 +1020,16 @@ tarteaucitron.services.gajs = {
"use strict"; "use strict";
window._gaq = window._gaq || []; window._gaq = window._gaq || [];
window._gaq.push(['_setAccount', tarteaucitron.user.gajsUa]); window._gaq.push(['_setAccount', tarteaucitron.user.gajsUa]);
if (tarteaucitron.user.gajsAnonymizeIp) {
window._gaq.push (['_gat._anonymizeIp']);
}
if (tarteaucitron.user.gajsPageView) {
window._gaq.push(['_trackPageview, ' + tarteaucitron.user.gajsPageView]);
} else {
window._gaq.push(['_trackPageview']); window._gaq.push(['_trackPageview']);
}
tarteaucitron.addScript('//www.google-analytics.com/ga.js', '', function () { tarteaucitron.addScript('//www.google-analytics.com/ga.js', '', function () {
if (typeof tarteaucitron.user.gajsMore === 'function') { if (typeof tarteaucitron.user.gajsMore === 'function') {
@ -1047,8 +1056,24 @@ tarteaucitron.services.analytics = {
}; };
window.ga.l = new Date(); window.ga.l = new Date();
tarteaucitron.addScript('https://www.google-analytics.com/analytics.js', '', function () { tarteaucitron.addScript('https://www.google-analytics.com/analytics.js', '', function () {
ga('create', tarteaucitron.user.analyticsUa, {'cookieExpires': 34128000}); var uaCreate = {'cookieExpires': 34128000};
tarteaucitron.extend(uaCreate, tarteaucitron.user.analyticsUaCreate || {});
ga('create', tarteaucitron.user.analyticsUa, uaCreate);
if (tarteaucitron.user.analyticsAnonymizeIp) {
ga('set', 'anonymizeIp', true);
}
if (typeof tarteaucitron.user.analyticsPrepare === 'function') {
tarteaucitron.user.analyticsPrepare();
}
if (tarteaucitron.user.analyticsPageView) {
ga('send', 'pageview', tarteaucitron.user.analyticsPageView);
} else {
ga('send', 'pageview'); ga('send', 'pageview');
}
if (typeof tarteaucitron.user.analyticsMore === 'function') { if (typeof tarteaucitron.user.analyticsMore === 'function') {
tarteaucitron.user.analyticsMore(); tarteaucitron.user.analyticsMore();
} }
@ -1104,7 +1129,7 @@ tarteaucitron.services.googlemaps = {
} }
// Add Google Maps libraries if any (https://developers.google.com/maps/documentation/javascript/libraries) // Add Google Maps libraries if any (https://developers.google.com/maps/documentation/javascript/libraries)
var googleMapsLibraries; var googleMapsLibraries = '';
if (tarteaucitron.user.googlemapsLibraries) { if (tarteaucitron.user.googlemapsLibraries) {
googleMapsLibraries = '&libraries=' + tarteaucitron.user.googlemapsLibraries; googleMapsLibraries = '&libraries=' + tarteaucitron.user.googlemapsLibraries;
} }
@ -1166,6 +1191,35 @@ tarteaucitron.services.googlemapssearch = {
} }
}; };
// googlemaps embed iframe
tarteaucitron.services.googlemapsembed = {
"key": "googlemapsembed",
"type": "api",
"name": "Google Maps Embed",
"uri": "http://www.google.com/ads/preferences/",
"needConsent": true,
"cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
"js": function () {
"use strict";
tarteaucitron.fallback(['googlemapsembed'], function (x) {
var width = tarteaucitron.getElemWidth(x),
height = tarteaucitron.getElemHeight(x),
url = x.getAttribute("data-url");
return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
});
},
"fallback": function () {
"use strict";
var id = 'googlemapsembed';
tarteaucitron.fallback(['googlemapsembed'], function (elem) {
elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
return tarteaucitron.engage(id);
});
}
};
// google tag manager // google tag manager
tarteaucitron.services.googletagmanager = { tarteaucitron.services.googletagmanager = {
"key": "googletagmanager", "key": "googletagmanager",
@ -2254,7 +2308,7 @@ tarteaucitron.services.matomo = {
"type": "analytic", "type": "analytic",
"name": "Matomo (formerly known as Piwik)", "name": "Matomo (formerly known as Piwik)",
"uri": "https://matomo.org/faq/general/faq_146/", "uri": "https://matomo.org/faq/general/faq_146/",
"needConsent": true, "needConsent": false,
"cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'], "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'],
"js": function () { "js": function () {
"use strict"; "use strict";
@ -2269,27 +2323,33 @@ tarteaucitron.services.matomo = {
window._paq.push(["trackPageView"]); window._paq.push(["trackPageView"]);
window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]); window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]);
window._paq.push(["enableLinkTracking"]); window._paq.push(["enableLinkTracking"]);
window._paq.push([function() {
var self = this;
function getOriginalVisitorCookieTimeout() {
var now = new Date(),
nowTs = Math.round(now.getTime() / 1000),
visitorInfo = self.getVisitorInfo();
var createTs = parseInt(visitorInfo[2]);
var cookieTimeout = 33696000; // 13 mois en secondes
var originalTimeout = createTs + cookieTimeout - nowTs;
return originalTimeout;
}
this.setVisitorCookieTimeout( getOriginalVisitorCookieTimeout() );
}]);
tarteaucitron.addScript(tarteaucitron.user.matomoHost + 'piwik.js', '', '', true, 'defer', true); tarteaucitron.addScript(tarteaucitron.user.matomoHost + 'piwik.js', '', '', true, 'defer', true);
} }
}; };
// Hotjar // Hotjar
/* /*
1. Set the following variable before the initialization : 1. Set the following variable before the initialization :
tarteaucitron.user.hotjarId = YOUR_WEBSITE_ID; tarteaucitron.user.hotjarId = YOUR_WEBSITE_ID;
tarteaucitron.user.HotjarSv = XXXX; // Can be found in your website tracking code as "hjvs=XXXX" tarteaucitron.user.HotjarSv = XXXX; // Can be found in your website tracking code as "hjvs=XXXX"
2. Push the service : 2. Push the service :
(tarteaucitron.job = tarteaucitron.job || []).push('hotjar'); (tarteaucitron.job = tarteaucitron.job || []).push('hotjar');
3. HTML 3. HTML
You don't need to add any html code, if the service is autorized, the javascript is added. otherwise no. You don't need to add any html code, if the service is autorized, the javascript is added. otherwise no.
*/ */
tarteaucitron.services.hotjar = { tarteaucitron.services.hotjar = {
"key": "hotjar", "key": "hotjar",
@ -2303,7 +2363,6 @@ tarteaucitron.services.hotjar = {
if (tarteaucitron.user.hotjarId === undefined || tarteaucitron.user.HotjarSv === undefined) { if (tarteaucitron.user.hotjarId === undefined || tarteaucitron.user.HotjarSv === undefined) {
return; return;
} }
window.hj = window.hj || function() { window.hj = window.hj || function() {
(window.hj.q = window.hj.q || []).push(arguments) (window.hj.q = window.hj.q || []).push(arguments)
}; };
@ -2311,9 +2370,185 @@ tarteaucitron.services.hotjar = {
hjid: tarteaucitron.user.hotjarId, hjid: tarteaucitron.user.hotjarId,
hjsv: tarteaucitron.user.HotjarSv hjsv: tarteaucitron.user.HotjarSv
}; };
var uri = 'https://static.hotjar.com/c/hotjar-'; var uri = 'https://static.hotjar.com/c/hotjar-';
var extension = '.js?sv='; var extension = '.js?sv=';
tarteaucitron.addScript(uri + window._hjSettings.hjid + extension + window._hjSettings.hjsv); tarteaucitron.addScript(uri + window._hjSettings.hjid + extension + window._hjSettings.hjsv);
} }
}; };
// bing ads universal event tracking
tarteaucitron.services.bingads = {
'key': 'bingads',
'type': 'ads',
'name': 'Bing Ads Universal Event Tracking',
'uri': 'https://advertise.bingads.microsoft.com/en-us/resources/policies/personalized-ads',
'needConsent': true,
'cookies': ['_uetmsclkid'],
'js': function () {
'use strict';
var u = tarteaucitron.user.bingadsTag || 'uetq';
window[u] = window[u] || [];
tarteaucitron.addScript('https://bat.bing.com/bat.js', '', function () {
var bingadsCreate = {ti: tarteaucitron.user.bingadsID};
if ('bingadsStoreCookies' in tarteaucitron.user) {
bingadsCreate['storeConvTrackCookies'] = tarteaucitron.user.bingadsStoreCookies;
}
bingadsCreate.q = window[u];
window[u] = new UET(bingadsCreate);
window[u].push('pageload');
});
}
};
//Matterport
/*
SERVICE INIT
(tarteaucitron.job = tarteaucitron.job || []).push('matterport');
HTML TAG
<div class="matterport" matterportid="N2Q67sZUNUd" width="100%" height="550" parameters="&play=1"></div>
DELETE IFRAME
<iframe type="text/html" width="100%" height="550" src="https://my.matterport.com/show/?m=N2Q67sZUNUd&utm_source=hit-content&play=1" frameborder="0" allowfullscreen="allowfullscreen"></iframe>'
*/
tarteaucitron.services.matterport = {
"key": "matterport",
"type": "other",
"name": "Matterport",
"uri": "https://matterport.com/es/legal/privacy-policy/",
"needConsent": true,
"cookies": ['__cfduid', 'ajs_anonymous_id', 'ajs_group_id', 'ajs_user_id'],
"js": function () {
"use strict";
tarteaucitron.fallback(['matterport'], function (x) {
var matterport_id = x.getAttribute("matterportID"),
matterport_width = x.getAttribute("width"),
frame_width = 'width=',
matterport_height = x.getAttribute("height"),
frame_height = 'height=',
matterport_parameters = x.getAttribute("parameters"),
matterport_frame;
if (matterport_id === undefined) {
return "";
}
if (matterport_width !== undefined) {
frame_width += '"' + matterport_width + '" ';
} else {
frame_width += '"" ';
}
if (matterport_height !== undefined) {
frame_height += '"' + matterport_height + '" ';
} else {
frame_height += '"" ';
}
if (matterport_parameters === undefined) {
return "";
}
matterport_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="https://my.matterport.com/show/?m=' + matterport_id + '&utm_source=hit-content' + matterport_parameters + '" frameborder="0" allowfullscreen="allowfullscreen"></iframe>';
return matterport_frame;
});
},
"fallback": function () {
"use strict";
var id = 'matterport';
tarteaucitron.fallback(['matterport'], function (elem) {
elem.style.width = elem.getAttribute('width') + 'px';
elem.style.height = elem.getAttribute('height') + 'px';
return tarteaucitron.engage(id);
});
}
};
// Adform
tarteaucitron.services.adform = {
"key": "adform",
"type": "ads",
"name": "Adform",
"uri": "https://site.adform.com/privacy-center/overview/",
"needConsent": true,
"cookies": [],
"js": function () {
"use strict";
if (tarteaucitron.user.adformpm === undefined || tarteaucitron.user.adformpagename === undefined) {
return;
}
window._adftrack = {
pm: tarteaucitron.user.adformpm,
divider: encodeURIComponent('|'),
pagename: encodeURIComponent(tarteaucitron.user.adformpagename)
};
tarteaucitron.addScript("https://track.adform.net/serving/scripts/trackpoint/async/");
}
};
// Active Campaign
tarteaucitron.services.activecampaign = {
"key": "activecampaign",
"type": "ads",
"name": "Active Campaign",
"uri": "https://www.activecampaign.com/privacy-policy/",
"needConsent": true,
"cookies": [],
"js": function () {
"use strict";
if (tarteaucitron.user.actid === undefined) {
return;
}
window.trackcmp_email = '';
tarteaucitron.addScript('https://trackcmp.net/visit?actid='+tarteaucitron.user.actid+'&e='+encodeURIComponent(trackcmp_email)+'&r='+encodeURIComponent(document.referrer)+'&u='+encodeURIComponent(window.location.href));
}
};
// tawk.to
tarteaucitron.services.tawkto = {
"key": "tawkto",
"type": "support",
"name": "Tawk.to chat",
"uri": "https://www.tawk.to/data-protection/",
"needConsent": true,
"cookies": [],
"js": function () {
"use strict";
if (tarteaucitron.user.tawktoId === undefined) {
return;
}
window.Tawk_API=window.Tawk_API||{};
window.Tawk_LoadStart=new Date();
tarteaucitron.addScript('https://embed.tawk.to/' + tarteaucitron.user.tawktoId + '/default');
}
};
// getquanty
tarteaucitron.services.getquanty = {
"key": "getquanty",
"type": "analytic",
"name": "GetQuanty",
"uri": "https://www.getquanty.com/mentions-legales/",
"needConsent": true,
"cookies": [],
"js": function () {
"use strict";
if (tarteaucitron.user.getguanty === undefined) {
return;
}
window.webleads_site_ids = window.webleads_site_ids || [];
window.webleads_site_ids.push(tarteaucitron.user.getguanty);
tarteaucitron.addScript('https://stats.webleads-tracker.com/js');
tarteaucitron.addScript('https://get.smart-data-systems.com/track?site_id=' + tarteaucitron.user.getguanty);
}
};