Add GoogleAnalytics event tracking

This commit is contained in:
Andrew Miner
2016-05-11 21:39:43 -07:00
parent c441d75529
commit 16848772a3
21 changed files with 176 additions and 36 deletions
@@ -40,6 +40,7 @@ module.exports = class InventoryController extends BaseController
@_isAcceptable = options.isAcceptable ?= null
@_secondButtonType = options.secondButtonType ?= null
@_shouldEnableButton = options.shouldEnableButton ?= (model, button)-> true
@_trackingContext = options.trackingContext ?= null
options.templateName = 'common/inventory'
super options
@@ -54,20 +55,26 @@ module.exports = class InventoryController extends BaseController
return unless @model?
return if @$clearButton.hasClass 'disabled'
tracker.trackEvent @_trackingContext, 'clear'
@model.clear()
@trigger c.event.clear, this
@trigger c.event.change, this
onFirstButtonClicked: (stackController)->
tracker.trackEvent @_trackingContext, 'remove-from', stackController?.model?.itemSlug
@trigger c.event.button.first, this, stackController?.model?.itemSlug
onItemSelectorButtonClicked: ->
return unless @model?
tracker.trackEvent @_trackingContext, 'launch-add-to'
@_selector.launch()
.then (itemSlug)=>
return unless itemSlug?
if not itemSlug?
tracker.trackEvent @_trackingContext, 'cancel-add-to'
return
tracker.trackEvent @_trackingContext, 'complete-add-to', itemSlug
@model.add itemSlug, 1
@trigger c.event.add, this, itemSlug
@trigger c.event.change, this
@@ -136,6 +143,7 @@ module.exports = class InventoryController extends BaseController
router: @_router
secondButtonType: @_secondButtonType
shouldEnableButton: @_shouldEnableButton
trackingContext: @_trackingContext
controller.on c.event.change, => @trigger c.event.change, this
controller.on c.event.button.first, (c)=> @onFirstButtonClicked(c)
controller.on c.event.button.second, (c)=> @onSecondButtonClicked(c)
@@ -29,10 +29,6 @@ module.exports = class ItemSelectorController extends BaseController
# Public Methods ###############################################################################
launch: (hint='')->
if @_session
@_session.resolve null
@_session = null
@model.hint = hint
if @rendered then @refresh()
@@ -141,6 +137,10 @@ module.exports = class ItemSelectorController extends BaseController
@$popup.detach()
@model.hint = ''
if @_session
@_session.resolve null
@_session = null
_disableWindowScrolling: ->
@_windowScrollPosition = $(window).scrollTop()
$('body').addClass('scrollDisabled').css('margin-top', -@_windowScrollPosition)
@@ -60,6 +60,7 @@ module.exports = class MarkdownSectionController extends BaseController
# Event Methods ################################################################################
onCancelClicked: (event)->
tracker.trackEvent c.tracking.category.markdown, 'cancel'
@model = @_originalModel
@resetToDefaultState()
@@ -70,6 +71,7 @@ module.exports = class MarkdownSectionController extends BaseController
onEditClicked: (event)->
return false unless @editable
tracker.trackEvent c.tracking.category.markdown, 'edit'
@_originalModel = @model
@state = @State.waiting
@_beginEditing()
@@ -87,15 +89,18 @@ module.exports = class MarkdownSectionController extends BaseController
return false
onPreviewClicked: (event)->
tracker.trackEvent c.tracking.category.markdown, 'preview'
@_updatePreview()
@state = @State.previewing
return false
onReturnClicked: (event)->
tracker.trackEvent c.tracking.category.markdown, 'return'
@state = @State.editing
return false
onSaveClicked: (event)->
tracker.trackEvent c.tracking.category.markdown, 'save'
@state = @State.waiting
@_endEditing()
.then =>
@@ -36,6 +36,7 @@ module.exports = class StackController extends BaseController
@_modPack = options.modPack
@_secondButtonType = options.secondButtonType ?= null
@_shouldEnableButton = options.shouldEnableButton ?= (model, button)-> true
@_trackingContext = options.trackingContext ?= null
@_modPack.on c.event.change, => @tryRefresh()
@@ -70,6 +71,8 @@ module.exports = class StackController extends BaseController
@trigger c.event.change + ':quantity', this, oldQuantity, newQuantity
@trigger c.event.change, this
tracker.trackEvent @_trackingContext, 'update-quantity', @model.itemSlug, @model.quantity
onQuantityFieldChanged: ->
return unless @_editable