summaryrefslogtreecommitdiff
path: root/site/js
diff options
context:
space:
mode:
authorAndrii-Moshenskyi <andrii.moshenskyi@gmail.com>2021-03-01 15:39:26 +0200
committerAndrii-Moshenskyi <andrii.moshenskyi@gmail.com>2021-03-01 15:39:26 +0200
commit07a475cc93a9a774c43fa0336a569261f91b350d (patch)
tree5fb135093f28802d3660f5a977e2a854b2934591 /site/js
parent8bc998b0d6b91cb72d8fa9233126b1210d3eab79 (diff)
downloadcommunity.vyos.net-07a475cc93a9a774c43fa0336a569261f91b350d.tar.gz
community.vyos.net-07a475cc93a9a774c43fa0336a569261f91b350d.zip
Created Google Analytics & Cookies message with working logic
Diffstat (limited to 'site/js')
-rw-r--r--site/js/google-analytics-message.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/site/js/google-analytics-message.js b/site/js/google-analytics-message.js
new file mode 100644
index 0000000..d5ecb91
--- /dev/null
+++ b/site/js/google-analytics-message.js
@@ -0,0 +1,46 @@
+// function to toggle Google Analytics message
+const toggleGoogleAnalyticsMessage = action => {
+ const message = document.getElementById('google-analytics-message')
+ action === 'show' && message.classList.add('open')
+ action === 'hide' && message.classList.remove('open')
+}
+
+// check if cookies with user choice exist
+const isGoogleAnalyticsAllowedValueExist =
+ document.cookie.split(';')
+ .find(row => row.includes('isGoogleAnalyticsAllowed'))
+
+// if the user has already made a choice
+if (isGoogleAnalyticsAllowedValueExist) {
+
+ const isGoogleAnalyticsAllowedValue = isGoogleAnalyticsAllowedValueExist.split('=')[1]
+
+ // and if the user chose "Accept" - connect Google Analytics
+ if (isGoogleAnalyticsAllowedValue === 'yes') {
+ window.dataLayer = window.dataLayer || [];
+ function gtag() { dataLayer.push(arguments); }
+ gtag('js', new Date());
+ gtag('config', 'G-J3WHFQG00P');
+ }
+
+} else {
+
+ // display a message with a question
+ toggleGoogleAnalyticsMessage('show')
+
+ const googleAnalyticsMessageAccept = document.getElementById('google-analytics-message-accept')
+ const googleAnalyticsMessageDecline = document.getElementById('google-analytics-message-decline')
+
+ // register a click on the "Accept" button
+ googleAnalyticsMessageAccept.addEventListener('click', function () {
+ document.cookie = 'isGoogleAnalyticsAllowed=yes'
+ toggleGoogleAnalyticsMessage('hide')
+ })
+
+ // register a click on the "Decline" button
+ googleAnalyticsMessageDecline.addEventListener('click', function () {
+ document.cookie = 'isGoogleAnalyticsAllowed=no'
+ toggleGoogleAnalyticsMessage('hide')
+ })
+
+} \ No newline at end of file