Browse Source

fix(): google analytics fix

Torkel Ödegaard 8 years ago
parent
commit
902cf5f889
3 changed files with 23 additions and 22 deletions
  1. 1 0
      pkg/api/frontendsettings.go
  2. 22 10
      public/app/core/services/analytics.js
  3. 0 12
      public/views/index.html

+ 1 - 0
pkg/api/frontendsettings.go

@@ -141,6 +141,7 @@ func getFrontendSettingsMap(c *middleware.Context) (map[string]interface{}, erro
 		"authProxyEnabled":  setting.AuthProxyEnabled,
 		"ldapEnabled":       setting.LdapEnabled,
 		"alertingEnabled":   setting.AlertingEnabled,
+		"googleAnalyticsId": setting.GoogleAnalyticsId,
 		"buildInfo": map[string]interface{}{
 			"version":       setting.BuildVersion,
 			"commit":        setting.BuildCommit,

+ 22 - 10
public/app/core/services/analytics.js

@@ -1,27 +1,39 @@
 define([
   'angular',
-  '../core_module',
+  'jquery',
+  'app/core/core_module',
+  'app/core/config',
 ],
-function(angular, coreModule) {
+function(angular, $, coreModule, config) {
   'use strict';
 
   coreModule.default.service('googleAnalyticsSrv', function($rootScope, $location) {
-    var first = true;
+
+    function gaInit() {
+      $.getScript('https://www.google-analytics.com/analytics.js'); // jQuery shortcut
+      var ga = window.ga = window.ga || function () { (ga.q = ga.q || []).push(arguments); }; ga.l = +new Date;
+      ga('create', config.googleAnalyticsId, 'auto');
+      return ga;
+    }
 
     this.init = function() {
+
       $rootScope.$on('$viewContentLoaded', function() {
-        // skip first
-        if (first) {
-          first = false;
-          return;
-        }
-        window.ga('send', 'pageview', { page: $location.url() });
+        var track =  { page: $location.url() };
+
+        var ga = window.ga || gaInit();
+
+        ga('set', track);
+        ga('send', 'pageview');
       });
+
     };
 
   }).run(function(googleAnalyticsSrv) {
-    if (window.ga) {
+
+    if (config.googleAnalyticsId) {
       googleAnalyticsSrv.init();
     }
+
   });
 });

+ 0 - 12
public/views/index.html

@@ -91,18 +91,6 @@
 	<script src="[[.AppSubUrl]]/public/app/boot.js"></script>
 	<!-- endbuild -->
 
-	[[if .GoogleAnalyticsId]]
-	<script>
-		(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-		(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-		m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-		})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-		ga('create', '[[.GoogleAnalyticsId]]', 'auto');
-		ga('send', 'pageview');
-		</script>
-	[[end]]
-
 	[[if .GoogleTagManagerId]]
 		<script>
 			dataLayer = [{