From 4b7517569083ba3c35f00dd5e41af585c0d1f857 Mon Sep 17 00:00:00 2001 From: Serghei Iakovlev Date: Sun, 3 Jul 2022 00:43:11 +0200 Subject: Correct code style --- assets/js/ga.js | 162 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 85 insertions(+), 77 deletions(-) (limited to 'assets/js') diff --git a/assets/js/ga.js b/assets/js/ga.js index 835c84f..83d1b6e 100644 --- a/assets/js/ga.js +++ b/assets/js/ga.js @@ -1,96 +1,104 @@ function isDoNotTrackEnabled() { - if (typeof window === 'undefined') return false - const {doNotTrack, navigator} = window - - // Do Not Track Settings across browsers - const dnt = (doNotTrack || navigator.doNotTrack || navigator.msDoNotTrack) - - if (!dnt) return false - - return dnt === true || - dnt === 1 || - dnt === 'yes' || - (typeof dnt === 'string' && dnt.charAt(0) === '1'); + if (typeof window === 'undefined') { + return false; + } + const {doNotTrack, navigator} = window; + + // Do Not Track Settings across browsers + const dnt = (doNotTrack || navigator.doNotTrack || navigator.msDoNotTrack); + + if (!dnt) { + return false; + } + + return dnt === true || + dnt === 1 || + dnt === 'yes' || + (typeof dnt === 'string' && dnt.charAt(0) === '1'); } if (isDoNotTrackEnabled()) { - // Skip analytics for users with Do Not Track enabled - console.info('[TRACKING]: Respecting DNT with respect to analytics...') + // Skip analytics for users with Do Not Track enabled + console.info('[TRACKING]: Respecting DNT with respect to analytics...'); // eslint-disable-line no-console } else { - // Known DNT values not set, so we will assume it's off. - const data = JSON.parse(document.getElementById('ed-data').innerHTML) + // Known DNT values not set, so we will assume it's off. + const data = JSON.parse(document.getElementById('ed-data').innerHTML); - if (typeof data !== 'undefined' && data.analytics_code) { - (function () { - // New Google Site Tag (gtag.js) tagging/analytics framework - // See: https://developers.google.com/gtagjs - const base_url = 'https://www.googletagmanager.com' - let script = document.createElement("script"); + if (typeof data !== 'undefined' && data.analytics_code) { + (function () { + // New Google Site Tag (gtag.js) tagging/analytics framework + // See: https://developers.google.com/gtagjs + const baseUrl = 'https://www.googletagmanager.com'; + let script = document.createElement('script'); - script.src = base_url + "/gtag/js?id=" + data.analytics_code; - script.type = "text/javascript"; - script.async = true; + script.src = baseUrl + '/gtag/js?id=' + data.analytics_code; + script.type = 'text/javascript'; + script.async = true; - document.getElementsByTagName("head")[0].appendChild(script); - }()) + document.getElementsByTagName('head')[0].appendChild(script); + }()); - window.dataLayer = window.dataLayer || []; + let dataLayer = window.dataLayer = window.dataLayer || []; - function gtag() { - dataLayer.push(arguments); - } + function gtag() { // eslint-disable-line no-inner-declarations + dataLayer.push(arguments); + } - function trackOutboundLink(url, target) { - gtag('event', 'click', { - 'event_category': 'outbound', - 'event_label': url, - 'transport_type': 'beacon', - 'event_callback': function () { - if (target !== '_blank') { - document.location = url; - } - } - }); + function trackOutboundLink(url, target) { // eslint-disable-line no-inner-declarations + gtag('event', 'click', { + 'event_category': 'outbound', + 'event_label': url, + 'transport_type': 'beacon', + 'event_callback': function () { + if (target !== '_blank') { + document.location = url; + } } + }); + } - function trackInternalEvent(label, category) { - gtag('event', 'click', { - 'event_label': label, - 'event_category': category - }); - } + function trackInternalEvent(label, category) { // eslint-disable-line no-inner-declarations + gtag('event', 'click', { + 'event_label': label, + 'event_category': category + }); + } - function onClickCallback(event) { - const className = event.target.getAttribute('class'); - if (className === 'sidebar-toggle') { - trackInternalEvent('Sidebar Toggle', 'navigation'); - return; - } - - // Track only external URLs. - if ((event.target.tagName !== 'A') || (event.target.host === window.location.host)) { - return; - } - - // Send GA event. - trackOutboundLink( - event.target, - event.target.getAttribute('target') - ); - } + function onClickCallback(event) { // eslint-disable-line no-inner-declarations + const className = event.target.getAttribute('class'); + if (className === 'sidebar-toggle') { + trackInternalEvent('Sidebar Toggle', 'navigation'); + return; + } + + // Track only external URLs. + if ((event.target.tagName !== 'A') || (event.target.host === window.location.host)) { + return; + } + + // Send GA event. + trackOutboundLink( + event.target, + event.target.getAttribute('target') + ); + } - gtag('js', new Date()); + gtag('js', new Date()); - // Setup the project analytics code and send a pageview - gtag('config', data.analytics_code, { - 'page_title': data.page_title, - 'anonymize_ip': true, - 'cookie_expires': 30 * 24 * 60 * 60 // 30 days, in seconds - }) + const month = 30 * 24 * 60 * 60; // 30 days, in seconds - gtag('set', {'cookie_flags': 'SameSite=None;Secure'}); + // Setup the project analytics code and send a pageview + gtag('config', data.analytics_code, { + 'page_title': data.page_title, + 'anonymize_ip': true, + 'cookie_expires': month + }); - // Outbound link tracking. - document.addEventListener('click', onClickCallback, false); - } + gtag('set', { + 'cookie_flags': 'SameSite=None;Secure' + }); + + // Outbound link tracking. + document.addEventListener('click', onClickCallback, false); + } } -- cgit v1.2.3