From 997b43621077a2837ff53326a828d1898b76eb39 Mon Sep 17 00:00:00 2001
From: Sam Saffron <sam.saffron@gmail.com>
Date: Mon, 25 Feb 2013 08:36:46 +1100
Subject: [PATCH] attempt at fixing google analytics

---
 .../controllers/application_controller.js     | 29 +++++++++++++------
 .../discourse/routes/google_analytics.js      | 26 -----------------
 2 files changed, 20 insertions(+), 35 deletions(-)
 delete mode 100644 app/assets/javascripts/discourse/routes/google_analytics.js

diff --git a/app/assets/javascripts/discourse/controllers/application_controller.js b/app/assets/javascripts/discourse/controllers/application_controller.js
index 669e3d46f..5b35781f1 100644
--- a/app/assets/javascripts/discourse/controllers/application_controller.js
+++ b/app/assets/javascripts/discourse/controllers/application_controller.js
@@ -1,11 +1,22 @@
-(function() {
+/*global _gaq:true */
 
-  window.Discourse.ApplicationController = Ember.Controller.extend({
-    needs: ['modal'],
-    showLogin: function() {
-      var _ref;
-      return (_ref = this.get('controllers.modal')) ? _ref.show(Discourse.LoginView.create()) : void 0;
+window.Discourse.ApplicationController = Ember.Controller.extend({
+  needs: ['modal'],
+  showLogin: function() {
+    var _ref;
+    return (_ref = this.get('controllers.modal')) ? _ref.show(Discourse.LoginView.create()) : void 0;
+  },
+
+  routeChanged: function(){
+    if (window._gaq === undefined) { return; }
+
+    if(this.afterFirstHit) {
+      Em.run.next(function(){
+        _gaq.push(['_trackPageview']);
+      });
+    } else {
+      this.afterFirstHit = true;
     }
-  });
-
-}).call(this);
+  }.observes('currentPath')
+  
+});
diff --git a/app/assets/javascripts/discourse/routes/google_analytics.js b/app/assets/javascripts/discourse/routes/google_analytics.js
deleted file mode 100644
index f67e4e289..000000000
--- a/app/assets/javascripts/discourse/routes/google_analytics.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*global _gaq:true */
-
-(function() {
-
-  Ember.Route.reopen({
-    setup: function(router, context) {
-      var path;
-      this._super(router, context);
-      if (window._gaq) {
-        if (this.get("isLeafRoute")) {
-          /* first hit is tracked inline
-          */
-
-          if (router.afterFirstHit) {
-            path = this.absoluteRoute(router);
-            _gaq.push(['_trackPageview', path]);
-          } else {
-            router.afterFirstHit = true;
-          }
-          return null;
-        }
-      }
-    }
-  });
-
-}).call(this);