mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-25 08:38:09 -05:00
54 lines
1.5 KiB
CoffeeScript
54 lines
1.5 KiB
CoffeeScript
NewModelModal = require 'views/modal/NewModelModal'
|
|
template = require 'templates/editor/level/modal/new-achievement'
|
|
forms = require 'core/forms'
|
|
Achievement = require 'models/Achievement'
|
|
|
|
module.exports = class NewAchievementModal extends NewModelModal
|
|
id: 'new-achievement-modal'
|
|
template: template
|
|
plain: false
|
|
|
|
events:
|
|
'click #save-new-achievement-link': 'onAchievementSubmitted'
|
|
|
|
constructor: (options) ->
|
|
super options
|
|
@level = options.level
|
|
|
|
getRenderData: ->
|
|
c = super()
|
|
c.level = @level
|
|
c
|
|
|
|
onAchievementSubmitted: (e) ->
|
|
slug = _.string.slugify @$el.find('#name').val()
|
|
url = "/editor/achievement/#{slug}"
|
|
window.open url, '_blank'
|
|
|
|
createQuery: ->
|
|
checked = @$el.find('[name=queryOptions]:checked')
|
|
checkedValues = ($(check).val() for check in checked)
|
|
query = {}
|
|
for id in checkedValues
|
|
switch id
|
|
when 'misc-level-completion'
|
|
query['state.complete'] = true
|
|
else
|
|
query["state.goalStates.#{id}.status"] = 'success'
|
|
query['level.original'] = @level.get 'original'
|
|
query
|
|
|
|
makeNewModel: ->
|
|
achievement = new Achievement
|
|
name = @$el.find('#name').val()
|
|
description = @$el.find('#description').val()
|
|
query = @createQuery()
|
|
|
|
achievement.set 'name', name
|
|
achievement.set 'description', description
|
|
achievement.set 'query', query
|
|
achievement.set 'collection', 'level.sessions'
|
|
achievement.set 'userField', 'creator'
|
|
achievement.set 'related', @level.get('original')
|
|
|
|
achievement
|