From f46dba89488b62afa8efaa5d1e0a84eac03677fd Mon Sep 17 00:00:00 2001 From: Tom Byers Date: Sun, 15 Dec 2019 19:39:31 +0000 Subject: [PATCH] Move code for deleting old cookies into banner JS Removes the following cookies: - seen_cookie_message (flags if banner was already shown) - _gid (Google Analytics cookie) - _ga (Google Analytics cookie) These were set by default before so potentially still around for some users. The code for this now exists as a static method on the cookieMessage module and is called when the JS loads for the first time. --- app/assets/javascripts/cookieMessage.js | 12 ++++++++++++ app/assets/javascripts/main.js | 2 +- app/templates/admin_template.html | 8 -------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/cookieMessage.js b/app/assets/javascripts/cookieMessage.js index 2818a57df..37174d89b 100644 --- a/app/assets/javascripts/cookieMessage.js +++ b/app/assets/javascripts/cookieMessage.js @@ -4,6 +4,18 @@ window.GOVUK.Modules = window.GOVUK.Modules || {}; (function (Modules) { function CookieBanner () { } + CookieBanner.clearOldCookies = function () { + // clear any cookies set by the previous version + var oldCookies = ['seen_cookie_message', '_ga', '_gid']; + + for (var i = 0; i < oldCookies.length; i++) { + if (window.GOVUK.cookie(oldCookies[i])) { + var cookieString = oldCookies[i] + '=;expires=' + new Date() + ';domain=' + window.location.hostname.replace(/^www\./, '.') + ';path=/'; + document.cookie = cookieString; + } + } + }; + CookieBanner.prototype.start = function ($module) { this.$module = $module[0]; this.$module.hideCookieMessage = this.hideCookieMessage.bind(this); diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 354a1daea..44330747d 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -1,6 +1,6 @@ window.GOVUK.Frontend.initAll(); -$(() => GOVUK.addCookieMessage()); +window.GOVUK.Modules.CookieBanner.clearOldCookies(); if (window.GOVUK.hasConsentFor('analytics')) { window.GOVUK.initAnalytics(); diff --git a/app/templates/admin_template.html b/app/templates/admin_template.html index 7cb3462c6..d178d7f0d 100644 --- a/app/templates/admin_template.html +++ b/app/templates/admin_template.html @@ -242,12 +242,4 @@ - {% endblock %}