mirror of
https://github.com/atom/atom.git
synced 2026-02-07 13:14:55 -05:00
When the command logger was moved to a deferred package the custom trigger to track events wasn't registered until the instance was created causing most events to go untracked. Now the custom trigger is registered in the index.coffee file and passed to the view instance when toggling.
33 lines
994 B
CoffeeScript
33 lines
994 B
CoffeeScript
DeferredAtomPackage = require 'deferred-atom-package'
|
|
$ = require 'jquery'
|
|
|
|
module.exports =
|
|
class CommandLogger extends DeferredAtomPackage
|
|
|
|
loadEvents: ['command-logger:toggle']
|
|
|
|
instanceClass: 'command-logger/src/command-logger-view'
|
|
|
|
activate: (rootView, state={})->
|
|
super
|
|
|
|
@eventLog = state.eventLog ? {}
|
|
rootView.command 'command-logger:clear-data', => @eventLog = {}
|
|
|
|
registerTriggeredEvent = (eventName) =>
|
|
eventNameLog = @eventLog[eventName]
|
|
unless eventNameLog
|
|
eventNameLog =
|
|
count: 0
|
|
name: eventName
|
|
@eventLog[eventName] = eventNameLog
|
|
eventNameLog.count++
|
|
eventNameLog.lastRun = new Date().getTime()
|
|
originalTrigger = $.fn.trigger
|
|
$.fn.trigger = (eventName) ->
|
|
eventName = eventName.type if eventName.type
|
|
registerTriggeredEvent(eventName) if $(this).events()[eventName]
|
|
originalTrigger.apply(this, arguments)
|
|
|
|
onLoadEvent: (event, instance) -> instance.toggle(@eventLog)
|