codecombat/app/views/editor/level/fork_view.coffee

46 lines
1.3 KiB
CoffeeScript
Raw Normal View History

2014-01-03 13:32:13 -05:00
View = require 'views/kinds/ModalView'
template = require 'templates/editor/level/fork'
forms = require 'lib/forms'
Level = require 'models/Level'
module.exports = class LevelForkView extends View
2014-06-30 22:16:26 -04:00
id: 'editor-level-fork-modal'
2014-01-03 13:32:13 -05:00
template: template
instant: false
modalWidthPercent: 60
events:
'click #fork-level-confirm-button': 'forkLevel'
'submit form': 'forkLevel'
constructor: (options) ->
super options
@level = options.level
2014-02-11 17:58:45 -05:00
getRenderData: (context={}) ->
2014-01-03 13:32:13 -05:00
context = super(context)
context.level = @level
context
forkLevel: ->
@showLoading()
forms.clearFormAlerts(@$el)
newLevel = new Level($.extend(true, {}, @level.attributes))
2014-01-03 13:32:13 -05:00
newLevel.unset '_id'
newLevel.unset 'version'
newLevel.unset 'creator'
newLevel.unset 'created'
newLevel.unset 'original'
newLevel.unset 'parent'
newLevel.set 'commitMessage', "Forked from #{@level.get('name')}"
newLevel.set 'name', @$el.find('#level-name').val()
newLevel.set 'permissions', [access: 'owner', target: me.id]
res = newLevel.save()
return unless res
res.error =>
@hideLoading()
forms.applyErrorsToForm(@$el.find('form'), JSON.parse(res.responseText))
res.success =>
@hide()
application.router.navigate('editor/level/' + newLevel.get('slug'), {trigger: true})