mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-12 08:41:46 -05:00
48 lines
1.5 KiB
CoffeeScript
48 lines
1.5 KiB
CoffeeScript
I18NEditModelView = require './I18NEditModelView'
|
|
Course = require 'models/Course'
|
|
deltasLib = require 'core/deltas'
|
|
Patch = require 'models/Patch'
|
|
|
|
module.exports = class I18NEditCourseView extends I18NEditModelView
|
|
id: "i18n-edit-course-view"
|
|
modelClass: Course
|
|
|
|
buildTranslationList: ->
|
|
lang = @selectedLanguage
|
|
|
|
# name, description
|
|
if i18n = @model.get('i18n')
|
|
if name = @model.get('name')
|
|
@wrapRow 'Course short name', ['name'], name, i18n[lang]?.name, []
|
|
if description = @model.get('description')
|
|
@wrapRow 'Course description', ['description'], description, i18n[lang]?.description, []
|
|
|
|
onSubmitPatch: (e) ->
|
|
|
|
delta = @model.getDelta()
|
|
flattened = deltasLib.flattenDelta(delta)
|
|
|
|
patch = new Patch({
|
|
delta
|
|
target: {
|
|
'collection': _.string.underscored @model.constructor.className
|
|
'id': @model.id
|
|
}
|
|
commitMessage: "Diplomat submission for lang #{@selectedLanguage}: #{flattened.length} change(s)."
|
|
})
|
|
errors = patch.validate()
|
|
button = $(e.target)
|
|
button.attr('disabled', 'disabled')
|
|
return button.text('Failed to Submit Changes') if errors
|
|
res = patch.save(null, {
|
|
url: "/db/course/#{@model.id}/patch"
|
|
})
|
|
return button.text('Failed to Submit Changes') unless res
|
|
button.text('Submitting...')
|
|
Promise.resolve(res)
|
|
.then =>
|
|
@savedBefore = true
|
|
button.text('Submit Changes')
|
|
.catch =>
|
|
button.text('Error Submitting Changes')
|
|
|