Sha256: c28a7fcd0c01967a47d583fd2e1d6b0cde6c86ea1361693820260b853d656a28
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
class @SuperchargedForm constructor: (selector, @options = {}) -> @form = $(selector) return if @form.length == 0 @amount_input = @form.find("[role='charge-amount']") @gateway_name_input = @form.find("[role='charge-gateway-name']") @id_input = @form.find("[role='payment-form-order']") @form.submit => valid = @startPayment() unless valid return false unless parseInt(@id_input.val()) alert("Error: undefined charge id") return false $("@charge-submit-button").prop("disabled", false) startPayment: -> valid = true @createInternalTransaction( success: (charge)=> @prepareGatewayForm(charge) validationError: (errors)=> valid = false handler = @options.onValidationError handler.call(this, errors) if handler? ) valid createInternalTransaction: (options) -> charge_attributes = @getChargeAttributes() $.ajax( url: "/charges.json", type: "POST", async: false, data: {charge: charge_attributes}, success: (response) -> options.success(response.charge) error: (jqXHR, status, errorThrown)=> return unless jqXHR.status == 422 response = $.parseJSON(jqXHR.responseText) options.validationError(response.errors) ) getChargeAttributes: -> { amount: @amount_input.val(), gateway_name: @gateway_name_input.val() } prepareGatewayForm: (charge) -> @id_input.val(charge.id)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
supercharged-2.2.0 | app/assets/javascripts/charge_form.js.coffee.erb |