Merge branch 'master' into feat/hide-read-more

This commit is contained in:
Amauri CHAMPEAUX 2018-12-26 13:34:03 +01:00 committed by GitHub
commit dac62f1a22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 1915 additions and 406 deletions

111
README.md
View File

@ -1,5 +1,5 @@
[![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)
[![npm](https://img.shields.io/npm/v/tarteaucitronjs.svg)](https://www.npmjs.com/package/tarteaucitronjs) [![GitHub contributors](https://img.shields.io/github/contributors/AmauriC/tarteaucitron.js.svg)](https://github.com/AmauriC/tarteaucitron.js/graphs/contributors)
tarteaucitron.js
================
@ -19,83 +19,6 @@ Bonus:
- 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).
## Supported services
* Advertising network
* 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)
* 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
## 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
[Visit opt-out.ferank.eu](https://opt-out.ferank.eu/)
@ -108,15 +31,27 @@ In PHP for example, you can bypass all the script by setting this var `tarteauci
<script type="text/javascript">
tarteaucitron.init({
"hashtag": "#tarteaucitron", /* Ouverture automatique du panel avec le hashtag */
"highPrivacy": false, /* désactiver le consentement implicite (en naviguant) ? */
"orientation": "top", /* le bandeau doit être en haut (top) ou en bas (bottom) ? */
"adblocker": false, /* Afficher un message si un adblocker est détecté */
"showAlertSmall": true, /* afficher le petit bandeau en bas à droite ? */
"cookieslist": true, /* Afficher la liste des cookies installés ? */
"removeCredit": false, /* supprimer le lien vers la source ? */
"cookieDomain": ".my-multisite-domaine.fr", /* Nom de domaine sur lequel sera posé le cookie - pour les multisites / sous-domaines - Facultatif */
"readmoreLink": "/cookiespolicy" /* Pour changer les liens Read more, si vous avez une page listant tous les cookies par exemple - Facultatif */
"privacyUrl": "", /* Privacy policy url */
"hashtag": "#tarteaucitron", /* Open the panel with this hashtag */
"cookieName": "tartaucitron", /* Cookie name */
"orientation": "top", /* Banner position (top - bottom) */
"showAlertSmall": true, /* Show the small banner on bottom right */
"cookieslist": true, /* Show the cookie list */
"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 */
"useExternalCss": false /* If false, the tarteaucitron.css file will be loaded */
//"cookieDomain": ".my-multisite-domaine.fr" /* Shared cookie for subdomain website */
"readmoreLink": "/cookiespolicy" /* Change the default readmore link pointing to opt-out.ferank.eu */
});
</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, #tarteaucitronRoot 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
*/
@ -37,6 +109,18 @@
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle {
text-align: left !important;
}
.tarteaucitronName .tarteaucitronH2 {
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) {
@ -56,6 +140,16 @@
zoom: 1;
}
#tarteaucitronRoot div#tarteaucitron {
left: 0;
right: 0;
margin: auto;
}
#tarteaucitronRoot button#tarteaucitronBack {
background: #eee;
}
#tarteaucitron .clear {
clear: both;
}
@ -67,15 +161,34 @@
text-decoration: none;
}
#tarteaucitronRoot button {
background: transparent;
border: 0;
}
#tarteaucitronAlertBig strong, #tarteaucitronAlertSmall strong,
#tarteaucitronAlertBig a, #tarteaucitronAlertSmall a {
color: #fff;
}
#tarteaucitron b {
#tarteaucitron strong {
font-size: 22px;
font-weight: 500;
}
#tarteaucitron ul {
padding: 0;
}
#tarteaucitron .tarteaucitronH1, #tarteaucitron .tarteaucitronH2, #tarteaucitron .tarteaucitronH3, #tarteaucitron .tarteaucitronH4, #tarteaucitron .tarteaucitronH5, #tarteaucitron .tarteaucitronH6 {
display: block;
}
.cookie-list {
list-style: none;
padding: 0;
margin: 0;
}
/***
* Root div added just before </body>
*/
@ -96,6 +209,23 @@
vertical-align: initial;
}
#tarteaucitronRoot .tarteaucitronH1 {
font-size: 1.5em;
text-align: center;
color: #fff;
margin: 15px 0 28px;
}
#tarteaucitronRoot .tarteaucitronH2 {
display: inline-block;
margin: 12px 0 0 10px;
color: #fff;
}
#tarteaucitronCookiesNumberBis.tarteaucitronH2 {
margin-left: 0;
}
/***
* Control panel
*/
@ -153,9 +283,13 @@
width: 80%;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronHidden,
.tarteaucitronSelfLink, #tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronHidden,
#tarteaucitron #tarteaucitronServices .tarteaucitronHidden {
background: rgba(51, 51, 51, 0.07);
}a.tarteaucitronSelfLink {
text-align: center!important;
display: block;
padding: 7px!important;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronHidden {
@ -163,11 +297,15 @@
position: relative;
}
#tarteaucitronCookiesList .tarteaucitronH3.tarteaucitronTitle {
width: 100%;
box-sizing: border-box;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button,
#tarteaucitron #tarteaucitronInfo,
#tarteaucitron #tarteaucitronServices .tarteaucitronDetails {
background: #333;
color: #fff;
display: inline-block;
font-size: 14px;
@ -176,6 +314,7 @@
padding: 5px 20px;
text-align: left;
width: auto;
background: #333;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a,
@ -199,6 +338,7 @@
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle {
padding: 5px 10px;
margin: 0;
}
#tarteaucitron #tarteaucitronInfo,
@ -250,7 +390,7 @@
margin-top: 2px;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName b {
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName button {
color: #fff;
}
@ -289,6 +429,7 @@
text-align: center;
text-decoration: none;
width: auto;
border: 0;
}
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies {
@ -296,6 +437,16 @@
font-size: 12px;
}
#tarteaucitron .tarteaucitronH3 {
font-size: 18px;
}
#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName {
width: auto!important;
margin-left: 0!important;
font-size: 14px;
}
/***
* Big alert
*/
@ -307,7 +458,7 @@
bottom: 0;
}
#tarteaucitronAlertBig {
#tarteaucitronRoot #tarteaucitronAlertBig {
background: #333;
color: #fff;
display: none;
@ -316,22 +467,29 @@
padding: 5px 5%;
position: fixed;
text-align: center;
width: 90%;
box-sizing: content-box;
z-index: 2147483645;
text-align: center;
padding: 10px;
margin: auto;
width: 100%;
}
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b {
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
font: 15px verdana;
color: #fff;
}
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b {
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
font-weight: 700;
}
#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize {
#tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
cursor: pointer;
}
#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize, #tarteaucitron #tarteaucitronPrivacyUrl {
background: #008300;
color: #fff;
cursor: pointer;
@ -342,7 +500,7 @@
margin-left: 7px;
}
#tarteaucitronAlertBig #tarteaucitronCloseAlert {
#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitron #tarteaucitronPrivacyUrl {
background: #fff;
color: #333;
font-size: 13px;
@ -352,7 +510,7 @@
}
#tarteaucitronPercentage {
background: #0A0;
background: #0A0!important;
box-shadow: 0 0 2px #fff, 0 1px 2px #555;
height: 5px;
left: 0;
@ -364,9 +522,13 @@
/***
* Small alert
*/
.tarteaucitronAlertSmallTop,.tarteaucitronAlertSmallBottom {
bottom: 0;
}
#tarteaucitronAlertSmall {
background: #333;
bottom: 0;
display: none;
padding: 0;
position: fixed;
@ -453,7 +615,7 @@
text-align: left;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList b {
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList strong {
color: #333;
}
@ -464,7 +626,7 @@
text-align: left;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle b {
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle strong {
color: #fff;
font-size: 16px;
}
@ -489,7 +651,7 @@
width: 50%;
}
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft a b {
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft a strong {
color: darkred;
}
@ -523,7 +685,7 @@
vertical-align: middle;
}
.tac_activate .tac_float b {
.tac_activate .tac_float strong {
color: #fff;
}
@ -543,3 +705,45 @@ div.amazon_product {
height:240px;
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 .tarteaucitronH2 {
font-size: 1.2em!important;
margin-top: 4px!important;
}
span.tarteaucitronTitle.tarteaucitronH3 {
margin-top: 12px!important;
}

75
lang/tarteaucitron.bg.js Normal file
View File

@ -0,0 +1,75 @@
/*global tarteaucitron */
tarteaucitron.lang = {
"adblock": "Здравей! Този сайт позволяа включването на бисквитки по избор.",
"adblock_call": "Моля изключете вашият adblocker и изберете бисквитките които искате, или спрете всички.",
"reload": "Презареди",
"alertBigScroll": "Ако продължавате да скролвате,",
"alertBigClick": "Ако продължавате да използвате този сайт,",
"alertBig": "вив се съгласявате с всички бисквитки от трети лица.",
"alertBigPrivacy": "Този сайт използва бисквитки и Ви дава право да изберете записването на определени или всички.",
"alertSmall": "Управление на услуги",
"personalize": "Ще избирам",
"acceptAll": "ОК, приемам всички",
"close": "Затвори",
"privacyUrl": "Политика за поверителност",
"all": "Услуги които записват бисквитки на този сайт",
"info": "Зашитава вашата сигурност",
"disclaimer": "Позволяването на тези бисквитки от трети лица, Вие приемате те да записват и използват услуги за проследяване нужни за правилното им функциониране.",
"allow": "Разшреши",
"deny": "Забрани",
"noCookie": "Тази услуга не записва бисквитки.",
"useCookie": "Тази услуга може да запише",
"useCookieCurrent": "Тази услуга е записала",
"useNoCookie": "Тази услуга не е записала бисквитки.",
"more": "Прочети повече",
"source": "Официален сайт",
"credit": "Управление на бисквитките от tarteaucitron.js",
"toggleInfoBox": "Покажи/скрий информация за записването на бисквитки",
"title": "Управление на бисквитките",
"cookieDetail": "Информация за",
"ourSite": "в нашият сайт",
"newWindow": "(нов прозорец)",
"allowAll": "Разреши всички",
"denyAll": "Забрани всички",
"fallback": "е изключен.",
"ads": {
"title": "Рекламодатели",
"details": "Ad networks can generate revenue by selling advertising space on the site."
},
"analytic": {
"title": "Аналитични",
"details": "The audience measurement services used to generate useful statistics attendance to improve the site."
},
"social": {
"title": "Социални",
"details": "Social networks can improve the usability of the site and help to promote it via the shares."
},
"video": {
"title": "Видео платформи",
"details": "Video sharing services help to add rich media on the site and increase its visibility."
},
"comment": {
"title": "Коментари",
"details": "Comments managers facilitate the filing of comments and fight against spam."
},
"support": {
"title": "Поддръжка",
"details": "Support services allow you to get in touch with the site team and help to improve it."
},
"api": {
"title": "Функционални",
"details": "APIs are used to load scripts: geolocation, search engines, translations, ..."
},
"other": {
"title": "Други",
"details": "Services to display web content."
}
};

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, přijmout vše",
"close": "Zavřít",
"privacyUrl": "Zásady ochrany osobních údajů",
"all": "Nastavení všech služeb",
"info": "Chrání tvé soukromí",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zobrazit oficiální stránku",
"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ý.",
"ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, akzeptiere alles",
"close": "Beenden",
"privacyUrl": "Datenschutz-Bestimmungen",
"all": "Präferenz für alle Dienste",
"info": "Schutz der Privatsphäre",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zur offiziellen Webseite",
"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.",
"ads": {

75
lang/tarteaucitron.el.js Normal file
View File

@ -0,0 +1,75 @@
/*global tarteaucitron */
tarteaucitron.lang = {
"adblock": "Γεια σας! Ο ιστότοπος αυτός σας επιτρέπει να επιλέξετε τις υπηρεσίες που παρέχονται από τρίτους που θα θέλατε να επιτρέψετε.",
"adblock_call": "Παρακαλώ απενεργοποιήστε τα προγράμματα απόρριψης διαφημίσεων για να ξεκινήσετε τις τροποποιήσεις σας.",
"reload": "Ανανέωση της σελίδας",
"alertBigScroll": "Συνεχίζοντας την ανάγνωση (κύλιση) της σελίδας,",
"alertBigClick": "Αν συνεχίσετε την περιήγηση σας στον ιστότοπο,",
"alertBig": "επιτρέπετε όλες τις υπηρεσίες που παρέχονται από τρίτους",
"alertBigPrivacy": "Ο ιστότοπος αυτός χρησιμοποιεί &quot;μπισκότα&quot; (cookies) και σας επιτρέπει να ελέγξετε τι θέλετε να ενεργοποιήσετε",
"alertSmall": "Διαχείριση υπηρεσιών",
"personalize": "Εξατομίκευση",
"acceptAll": "OK, αποδοχή όλων",
"close": "Κλείσιμο",
"privacyUrl": "Πολιτική απορρήτου",
"all": "Προτίμηση για όλες τις υπηρεσίες",
"info": "Προστασία των προσωπικών σας δεδομένων",
"disclaimer": "Επιτρέποντας αυτές τις υπηρεσίες που παρέχονται από τρίτους, αποδέχεστε τα &quot;μπισκότα&quot; (cookies) τους καθώς και τη χρήση τεχνολογιών παρακολούθησης που είναι απαραίτητες για τη λειτουργία τους.",
"allow": "Επέτρεψε",
"deny": "Απόρριψε",
"noCookie": "Η υπηρεσία αυτή δε χρησιμοποιεί &quot;μπισκότα&quot; (cookies).",
"useCookie": "Η υπηρεσία αυτή μπορεί να αποθηκεύσει ",
"useCookieCurrent": "Η υπηρεσία αυτή έχει αποθηκεύσει ",
"useNoCookie": "Η υπηρεσία αυτή δεν έχει αποθηκεύσει κανένα &quot;μπισκότο&quot; (cookie).",
"more": "Διαβάστε περισσότερα",
"source": "Δείτε τον επίσημο ιστότοπο",
"credit": "Cookies manager by tarteaucitron.js",
"toggleInfoBox": "Προβολή/Απόκρυψη πληροφοριών για την αποθήκευση &quot;μπισκότων&quot; (cookies)",
"title": "Πίνακας διαχείρισης &quot;Μπισκότων&quot; (Cookies)",
"cookieDetail": "Λεπτομέρειες &quot;μπισκότων&quot; (cookies) για",
"ourSite": "στον ιστότοπο μας",
"newWindow": "(νέο παράθυρο)",
"allowAll": "Επέτρεψε όλα τα &quot;μπισκότα&quot; (cookies)",
"denyAll": "Απόρριψε όλα τα &quot;μπισκότα&quot; (cookies)",
"fallback": "είναι απενεργοποιημένο.",
"ads": {
"title": "Διαφημιστικό Δίκτυο",
"details": "Τα διαφημιστικά δίκτυα μπορούν να αποφέρουν εισόδημα πουλώντας διαφημιστικό χώρο στη σελίδα."
},
"analytic": {
"title": "Μετρήσεις κοινού",
"details": "Οι υπηρεσίες μέτρησης κοινού χρησιμοποιούνται για τον υπολογισμό χρήσιμων στατιστικών επισκεψιμότητας του ιστοτόπου για την βελτίωση του."
},
"social": {
"title": "Κοινωνικά δίκτυα",
"details": "Τα κοινωνικά δίκτυα μπορούν να βελτιώσουν την χρηστικότητα του ιστοτόπου και να τον προωθήσουν μέσω κοινοποιήσεων."
},
"video": {
"title": "Βίντεο",
"details": "Υπηρεσίες διαμοιρασμού βίντεο που βοηθούν να παρουσιαστεί πλούσιο περιεχόμενο στον ιστότοπο και να αυξήσουν την αναγνωρισιμότητα του."
},
"comment": {
"title": "Σχόλια",
"details": "Οι διαχειριστές σχολίων βοηθούν την καταχώρηση σχολίων και προστατεύουν από κακόβουλες ενέργειες."
},
"support": {
"title": "Υποστήριξη",
"details": "Οι υποστηρικτικές υπηρεσίες σας επιτρέπουν να επικονωνείτε με την ομάδα υποστήριξης του ιστοτόπου και να βοηθήσετε στην βελτίωση του."
},
"api": {
"title": "APIs",
"details": "Τα API χρησιμοποιούνται για την φόρτωση προγραμμάτων: αναγνώρισης τοποθεσίας, μηχανών αναζήτησης, μεταφράσεων, ..."
},
"other": {
"title": "Λοιπές υπηρεσίες",
"details": "Υπηρεσίες που παρουσιάζουν άλλο περιεχόμενο."
}
};

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, accept all",
"close": "Close",
"privacyUrl": "Privacy policy",
"all": "Preference for all services",
"info": "Protecting your privacy",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "View the official website",
"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.",
"ads": {

View File

@ -1,26 +1,28 @@
/*global tarteaucitron */
tarteaucitron.lang = {
"adblock": "Hola! Este sitio web es transparente y le da la opción de activar los servicios de terceros.",
"adblock_call": "Por favor deshabilite su AdBlocker para empezar a personalizar los servicios.",
"adblock": "¡Hola! Este sitio web es transparente y te da la opción de activar los servicios de terceros.",
"adblock_call": "Por favor deshabilita tu AdBlocker para empezar a personalizar los servicios.",
"reload": "Actualizar esta página",
"alertBigScroll": "Al continuar para desplazarse,",
"alertBigScroll": "Al continuar desplazándote,",
"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",
"personalize": "Personalizar",
"acceptAll": "OK, aceptar todas",
"close": "Cerrar",
"privacyUrl": "Política de privacidad",
"all": "Ajustes para todos los servicios",
"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",
"deny": "Denegar",
"noCookie": "Este servicio no usa cookie.",
"noCookie": "Este servicio no usa cookies.",
"useCookie": "Este servicio puede instalar",
"useCookieCurrent": "Este servicio ha instalado",
"useNoCookie": "Este servicio no ha instalado ninguna cookie.",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Ver sitio web oficial",
"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.",
"ads": {
@ -35,8 +45,8 @@ tarteaucitron.lang = {
"details": "Las redes publicitarias pueden generar ingresos mediante la venta de espacios publicitarios en el sitio."
},
"analytic": {
"title": "Mediciión de audiencia",
"details": "Los servicios de medición de audiencia se usan para generar asistencia estadísticas útiles para mejorar el sitio."
"title": "Medición de audiencia",
"details": "Los servicios de medición de audiencia se usan para generar estadísticas útiles para mejorar el sitio."
},
"social": {
"title": "Redes sociales",

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"personalize": "Personnaliser",
"close": "Fermer",
"privacyUrl": "Politique de confidentialité",
"all": "Préférence pour tous les services",
"info": "Protection de votre vie privée",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Voir le site officiel",
"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é.",
"ads": {

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"personalize": "Personalizza",
"close": "Chiudi",
"privacyUrl": "Politica sulla riservatezza",
"all": "Preferenze per tutti i servizi",
"info": "Tutela della privacy",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Vai al sito ufficiale",
"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",
"ads": {

75
lang/tarteaucitron.nl.js Normal file
View File

@ -0,0 +1,75 @@
/*global tarteaucitron */
tarteaucitron.lang = {
"adblock": "Hallo! Deze site is transparant en laat u de services van derden kiezen die u wilt toestaan.",
"adblock_call": "Schakel uw adblocker uit om te beginnen met aanpassen.",
"reload": "Ververs de pagina",
"alertBigScroll": "Door te blijven scrollen,",
"alertBigClick": "Als je doorgaat met het surfen op deze website,",
"alertBig": "sta je alle diensten van derden toe",
"alertBigPrivacy": "Deze site maakt gebruik van cookies en geeft u controle over wat u wilt activeren",
"alertSmall": "Beheer instellingen",
"personalize": "Personaliseer",
"acceptAll": "OK, accepteer alle",
"close": "Sluit",
"privacyUrl": "Privacybeleid",
"all": "Voorkeur voor alle diensten",
"info": "Bescherming van uw privacy",
"disclaimer": "Door deze services van derden toe te staan, accepteert u hun cookies en het gebruik van trackingtechnologieën die nodig zijn voor hun goede werking.",
"allow": "Toestaan",
"deny": "Weigeren",
"noCookie": "Deze service gebruikt geen cookie",
"useCookie": "Deze service kan worden geïnstalleerd",
"useCookieCurrent": "Deze service is geïnstalleerd",
"useNoCookie": "Deze service heeft geen cookies geïnstalleerd.",
"more": "Lees meer",
"source": "Bekijk de officiële website",
"credit": "Cookie manager mogelijk gemaakt door tarteaucitron.js",
"fallback": "is uitgeschakeld.",
"toggleInfoBox": "Toon/verberg informatie over cookie opslag",
"title": "Cookies beheer paneel",
"cookieDetail": "Cookie detail voor",
"ourSite": "op onze site",
"newWindow": "(nieuw venster)",
"allowAll": "Sta alle cookies toe",
"denyAll": "Weiger alle cookies",
"ads": {
"title": "Advertentienetwerk",
"details": "Advertentienetwerken kunnen inkomsten genereren door advertentieruimte op de site te verkopen."
},
"analytic": {
"title": "Bezoekers meting",
"details": "De bezoekersdiensten voor het publiek worden gebruikt om nuttige statistieken te genereren om de site te verbeteren."
},
"social": {
"title": "Sociale netwerken",
"details": "Sociale netwerken kunnen de bruikbaarheid van de site verbeteren en helpen deze via de shares te promoten."
},
"video": {
"title": "Videos",
"details": "Video sharing-services helpen om rich media op de site toe te voegen en de zichtbaarheid ervan te vergroten."
},
"comment": {
"title": "Comments",
"details": "Commentsmanagers faciliteren het indienen van opmerkingen en het bestrijden van spam."
},
"support": {
"title": "Support",
"details": "Support diensten stellen u in staat contact op te nemen met het team van de site en helpen het te verbeteren."
},
"api": {
"title": "APIs",
"details": "APIs worden gebruikt om scripts te laden: geolocatie, zoekmachines, vertalingen, ..."
},
"other": {
"title": "Overig",
"details": "Diensten om webinhoud weer te geven."
}
};

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "OK, akceptuję wszystko",
"close": "zamknij",
"privacyUrl": "Polityka prywatności",
"all": "Preferencja dla wszystkich usług",
"info": "Ochrona prywatności",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Zobacz oficjalną stronę internetowa",
"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.",
"ads": {

View File

@ -13,6 +13,9 @@ tarteaucitron.lang = {
"personalize": "Personalizar",
"acceptAll": "OK, aceitar tudo",
"close": "Fechar",
"privacyUrl": "Política de Privacidade",
"all": "Definições dos serviços",
"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",
@ -25,6 +28,15 @@ tarteaucitron.lang = {
"more": "Ler mais",
"source": "Ver o site oficial",
"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.",
"ads": {
"title": "Rede de anúncios",

View File

@ -14,6 +14,8 @@ tarteaucitron.lang = {
"acceptAll": "Ок, все активировать",
"close": "Закрыть",
"privacyUrl": "Политика конфиденциальности",
"all": "Преференция всем сервисам",
"info": "Защитить вашу конфиденциальность",
@ -28,6 +30,14 @@ tarteaucitron.lang = {
"source": "Посетите официальный сайт",
"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": "Деактивирован.",
"ads": {

27
package.json Normal file
View File

@ -0,0 +1,27 @@
{
"name": "tarteaucitronjs",
"version": "1.0.0",
"description": "Comply to the European cookie law",
"dependencies": {},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/AmauriC/tarteaucitron.js.git"
},
"keywords": [
"cookie",
"law",
"rgpd",
"gdpr",
"cookie"
],
"author": "AIC Agency SAS",
"license": "MIT",
"bugs": {
"url": "https://github.com/AmauriC/tarteaucitron.js/issues"
},
"homepage": "https://github.com/AmauriC/tarteaucitron.js#readme"
}

View File

@ -3,14 +3,20 @@
// define correct path for files inclusion
var scripts = document.getElementsByTagName('script'),
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,
tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage,
tarteaucitronForceExpire = (tarteaucitronForceExpire === undefined) ? '' : tarteaucitronForceExpire,
tarteaucitronCustomText = (tarteaucitronCustomText === undefined) ? '' : tarteaucitronCustomText,
timeExipre = 31536000000,
tarteaucitronProLoadServices,
tarteaucitronNoAdBlocker = false;
var tarteaucitron = {
"version": 323,
"version": 20181023,
"cdn": cdn,
"user": {},
"lang": {},
@ -22,6 +28,10 @@ var tarteaucitron = {
"parameters": {},
"isAjax": false,
"reloadThePage": false,
"events": {
"init": function () {},
"load": function () {},
},
"init": function (params) {
"use strict";
var origOpen;
@ -49,7 +59,7 @@ var tarteaucitron = {
if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true);
} 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') {
@ -61,6 +71,7 @@ var tarteaucitron = {
}
}
}, false);
window.addEventListener("keydown", function (evt) {
if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel();
@ -104,7 +115,7 @@ var tarteaucitron = {
if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true);
} 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') {
document.getElementById('tarteaucitronPercentage').style.top = heightPosition;
@ -119,6 +130,21 @@ var tarteaucitron = {
if (evt.keyCode === 27) {
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 () {
if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
@ -168,6 +194,10 @@ var tarteaucitron = {
};
}
}
if(tarteaucitron.events.init) {
tarteaucitron.events.init();
}
},
"load": function () {
"use strict";
@ -179,32 +209,50 @@ var tarteaucitron = {
defaults = {
"adblocker": false,
"hashtag": '#tarteaucitron',
"cookieName": 'tarteaucitron',
"highPrivacy": false,
"orientation": "top",
"removeCredit": false,
"showAlertSmall": true,
"cookieslist": true
"cookieslist": true,
"handleBrowserDNTRequest": false,
"AcceptAllCta" : false,
"moreInfoLink": true,
"privacyUrl": "",
"useExternalCss": false
},
params = tarteaucitron.parameters;
// Step 0: get params
if (params !== undefined) {
tarteaucitron.extend(defaults, params);
for (var k in defaults) {
if(!tarteaucitron.parameters.hasOwnProperty(k)) {
tarteaucitron.parameters[k] = defaults[k];
}
}
}
// global
tarteaucitron.orientation = defaults.orientation;
tarteaucitron.hashtag = defaults.hashtag;
tarteaucitron.highPrivacy = defaults.highPrivacy;
tarteaucitron.orientation = tarteaucitron.parameters.orientation;
tarteaucitron.hashtag = tarteaucitron.parameters.hashtag;
tarteaucitron.highPrivacy = tarteaucitron.parameters.highPrivacy;
tarteaucitron.handleBrowserDNTRequest = tarteaucitron.parameters.handleBrowserDNTRequest;
// Step 1: load css
if ( !tarteaucitron.parameters.useExternalCss ) {
linkElement.rel = 'stylesheet';
linkElement.type = 'text/css';
linkElement.href = cdn + 'css/tarteaucitron.css?v=' + tarteaucitron.version;
document.getElementsByTagName('head')[0].appendChild(linkElement);
}
// Step 2: load language and services
tarteaucitron.addScript(pathToLang, '', function () {
if(tarteaucitronCustomText !== ''){
tarteaucitron.lang = tarteaucitron.AddOrUpdate(tarteaucitron.lang, tarteaucitronCustomText);
}
tarteaucitron.addScript(pathToServices, '', function () {
var body = document.body,
@ -223,96 +271,122 @@ var tarteaucitron = {
// Step 3: prepare the html
html += '<div id="tarteaucitronPremium"></div>';
html += '<div id="tarteaucitronBack" onclick="tarteaucitron.userInterface.closePanel();"></div>';
html += '<div id="tarteaucitron">';
html += ' <div id="tarteaucitronClosePanel" onclick="tarteaucitron.userInterface.closePanel();">';
html += '<button id="tarteaucitronBack" onclick="tarteaucitron.userInterface.closePanel();" aria-label="' + tarteaucitron.lang.close + '"></button>';
html += '<div id="tarteaucitron" role="dialog" aria-labelledby="dialogTitle">';
html += ' <button id="tarteaucitronClosePanel" onclick="tarteaucitron.userInterface.closePanel();">';
html += ' ' + tarteaucitron.lang.close;
html += ' </div>';
html += ' </button>';
html += ' <div id="tarteaucitronServices">';
html += ' <div class="tarteaucitronLine tarteaucitronMainLine" id="tarteaucitronMainLineOffset">';
html += ' <div class="tarteaucitronName">';
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 += ' <span class="tarteaucitronH1" role="heading" aria-level="h1" id="dialogTitle">'+ tarteaucitron.lang.title + '</span>';
html += ' <div id="tarteaucitronInfo" class="tarteaucitronInfoBox">';
html += ' ' + tarteaucitron.lang.disclaimer;
if (defaults.removeCredit === false) {
if (tarteaucitron.parameters.privacyUrl !== "") {
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 class="tarteaucitronBorder" id="tarteaucitronScrollbarParent">';
html += ' <div class="clear"></div>';
html += ' <div class="tarteaucitronName">';
html += ' <span class="tarteaucitronH2" role="heading" aria-level="h2">' + tarteaucitron.lang.all + '</span>';
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) {
html += ' <div id="tarteaucitronServicesTitle_' + cat[i] + '" class="tarteaucitronHidden">';
html += ' <li id="tarteaucitronServicesTitle_' + cat[i] + '" class="tarteaucitronHidden">';
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 id="tarteaucitronDetails' + cat[i] + '" class="tarteaucitronDetails tarteaucitronInfoBox">';
html += ' ' + tarteaucitron.lang[cat[i]].details;
html += ' </div>';
html += ' </div>';
html += ' <div id="tarteaucitronServices_' + cat[i] + '"></div>';
html += ' <ul id="tarteaucitronServices_' + cat[i] + '"></ul></li>';
}
html += ' </ul>';
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 noopener" target="_blank" title="tarteaucitron ' + tarteaucitron.lang.newWindow + '">🍋 ' + tarteaucitron.lang.credit + '</a>';
}
html += ' </div>';
html += ' </div>';
html += '</div>';
if (defaults.orientation === 'bottom') {
if (tarteaucitron.parameters.orientation === 'bottom') {
orientation = 'Bottom';
}
if (defaults.highPrivacy) {
if (tarteaucitron.parameters.highPrivacy && !tarteaucitron.parameters.AcceptAllCta) {
html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
html += ' <span id="tarteaucitronDisclaimerAlert">';
html += ' ' + tarteaucitron.lang.alertBigPrivacy;
html += ' </span>';
html += ' <span id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' <button id="tarteaucitronPersonalize" onclick="tarteaucitron.userInterface.openPanel();">';
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>';
} else {
html += '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
html += ' <span id="tarteaucitronDisclaimerAlert">';
if (tarteaucitron.parameters.highPrivacy) {
html += ' ' + tarteaucitron.lang.alertBigPrivacy;
} else {
html += ' ' + tarteaucitron.lang.alertBigClick + ' ' + tarteaucitron.lang.alertBig;
}
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 += ' </span>';
html += ' <span id="tarteaucitronCloseAlert" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' </button>';
html += ' <button id="tarteaucitronCloseAlert" onclick="tarteaucitron.userInterface.openPanel();">';
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 id="tarteaucitronPercentage"></div>';
}
if (defaults.showAlertSmall === true) {
html += '<div id="tarteaucitronAlertSmall">';
html += ' <div id="tarteaucitronManager" onclick="tarteaucitron.userInterface.openPanel();">';
if (tarteaucitron.parameters.showAlertSmall === true) {
html += '<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall' + orientation + '">';
html += ' <button id="tarteaucitronManager" onclick="tarteaucitron.userInterface.openPanel();">';
html += ' ' + tarteaucitron.lang.alertSmall;
html += ' <div id="tarteaucitronDot">';
html += ' <span id="tarteaucitronDot">';
html += ' <span id="tarteaucitronDotGreen"></span>';
html += ' <span id="tarteaucitronDotYellow"></span>';
html += ' <span id="tarteaucitronDotRed"></span>';
html += ' </div>';
if (defaults.cookieslist === true) {
html += ' </div><!-- @whitespace';
html += ' --><div id="tarteaucitronCookiesNumber" onclick="tarteaucitron.userInterface.toggleCookiesList();">0</div>';
html += ' </span>';
if (tarteaucitron.parameters.cookieslist === true) {
html += ' </button><!-- @whitespace';
html += ' --><button id="tarteaucitronCookiesNumber" onclick="tarteaucitron.userInterface.toggleCookiesList();">0</button>';
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 += ' </div>';
html += ' </button>';
html += ' <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">';
html += ' <b id="tarteaucitronCookiesNumberBis">0 cookie</b>';
html += ' <span class="tarteaucitronH2" role="heading" aria-level="h2" id="tarteaucitronCookiesNumberBis">0 cookie</span>';
html += ' </div>';
html += ' <div id="tarteaucitronCookiesList"></div>';
html += ' </div>';
@ -323,7 +397,20 @@ var tarteaucitron = {
}
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';
body.appendChild(div, body);
div.innerHTML = html;
@ -333,9 +420,12 @@ var tarteaucitron = {
for (index = 0; index < tarteaucitron.job.length; index += 1) {
tarteaucitron.addService(tarteaucitron.job[index]);
}
} else {
tarteaucitron.job = []
}
tarteaucitron.isAjax = true;
tarteaucitron.job.push = function (id) {
// ie <9 hack
@ -364,21 +454,34 @@ var tarteaucitron = {
tarteaucitron.cookie.number();
setInterval(tarteaucitron.cookie.number, 60000);
}
}, defaults.adblocker);
}, tarteaucitron.parameters.adblocker);
if (defaults.adblocker === true) {
if (tarteaucitron.parameters.adblocker === true) {
setTimeout(function () {
if (tarteaucitronNoAdBlocker === false) {
html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '" style="display:block">';
html += ' <span id="tarteaucitronDisclaimerAlert">';
html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '" style="display:block" role="alert" aria-live="polite">';
html += ' <p id="tarteaucitronDisclaimerAlert">';
html += ' ' + tarteaucitron.lang.adblock + '<br/>';
html += ' <b>' + tarteaucitron.lang.adblock_call + '</b>';
html += ' </span>';
html += ' <span id="tarteaucitronPersonalize" onclick="location.reload();">';
html += ' <strong>' + tarteaucitron.lang.adblock_call + '</strong>';
html += ' </p>';
html += ' <button id="tarteaucitronPersonalize" onclick="location.reload();">';
html += ' ' + tarteaucitron.lang.reload;
html += ' </span>';
html += ' </button>';
html += '</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';
body.appendChild(div, body);
div.innerHTML = html;
@ -390,6 +493,10 @@ var tarteaucitron = {
}
});
});
if(tarteaucitron.events.load) {
tarteaucitron.events.load();
}
},
"addService": function (serviceId) {
"use strict";
@ -399,20 +506,24 @@ var tarteaucitron = {
cookie = tarteaucitron.cookie.read(),
hostname = document.location.hostname,
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,
isWaiting = (cookie.indexOf(service.key + '=wait') >= 0) ? true : false,
isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false,
isAllowed = (cookie.indexOf(service.key + '=true') >= 0) ? true : false,
isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0) ? true : false;
isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0) ? true : false,
isDNTRequested = (navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1" || window.doNotTrack === "1") ? true : false;
if (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 += ' <b>' + service.name + '</b><br/>';
html += ' <span class="tarteaucitronH3" role="heading" aria-level="h3">' + service.name + '</span>';
html += ' <span id="tacCL' + service.key + '" class="tarteaucitronListCookies"></span><br/>';
if (tarteaucitron.parameters.moreInfoLink == true) {
var link = 'https://opt-out.ferank.eu/service/' + service.key + '/';
if (service.readmoreLink !== undefined && service.readmoreLink !== '') {
link = service.readmoreLink;
@ -420,23 +531,25 @@ var tarteaucitron = {
if (tarteaucitron.parameters.readmoreLink !== undefined && tarteaucitron.parameters.readmoreLink !== '') {
link = tarteaucitron.parameters.readmoreLink;
}
html += ' <a href="' + link + '" target="_blank" rel="noopener">';
html += ' <a href="' + link + '" target="_blank" rel="noopener" title="'+ tarteaucitron.lang.cookieDetail + ' ' + service.name + ' ' + tarteaucitron.lang.ourSite + ' ' + tarteaucitron.lang.newWindow +'">';
html += ' ' + tarteaucitron.lang.more;
html += ' </a>';
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 += ' </a>';
}
html += ' </div>';
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 += ' </div> ';
html += ' <div id="' + service.key + 'Denied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respond(this, false);">';
html += ' </button> ';
html += ' <button id="' + service.key + 'Denied" class="tarteaucitronDeny" onclick="tarteaucitron.userInterface.respond(this, false);">';
html += ' &#10007; ' + tarteaucitron.lang.deny;
html += ' </button>';
html += ' </div>';
html += ' </div>';
html += '</div>';
html += '</li>';
tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block');
@ -469,6 +582,13 @@ var tarteaucitron = {
}
tarteaucitron.state[service.key] = false;
tarteaucitron.userInterface.color(service.key, false);
} else if (!isResponded && isDNTRequested && tarteaucitron.handleBrowserDNTRequest) {
tarteaucitron.cookie.create(service.key, 'false');
if (typeof service.fallback === 'function') {
service.fallback();
}
tarteaucitron.state[service.key] = false;
tarteaucitron.userInterface.color(service.key, false);
} else if (!isResponded) {
tarteaucitron.cookie.create(service.key, 'wait');
if (typeof service.fallback === 'function') {
@ -579,10 +699,16 @@ var tarteaucitron = {
tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + greenDark);
tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', greenDark);
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) {
tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + redDark);
tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', gray);
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
@ -602,13 +728,15 @@ var tarteaucitron = {
if (nbDenied === 0 && nbPending === 0) {
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) {
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);
} else {
tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', gray);
tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', gray);
tarteaucitron.userInterface.css(c + 'AllAllowed', 'opacity', '0.4');
tarteaucitron.userInterface.css(c + 'AllDenied', 'opacity', '0.4');
}
// close the alert if all service have been reviewed
@ -633,9 +761,15 @@ var tarteaucitron = {
},
"openPanel": function () {
"use strict";
tarteaucitron.userInterface.css('tarteaucitron', 'display', 'block');
tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block');
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');
},
"closePanel": function () {
@ -656,6 +790,52 @@ var tarteaucitron = {
} else {
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 () {
"use strict";
@ -730,8 +910,10 @@ var tarteaucitron = {
allDivs = main.childNodes;
if (typeof Array.prototype.map === 'function') {
if (typeof Array.prototype.map === 'function' && typeof Enumerable === 'undefined') {
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; }
return 0;
@ -786,20 +968,20 @@ var tarteaucitron = {
if (document.getElementById('tarteaucitron') !== null && document.getElementById('tarteaucitronClosePanel') !== null && document.getElementById('tarteaucitronMainLineOffset') !== null) {
// reset
tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', 'auto');
tarteaucitron.userInterface.css('tarteaucitronServices', 'height', 'auto');
// calculate
mainHeight = document.getElementById('tarteaucitron').offsetHeight;
closeButtonHeight = document.getElementById('tarteaucitronClosePanel').offsetHeight;
headerHeight = document.getElementById('tarteaucitronMainLineOffset').offsetHeight;
// apply
servicesHeight = (mainHeight - closeButtonHeight - headerHeight + 1);
tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', servicesHeight + 'px');
servicesHeight = (mainHeight - closeButtonHeight + 2);
tarteaucitron.userInterface.css('tarteaucitronServices', 'height', servicesHeight + 'px');
tarteaucitron.userInterface.css('tarteaucitronServices', 'overflow-x', 'auto');
}
// 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
if (e[a + 'Width'] <= 479) {
@ -808,7 +990,7 @@ var tarteaucitron = {
scrollbarMarginRight = 12;
}
scrollbarWidthParent = document.getElementById('tarteaucitronScrollbarParent').offsetWidth;
scrollbarWidthParent = document.getElementById('tarteaucitronServices').offsetWidth;
scrollbarWidthChild = document.getElementById('tarteaucitronScrollbarChild').offsetWidth;
tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginRight', ((scrollbarWidthParent - scrollbarWidthChild) + scrollbarMarginRight) + 'px');
}
@ -867,12 +1049,18 @@ var tarteaucitron = {
"owner": {},
"create": function (key, status) {
"use strict";
if (tarteaucitronForceExpire !== '') {
// The number of day cann't be higher than 1 year
timeExipre = (tarteaucitronForceExpire > 365) ? 31536000000 : tarteaucitronForceExpire * 86400000; // Multiplication to tranform the number of days to milliseconds
}
var d = new Date(),
time = d.getTime(),
expireTime = time + 31536000000, // 365 days
expireTime = time + timeExipre, // 365 days
regex = new RegExp("!" + key + "=(wait|true|false)", "g"),
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 + ';' : '';
if (tarteaucitron.cookie.read().indexOf(key + '=' + status) === -1) {
@ -884,7 +1072,7 @@ var tarteaucitron = {
},
"read": function () {
"use strict";
var nameEQ = "tarteaucitron=",
var nameEQ = tarteaucitron.parameters.cookieName + "=",
ca = document.cookie.split(';'),
i,
c;
@ -1000,27 +1188,28 @@ var tarteaucitron = {
if (tarteaucitron.cookie.owner[name] !== undefined && tarteaucitron.cookie.owner[name].join(' // ') !== savedname) {
savedname = tarteaucitron.cookie.owner[name].join(' // ');
html += '<div class="tarteaucitronHidden">';
html += ' <div class="tarteaucitronTitle">';
html += ' <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="h3">';
html += ' ' + tarteaucitron.cookie.owner[name].join(' // ');
html += ' </div>';
html += '</div>';
html += ' </span>';
html += '</div><ul class="cookie-list">';
} else if (tarteaucitron.cookie.owner[name] === undefined && host !== savedname) {
savedname = host;
html += '<div class="tarteaucitronHidden">';
html += ' <div class="tarteaucitronTitle">';
html += ' <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="h3">';
html += ' ' + host;
html += ' </div>';
html += '</div>';
html += ' </span>';
html += '</div><ul class="cookie-list">';
}
html += '<div 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 += '<li class="tarteaucitronCookiesListMain">';
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 class="tarteaucitronCookiesListRight">' + cookies[i].split('=').slice(1).join('=') + '</div>';
html += '</div>';
html += '</li>';
}
html += '</ul>';
} else {
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>';
}
@ -1048,7 +1237,7 @@ var tarteaucitron = {
"use strict";
if (!navigator) { return 'en'; }
var availableLanguages = 'cs,en,fr,es,it,de,pt,pl,ru',
var availableLanguages = 'cs,en,fr,es,it,de,nl,pt,pl,ru,el',
defaultLanguage = 'en',
lang = navigator.language || navigator.browserLanguage ||
navigator.systemLanguage || navigator.userLang || null,
@ -1085,6 +1274,10 @@ var tarteaucitron = {
return 'it_IT';
} else if (userLanguage === 'pt') {
return 'pt_PT';
} else if (userLanguage === 'nl') {
return 'nl_NL';
} else if (userLanguage === 'el') {
return 'el_EL';
} else {
return 'en_US';
}
@ -1214,14 +1407,19 @@ var tarteaucitron = {
"engage": function (id) {
"use strict";
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_float">';
html += ' <b>' + tarteaucitron.services[id].name + '</b> ' + tarteaucitron.lang.fallback;
html += ' <div class="tarteaucitronAllow" id="Eng' + r + 'ed' + id + '" onclick="tarteaucitron.userInterface.respond(this, true);">';
html += ' ' + engage;
html += ' <button class="tarteaucitronAllow" id="Eng' + r + 'ed' + id + '" onclick="tarteaucitron.userInterface.respond(this, true);">';
html += ' &#10003; ' + tarteaucitron.lang.allow;
html += ' </div>';
html += ' </button>';
html += ' </div>';
html += '</div>';
@ -1269,5 +1467,24 @@ var tarteaucitron = {
}
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;
}
};

File diff suppressed because it is too large Load Diff