codecombat/app/views/editor/level/modals/ArtisanGuideModal.coffee

56 lines
1.9 KiB
CoffeeScript
Raw Normal View History

ModalView = require 'views/core/ModalView'
template = require 'templates/editor/level/modal/artisan-guide-modal'
forms = require 'core/forms'
{sendContactMessage} = require 'core/contact'
contactSchema =
additionalProperties: false
required: ['creditName', 'levelPurpose', 'levelInspiration', 'levelLocation']
properties:
creditName:
type: 'string'
levelPurpose:
type: 'string'
levelInspiration:
type: 'string'
levelLocation:
type: 'string'
module.exports = class ArtisanGuideModal extends ModalView
id: 'artisan-guide-modal'
template: template
events:
'click #level-submit': 'levelSubmit'
2016-01-20 18:32:21 -05:00
initialize: (options) ->
@level = options.level
@options =
level:@level.get('name')
levelSlug:@level.get('slug')
2016-01-20 18:32:21 -05:00
@creator = @level.get 'creator'
@meID = me.id
levelSubmit: ->
@playSound 'menu-button-click'
forms.clearFormAlerts @$el
results = forms.formToObject @$el
res = tv4.validateMultiple results, contactSchema
return forms.applyErrorsToForm @$el, res.errors unless res.valid
contactMessage = {message:"""User Name: #{results.creditName}
Level: <a href="http://codecombat.com/editor/level/#{@options.levelSlug}">#{@options.level}</a>
Purpose: #{results.levelPurpose}
Inspiration: #{results.levelInspiration}
Location: #{results.levelLocation}"""}
@populateBrowserData contactMessage
contactMessage = _.merge contactMessage, @options
contactMessage.country = me.get('country')
sendContactMessage contactMessage, @$el
$.post "/db/user/#{me.id}/track/contact_codecombat"
populateBrowserData: (context) ->
if $.browser
context.browser = "#{$.browser.platform} #{$.browser.name} #{$.browser.versionNumber}"
context.screenSize = "#{screen?.width ? $(window).width()} x #{screen?.height ? $(window).height()}"
context.screenshotURL = @screenshotURL