From 68906cb0c599b103842008985e1ed8df953543ea Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Wed, 13 Jul 2016 16:29:53 +0100 Subject: [PATCH 1/5] Avoid unneeded change_id event; id can be set as a Countly property, before initializing. --- services/web/app/views/layout.jade | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 2c4178f9d3..771ffec1b8 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -54,6 +54,7 @@ html(itemscope, itemtype='http://schema.org/Product') Countly.q = Countly.q || []; Countly.app_key = '#{settings.analytics.countly.token}'; Countly.url = '#{settings.analytics.countly.server}'; + !{ session.user ? 'Countly.device_id = "' + session.user._id + '";' : '' } Countly.q.push(['track_sessions']); Countly.q.push(['track_pageview']); @@ -69,8 +70,6 @@ html(itemscope, itemtype='http://schema.org/Product') if (session && session.user) script(type="text/javascript"). - Countly.q.push(['change_id', '#{session.user._id}', true ]); - Countly.q.push(['user_details', { email: '#{session.user.email}', custom: { From a261de9eb1f03ff4fda39c615abb04b08b6ad444 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 14 Jul 2016 09:37:04 +0100 Subject: [PATCH 2/5] Set feature flags. --- services/web/app/views/layout.jade | 43 +++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 771ffec1b8..08de9e8881 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -73,7 +73,7 @@ html(itemscope, itemtype='http://schema.org/Product') Countly.q.push(['user_details', { email: '#{session.user.email}', custom: { - userId: '#{session.user._id}', + userId: '#{session.user._id}' } }]); @@ -89,6 +89,47 @@ html(itemscope, itemtype='http://schema.org/Product') Countly.q.push(['add_event',{ key: 'user-logged-in' }]); + + if (user && user.features && Object.keys(user.features).length) + script(type="text/javascript") + - featureFlagSet = false; + + if user.features.collaborators + | Countly.q.push([ 'userData.set', 'collaborators', #{ user.features.collaborators } ]); + - featureFlagSet = true; + + if user.features.compileGroup + | Countly.q.push([ 'userData.set', 'compileGroup', '#{ user.features.compileGroup }' ]); + - featureFlagSet = true; + + if user.features.compileTimeout + | Countly.q.push([ 'userData.set', 'compileTimeout', #{ user.features.compileTimeout } ]); + - featureFlagSet = true; + + if user.features.dropbox + | Countly.q.push([ 'userData.set', 'dropbox', #{ user.features.dropbox } ]); + - featureFlagSet = true; + + if user.features.github + | Countly.q.push([ 'userData.set', 'github', #{ user.features.github } ]); + - featureFlagSet = true; + + if user.features.references + | Countly.q.push([ 'userData.set', 'references', #{ user.features.references } ]); + - featureFlagSet = true; + + if user.features.templates + | Countly.q.push([ 'userData.set', 'templates', #{ user.features.templates } ]); + - featureFlagSet = true; + + if user.features.versioning + | Countly.q.push([ 'userData.set', 'versioning', #{ user.features.versioning } ]); + - featureFlagSet = true; + + + if featureFlagSet + | Countly.q.push(['userData.save']) + // End countly Analytics script(type="text/javascript"). From fee22db567f49d07450cb2912eea65d96b9d76fe Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 14 Jul 2016 09:47:25 +0100 Subject: [PATCH 3/5] Refactor user blocks into a single script tag. --- services/web/app/views/layout.jade | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 08de9e8881..9c7827da01 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -68,30 +68,17 @@ html(itemscope, itemtype='http://schema.org/Product') var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cly, s); })(); - if (session && session.user) - script(type="text/javascript"). - Countly.q.push(['user_details', { - email: '#{session.user.email}', - custom: { - userId: '#{session.user._id}' - } - }]); + script(type="text/javascript") + if (session && session.user) + | Countly.q.push(['user_details', { email: '#{session.user.email}' }]); - if (justRegistered) - script(type="text/javascript"). - Countly.q.push(['add_event',{ - key: 'user-registered' - }]); + if (justRegistered) + | Countly.q.push(['add_event',{ key: 'user-registered' }]); - if (justLoggedIn) - script(type="text/javascript"). + if (justLoggedIn) + | Countly.q.push(['add_event',{ key: 'user-logged-in' }]); - Countly.q.push(['add_event',{ - key: 'user-logged-in' - }]); - - if (user && user.features && Object.keys(user.features).length) - script(type="text/javascript") + if (user && user.features) - featureFlagSet = false; if user.features.collaborators From 5d5bc57535ba8183f1191a52f063d8765bba03e0 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 14 Jul 2016 09:55:11 +0100 Subject: [PATCH 4/5] Add user name. --- services/web/app/views/layout.jade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 9c7827da01..1c97e5b915 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -70,7 +70,8 @@ html(itemscope, itemtype='http://schema.org/Product') script(type="text/javascript") if (session && session.user) - | Countly.q.push(['user_details', { email: '#{session.user.email}' }]); + - var name = session.user.first_name + (session.user.last_name ? ' ' + session.user.last_name : ''); + | Countly.q.push(['user_details', { email: '#{session.user.email}', name: '#{name}' }]); if (justRegistered) | Countly.q.push(['add_event',{ key: 'user-registered' }]); From ab995671fcc18f5509ba86effb323601bd04454b Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 14 Jul 2016 10:10:14 +0100 Subject: [PATCH 5/5] Namespace feature flags. --- services/web/app/views/layout.jade | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 1c97e5b915..494df36d4b 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -83,35 +83,35 @@ html(itemscope, itemtype='http://schema.org/Product') - featureFlagSet = false; if user.features.collaborators - | Countly.q.push([ 'userData.set', 'collaborators', #{ user.features.collaborators } ]); + | Countly.q.push([ 'userData.set', 'features-collaborators', #{ user.features.collaborators } ]); - featureFlagSet = true; if user.features.compileGroup - | Countly.q.push([ 'userData.set', 'compileGroup', '#{ user.features.compileGroup }' ]); + | Countly.q.push([ 'userData.set', 'features-compileGroup', '#{ user.features.compileGroup }' ]); - featureFlagSet = true; if user.features.compileTimeout - | Countly.q.push([ 'userData.set', 'compileTimeout', #{ user.features.compileTimeout } ]); + | Countly.q.push([ 'userData.set', 'features-compileTimeout', #{ user.features.compileTimeout } ]); - featureFlagSet = true; if user.features.dropbox - | Countly.q.push([ 'userData.set', 'dropbox', #{ user.features.dropbox } ]); + | Countly.q.push([ 'userData.set', 'features-dropbox', #{ user.features.dropbox } ]); - featureFlagSet = true; if user.features.github - | Countly.q.push([ 'userData.set', 'github', #{ user.features.github } ]); + | Countly.q.push([ 'userData.set', 'features-github', #{ user.features.github } ]); - featureFlagSet = true; if user.features.references - | Countly.q.push([ 'userData.set', 'references', #{ user.features.references } ]); + | Countly.q.push([ 'userData.set', 'features-references', #{ user.features.references } ]); - featureFlagSet = true; if user.features.templates - | Countly.q.push([ 'userData.set', 'templates', #{ user.features.templates } ]); + | Countly.q.push([ 'userData.set', 'features-templates', #{ user.features.templates } ]); - featureFlagSet = true; if user.features.versioning - | Countly.q.push([ 'userData.set', 'versioning', #{ user.features.versioning } ]); + | Countly.q.push([ 'userData.set', 'features-versioning', #{ user.features.versioning } ]); - featureFlagSet = true;