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);