codecombat/app/views/admin/CodeLogsView.coffee

44 lines
1.2 KiB
CoffeeScript
Raw Normal View History

RootView = require 'views/core/RootView'
template = require 'templates/admin/codelogs-view'
CodeLogCollection = require 'collections/CodeLogs'
CodeLog = require 'models/CodeLog'
utils = require 'core/utils'
module.exports = class CodeLogsView extends RootView
template: template
id: 'codelogs-view'
tooltip: null
events:
'click .playback': 'onClickPlayback'
initialize: ->
@spade = new Spade()
@codelogs = new CodeLogCollection()
@supermodel.trackRequest(@codelogs.fetch())
onClickPlayback: (e) ->
@deleteTooltip()
events = LZString.decompressFromUTF16($(e.target).data('codelog'))
events = @spade.expand(JSON.parse(events))
@tooltip = $(document.createElement('textarea'))
@tooltip.attr('id', "codelogs-tooltip")
@tooltip.css({left: e.pageX + 20, top: e.pageY}) # Position near the cursor
@tooltip.blur @onBlurTooltip
@$('#codelogs-view').append @tooltip
@tooltip.focus()
@spade.play(events, @tooltip.context)
deleteTooltip: ->
if @tooltip?
@tooltip.off 'blur'
@tooltip.remove()
@tooltip = null
onBlurTooltip: (e) =>
@deleteTooltip()
destroy: ->
@deleteTooltip()
super()