1
0
Fork 0
cookie_consent/external/klaro/config.js

332 Zeilen
13 KiB
JavaScript

// By default, Klaro will load the config from a global "klaroConfig" variable.
// You can change this by specifying the "data-config" attribute on your
// script take, e.g. like this:
// <script src="klaro.js" data-config="myConfigVariableName" />
var klaroConfig = {
// With the 0.7.0 release we introduce a 'version' paramter that will make
// if easier for us to keep configuration files backwards-compatible in the future.
version: 1,
// You can customize the ID of the DIV element that Klaro will create
// when starting up. If undefined, Klaro will use 'klaro'.
elementID: 'klaro',
// You can override CSS style variables here. For IE11, Klaro will
// dynamically inject the variables into the CSS. If you still consider
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
// with an external stylesheet as the dynamic replacement won't work there.
styling: {
theme: ['light', 'top', 'wide'],
},
// Setting this to true will keep Klaro from automatically loading itself
// when the page is being loaded.
noAutoLoad: false,
// Setting this to true will render the descriptions of the consent
// modal and consent notice are HTML. Use with care.
htmlTexts: true,
// Setting 'embedded' to true will render the Klaro modal and notice without
// the modal background, allowing you to e.g. embed them into a specific element
// of your website, such as your privacy notice.
embedded: false,
// You can group services by their purpose in the modal. This is advisable
// if you have a large number of services. Users can then enable or disable
// entire groups of services instead of having to enable or disable every service.
groupByPurpose: true,
// How Klaro should store the user's preferences. It can be either 'cookie'
// (the default) or 'localStorage'.
storageMethod: 'cookie',
// You can customize the name of the cookie that Klaro uses for storing
// user consent decisions. If undefined, Klaro will use 'klaro'.
cookieName: 'klaro',
// You can also set a custom expiration time for the Klaro cookie.
// By default, it will expire after 120 days.
cookieExpiresAfterDays: 365,
// You can change to cookie domain for the consent manager itself.
// Use this if you want to get consent once for multiple matching domains.
// If undefined, Klaro will use the current domain.
//cookieDomain: '.github.com',
// Defines the default state for services (true=enabled by default).
default: false,
// If "mustConsent" is set to true, Klaro will directly display the consent
// manager modal and not allow the user to close it before having actively
// consented or declines the use of third-party services.
mustConsent: false,
// Show "accept all" to accept all services instead of "ok" that only accepts
// required and "default: true" services
acceptAll: true,
// replace "decline" with cookie manager modal
hideDeclineAll: false,
// hide "learnMore" link
hideLearnMore: false,
// show cookie notice as modal
noticeAsModal: false,
// You can also remove the 'Realized with Klaro!' text in the consent modal.
// Please don't do this! We provide Klaro as a free open source tool.
// Placing a link to our website helps us spread the word about it,
// which ultimately enables us to make Klaro! better for everyone.
// So please be fair and keep the link enabled. Thanks :)
//disablePoweredBy: true,
// you can specify an additional class (or classes) that will be added to the Klaro `div`
//additionalClass: 'my-klaro',
// You can define the UI language directly here. If undefined, Klaro will
// use the value given in the global "lang" variable. If that does
// not exist, it will use the value given in the "lang" attribute of your
// HTML tag. If that also doesn't exist, it will use 'en'.
//lang: 'en',
// You can overwrite existing translations and add translations for your
// service descriptions and purposes. See `src/translations/` for a full
// list of translations that can be overwritten:
// https://github.com/KIProtect/klaro/tree/master/src/translations
// Example config that shows how to overwrite translations:
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
translations: {
// translationsed defined under the 'zz' language code act as default
// translations.
zz: {
privacyPolicyUrl: '/#privacy',
},
// If you erase the "consentModal" translations, Klaro will use the
// bundled translations.
de: {
privacyPolicyUrl: '/#datenschutz',
consentModal: {
description:
'Hier können Sie einsehen und anpassen, welche Information wir über Sie sammeln. Einträge die als "Beispiel" gekennzeichnet sind dienen lediglich zu Demonstrationszwecken und werden nicht wirklich verwendet.',
},
inlineTracker: {
description: 'Beispiel für ein Inline-Tracking Skript',
},
externalTracker: {
description: 'Beispiel für ein externes Tracking Skript',
},
adsense: {
description: 'Anzeigen von Werbeanzeigen (Beispiel)',
title: 'Google AdSense Werbezeugs',
},
matomo: {
description: 'Sammeln von Besucherstatistiken',
},
camera: {
description:
'Eine Überwachungskamera (nur ein Beispiel zu IMG-Tags)',
},
cloudflare: {
description: 'Schutz gegen DDoS-Angriffe',
},
intercom: {
description:
'Chat Widget & Sammeln von Besucherstatistiken (nur ein Beispiel)',
},
mouseflow: {
description: 'Echtzeit-Benutzeranalyse (nur ein Beispiel)',
},
googleFonts: {
description: 'Web-Schriftarten von Google gehostet',
},
purposes: {
analytics: 'Besucher-Statistiken',
security: 'Sicherheit',
livechat: 'Live Chat',
advertising: 'Anzeigen von Werbung',
styling: 'Styling',
},
},
en: {
consentModal: {
title: '<u>test</u>',
description:
'Here you can see and customize the information that we collect about you. Entries marked as "Example" are just for demonstration purposes and are not really used on this website.',
},
inlineTracker: {
description: 'Example of an inline tracking script',
},
externalTracker: {
description: 'Example of an external tracking script',
},
adsense: {
description: 'Displaying of advertisements (just an example)',
title: 'Google Adsense Advertisement',
},
matomo: {
description: 'Collecting of visitor statistics',
},
camera: {
description:
'A surveillance camera (just an example for an IMG tag)',
},
cloudflare: {
description: 'Protection against DDoS attacks',
},
intercom: {
description:
'Chat widget & collecting of visitor statistics (just an example)',
},
mouseflow: {
description: 'Real-Time user analytics (just an example)',
},
googleFonts: {
description: 'Web fonts hosted by Google',
},
purposes: {
analytics: 'Analytics',
security: 'Security',
livechat: 'Livechat',
advertising: 'Advertising',
styling: 'Styling',
},
},
},
// This is a list of third-party services that Klaro will manage for you.
services: [
{
name: 'twitter',
purposes: ['marketing'],
// Setting this to true will exempt this service from the "Accept All"
// flow, i.e. clicking on "Accept All" will not enable this service.
contextualConsentOnly: true,
},
{
name: 'youtube',
purposes: ['marketing'],
contextualConsentOnly: true,
},
{
// Each service should have a unique (and short) name.
name: 'matomo',
// If "default" is set to true, the service will be enabled by default
// Overwrites global "default" setting.
// We recommend leaving this to "false" for services that collect
// personal information.
default: true,
// The title of you service as listed in the consent modal.
title: 'Matomo/Piwik',
// The purpose(s) of this service. Will be listed on the consent notice.
// Do not forget to add translations for all purposes you list here.
purposes: ['analytics'],
// A list of regex expressions or strings giving the names of
// cookies set by this service. If the user withdraws consent for a
// given service, Klaro will then automatically delete all matching
// cookies.
cookies: [
// you can also explicitly provide a path and a domain for
// a given cookie. This is necessary if you have services that
// set cookies for a path that is not "/" or a domain that
// is not the current domain. If you do not set these values
// properly, the cookie can't be deleted by Klaro
// (there is no way to access the path or domain of a cookie in JS)
// Notice that it is not possible to delete cookies that were set
// on a third-party domain! See the note at mdn:
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-cookie_domain
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
[/^_pk_.*$/, '/', 'localhost'], //for the local version
'piwik_ignore',
],
// An optional callback function that will be called each time
// the consent state for the service changes (true=consented). Passes
// the `service` config as the second parameter as well.
callback: function(consent, service) {
// This is an example callback function.
console.log(
'User consent for service ' + service.name + ': consent=' + consent
);
// To be used in conjunction with Matomo 'requireCookieConsent' Feature, Matomo 3.14.0 or newer
// For further Information see https://matomo.org/faq/new-to-piwik/how-can-i-still-track-a-visitor-without-cookies-even-if-they-decline-the-cookie-consent/
/*
if(consent==true){
_paq.push(['rememberCookieConsentGiven']);
} else {
_paq.push(['forgetCookieConsentGiven']);
}
*/
},
// If "required" is set to true, Klaro will not allow this service to
// be disabled by the user.
required: false,
// If "optOut" is set to true, Klaro will load this service even before
// the user gave explicit consent.
// We recommend always leaving this "false".
optOut: false,
// If "onlyOnce" is set to true, the service will only be executed
// once regardless how often the user toggles it on and off.
onlyOnce: true,
},
// The services will appear in the modal in the same order as defined here.
{
name: 'inlineTracker',
title: 'Inline Tracker',
purposes: ['analytics'],
cookies: ['inline-tracker'],
optOut: false,
},
{
name: 'externalTracker',
title: 'External Tracker',
purposes: ['analytics', 'security'],
cookies: ['external-tracker'],
},
{
name: 'intercom',
title: 'Intercom',
default: true,
purposes: ['livechat'],
},
{
name: 'mouseflow',
title: 'Mouseflow',
purposes: ['analytics'],
},
{
name: 'adsense',
// if you omit the title here Klaro will try to look it up in the
// translations
//title: 'Google AdSense',
purposes: ['advertising'],
},
{
name: 'camera',
title: 'Surveillance Camera',
purposes: ['security'],
},
/* {
name: 'googleFonts',
title: 'Google Fonts',
purposes: ['styling'],
},*/
{
name: 'cloudflare',
title: 'Cloudflare',
purposes: ['security'],
required: true,
},
],
};