diff options
author | Andrii-Moshenskyi <andrii.moshenskyi@gmail.com> | 2021-03-01 15:39:26 +0200 |
---|---|---|
committer | Andrii-Moshenskyi <andrii.moshenskyi@gmail.com> | 2021-03-01 15:39:26 +0200 |
commit | 07a475cc93a9a774c43fa0336a569261f91b350d (patch) | |
tree | 5fb135093f28802d3660f5a977e2a854b2934591 /site/js | |
parent | 8bc998b0d6b91cb72d8fa9233126b1210d3eab79 (diff) | |
download | community.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.js | 46 |
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 |