mirror of https://github.com/knative/docs.git
76 lines
2.6 KiB
JavaScript
76 lines
2.6 KiB
JavaScript
// Get cookie consent if the UTC time zone is within the EU+ and user has not consented previously (no cookie exists)
|
|
// Wait for page to fully load before checking
|
|
$(window).on('load', function(){
|
|
// Use local copy of JavaScript Cookie v2.2.1
|
|
$.getScript('/js/js.cookie.js', function() {
|
|
// If the cookie expired or does not exist
|
|
if ( typeof(Cookies) == 'undefined' || Cookies.get('site_cookie') == null ){
|
|
// if within EU time zone show consent dialog
|
|
if (testEUtimezone()){
|
|
toggleconsent();
|
|
} else {
|
|
// otherwise show notice
|
|
$(".cookienotice").show();
|
|
}
|
|
} else {
|
|
console.log("You have already consented to cookie usage");
|
|
}
|
|
});
|
|
});
|
|
// Use UTC to determine if the time zone resides in or around the EU (within UTC 0 to +4 - https://www.timeanddate.com/time/zones/eu)
|
|
function testEUtimezone(){
|
|
var offset = new Date().getTimezoneOffset();
|
|
if ((offset >= -240) && (offset <= 0)){ // European time zone in minutes
|
|
console.log("UTC time zone within the EU");
|
|
return true;
|
|
}
|
|
console.log("UTC time zone is not within the EU");
|
|
return false; // Not EU time zone
|
|
}
|
|
// Consent to cookie usage (both 'Accept' in consent dialog, or 'OK' in cookie notice). Sets expiration to 1 year.
|
|
function acceptcookie(){
|
|
$("#cookieModal").modal('hide');
|
|
$(".cookienotice").hide();
|
|
// set cookie that expires in 12 mns
|
|
Cookies.set('site_cookie', 'accepted', { expires: 365 });
|
|
console.log("I consent to the use of cookies on knative.dev");
|
|
}
|
|
// Hide cookie notice and confirm user knows how to opt-out
|
|
function optout(){
|
|
$("#cookieModal").modal('hide');
|
|
$(".cookienotice").hide();
|
|
// set cookie that expires in 12 mns
|
|
Cookies.set('site_cookie', 'opt_out', { expires: 365 });
|
|
console.log("I read knative.dev/about-analytics-cookies and understand how to opt-out of Google Analytics cookies");
|
|
}
|
|
// Show info about how to opt-out
|
|
function learnaboutcookies(){
|
|
$(".opt-out").toggle();
|
|
}
|
|
// Close cookie notice (cookie use accepted only for session)
|
|
function closenotice(){
|
|
// Consent to cookies for only this session
|
|
Cookies.set('site_cookie', 'accepted');
|
|
togglenotice();
|
|
console.log("I consent to the use of cookies on knative.dev for this session");
|
|
}
|
|
|
|
// Helpful commands (ie testing)
|
|
|
|
// Manually remove existing cookie
|
|
function removecookie(){
|
|
Cookies.remove('site_cookie');
|
|
}
|
|
// Toggle cookie consent modal
|
|
function toggleconsent(){
|
|
$("#cookieModal").modal('toggle');
|
|
}
|
|
// Toggle cookie notice
|
|
function togglenotice(){
|
|
$(".cookienotice").toggle();
|
|
}
|
|
// Manually check if the 'site_cookie' exists
|
|
function getcookie(){
|
|
return Cookies.get('site_cookie');
|
|
}
|