2014-01-03 13:32:13 -05:00
|
|
|
ModalView = require 'views/kinds/ModalView'
|
|
|
|
template = require 'templates/modal/save_version'
|
2014-04-10 14:13:33 -04:00
|
|
|
DeltaView = require 'views/editor/delta'
|
2014-01-03 13:32:13 -05:00
|
|
|
|
|
|
|
module.exports = class SaveVersionModal extends ModalView
|
|
|
|
id: 'save-version-modal'
|
|
|
|
template: template
|
2014-04-10 14:13:33 -04:00
|
|
|
plain: true
|
2014-01-03 13:32:13 -05:00
|
|
|
|
|
|
|
events:
|
|
|
|
'click #save-version-button': 'onClickSaveButton'
|
|
|
|
'click #cla-link': 'onClickCLALink'
|
|
|
|
'click #agreement-button': 'onAgreedToCLA'
|
2014-04-10 14:13:33 -04:00
|
|
|
|
|
|
|
constructor: (options) ->
|
|
|
|
super options
|
|
|
|
@model = options.model
|
|
|
|
|
2014-01-03 13:32:13 -05:00
|
|
|
afterRender: ->
|
|
|
|
super()
|
|
|
|
@$el.find(if me.get('signedCLA') then '#accept-cla-wrapper' else '#save-version-button').hide()
|
2014-04-10 14:13:33 -04:00
|
|
|
return unless @model
|
|
|
|
changeEl = @$el.find('.changes-stub')
|
|
|
|
deltaView = new DeltaView({model:@model})
|
|
|
|
@insertSubView(deltaView, changeEl)
|
2014-01-03 13:32:13 -05:00
|
|
|
|
|
|
|
onClickSaveButton: ->
|
|
|
|
Backbone.Mediator.publish 'save-new-version', {
|
|
|
|
major: @$el.find('#major-version').prop('checked')
|
|
|
|
commitMessage: @$el.find('#commit-message').val()
|
|
|
|
}
|
|
|
|
|
|
|
|
onClickCLALink: ->
|
|
|
|
window.open('/cla', 'cla', 'height=800,width=900')
|
|
|
|
|
|
|
|
onAgreedToCLA: ->
|
|
|
|
@$el.find('#agreement-button').text('Saving').prop('disabled', true)
|
|
|
|
$.ajax({
|
|
|
|
url: "/db/user/me/agreeToCLA"
|
|
|
|
method: 'POST'
|
|
|
|
success: @onAgreeSucceeded
|
|
|
|
error: @onAgreeFailed
|
|
|
|
})
|
|
|
|
|
|
|
|
onAgreeSucceeded: =>
|
|
|
|
@$el.find('#agreement-button').text('Thanks!')
|
|
|
|
@$el.find('#save-version-button').show()
|
|
|
|
|
|
|
|
onAgreeFailed: =>
|
|
|
|
@$el.find('#agreement-button').text('Failed').prop('disabled', false)
|