diff --git a/src/scripts/constants.coffee b/src/scripts/constants.coffee index a3e5b6bca..818d35d39 100644 --- a/src/scripts/constants.coffee +++ b/src/scripts/constants.coffee @@ -33,6 +33,7 @@ Event.load.succeeded = 'load:succeeded' # controller, book Event.load.failed = 'load:failed' # controller, error message Event.load.finished = 'load:finished' # controller Event.remove = 'remove' # collection, item... +Event.route = 'route' exports.Url = Url = {} Url.itemIcon = _.template "/data/<%= modSlug %>/images/<%= itemSlug %>.png" diff --git a/src/scripts/crafting_guide_router.coffee b/src/scripts/crafting_guide_router.coffee index 3840731dd..d2675beb1 100644 --- a/src/scripts/crafting_guide_router.coffee +++ b/src/scripts/crafting_guide_router.coffee @@ -6,6 +6,7 @@ All rights reserved. ### {Duration} = require './constants' +{Event} = require './constants' ItemPageController = require './controllers/item_page_controller' {Opacity} = require './constants' UrlParams = require './url_params' @@ -15,14 +16,17 @@ UrlParams = require './url_params' module.exports = class CraftingGuideRouter extends Backbone.Router constructor: (options={})-> - @_page = null - @_pageControllers = {} + @_page = null + @_pageControllers = {} + @_lastReportedHref = null super options - @on Event.route, => @_recordPageView() - # Backbone.Router Overrides #################################################################### + navigate: -> + super + @_recordPageView() + routes: '': 'root' 'item(/:name)': 'item' @@ -41,6 +45,9 @@ module.exports = class CraftingGuideRouter extends Backbone.Router # Private Methods ############################################################################## _recordPageView: -> + return if @_lastReportedHref is window.location.href + @_lastReportedHref = window.location.href + if global.env is 'production' logger.info "Recording GA page view: #{window.location.href}" ga('send', 'pageview')