codecombat/app/views/play/level/modal/editor_config_modal.coffee

61 lines
1.8 KiB
CoffeeScript
Raw Normal View History

2014-03-13 19:54:06 -04:00
View = require 'views/kinds/ModalView'
template = require 'templates/play/level/modal/editor_config'
{me} = require('lib/auth')
module.exports = class EditorConfigModal extends View
id: 'level-editor-config-modal'
template: template
2014-03-13 21:09:11 -04:00
aceConfig: {}
defaultConfig:
keyBindings: 'default'
invisibles: false
indentGuides: false
behaviors: false
2014-03-13 19:54:06 -04:00
events:
'change #tome-invisibles': 'updateInvisiblesSelection'
'change #tome-key-bindings': 'updateKeyBindingsSelection'
'change #tome-indent-guides': 'updateIndentGuides'
'change #tome-behaviors': 'updateBehaviors'
2014-03-13 19:54:06 -04:00
constructor: (options) ->
super(options)
getRenderData: ->
@aceConfig = _.cloneDeep me.get('aceConfig') ? {}
2014-03-13 21:09:11 -04:00
@aceConfig = _.defaults @aceConfig, @defaultConfig
2014-03-13 19:54:06 -04:00
c = super()
2014-03-13 21:09:11 -04:00
c.keyBindings = @aceConfig.keyBindings
c.invisibles = @aceConfig.invisibles
c.indentGuides = @aceConfig.indentGuides
c.behaviors = @aceConfig.behaviors
2014-03-13 19:54:06 -04:00
c
2014-03-13 21:09:11 -04:00
updateInvisiblesSelection: ->
@aceConfig.invisibles = @$el.find('#tome-invisibles').prop('checked')
2014-03-13 21:09:11 -04:00
updateKeyBindingsSelection: ->
@aceConfig.keyBindings = @$el.find('#tome-key-bindings').val()
2014-03-13 21:09:11 -04:00
updateIndentGuides: ->
@aceConfig.indentGuides = @$el.find('#tome-indent-guides').prop('checked')
updateBehaviors: ->
@aceConfig.behaviors = @$el.find('#tome-behaviors').prop('checked')
2014-03-13 21:09:11 -04:00
2014-03-13 19:54:06 -04:00
afterRender: ->
super()
2014-03-13 21:09:11 -04:00
onHidden: ->
@aceConfig.invisibles = @$el.find('#tome-invisibles').prop('checked')
@aceConfig.keyBindings = @$el.find('#tome-key-bindings').val()
@aceConfig.indentGuides = @$el.find('#tome-indent-guides').prop('checked')
@aceConfig.behaviors = @$el.find('#tome-behaviors').prop('checked')
2014-03-13 21:09:11 -04:00
me.set 'aceConfig', @aceConfig
2014-03-13 21:49:58 -04:00
Backbone.Mediator.publish 'change:editor-config'
2014-03-13 21:09:11 -04:00
me.save()
2014-03-13 19:54:06 -04:00
destroy: ->
super()