Created
February 27, 2013 19:18
-
-
Save bryanmikaelian/5050775 to your computer and use it in GitHub Desktop.
conflict
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//= require jquery.blockUI | |
//= require underscore | |
//= require underscore.customurlscheme | |
//= require store-common/payments.js | |
//= require jquery.payment | |
(function(window, $, _) { | |
var NO_PAYMENT_REQUIRED_ATTR = "data-noPaymentRequired"; | |
var formData = ""; | |
function listenForCreditCardTokenChange() { | |
$('#credit_card_token').live("change", function() { | |
StorePayments.blockUI(); | |
var token = $(this).val(); | |
var bookId = $("#book_id").val(); | |
var req = { | |
book_id: bookId, | |
apply_credit: $("#apply_credit").is(":checked"), | |
token: token | |
}; | |
$.get("/store/payments/toggle_payment_methods.js", req).always(function() { | |
StorePayments.unblockUI(); | |
}); | |
}); | |
} | |
$(function() { | |
$(".back a").click(function() { | |
window.location = $(this).attr("href"); | |
return false; | |
}); | |
<<<<<<< HEAD | |
var original_tr_data = $('#tr_data').val(); | |
$("form.braintree_payment").bind('ajax:loading', function() { | |
var submit_button = $("#transaction_fields").find('.submit'); | |
$(submit_button).addClass('disabled'); | |
$(submit_button).attr('disabled', 'disabled'); | |
}); | |
$("form.braintree_payment").live('submit', function(){ | |
var submit_button = $("#transaction_fields").find('.submit'); | |
var submit_loading = $("#transaction_fields").find('.loading-submit'); | |
$(submit_button).addClass('disabled'); | |
$(submit_button).attr('disabled', 'disabled'); | |
$(submit_loading).show(); | |
}); | |
listenForCreditCardTokenChange(); | |
validatePaymentForm(); | |
formatPaymentFields(); | |
}); | |
function formatPaymentFields() { | |
$("input#transaction_credit_card_number").payment('formatCardNumber'); | |
$("input#transaction_credit_card_cvv").payment('formatCardCVC'); | |
$("input#transaction_credit_card_expiration_date").payment('formatCardExpiry'); | |
$('[data-numeric]').payment('restrictNumeric'); | |
} | |
function validatePaymentForm() { | |
$('input#transaction_billing_street_address, input#transaction_billing_extended_address, input#transaction_billing_postal_code, input#transaction_billing_locality, input#transaction_billing_region').live('keyup', function() { | |
var self = this; | |
var book_id = $('#book_id').val(); | |
var user_id = $('#user_id').val(); | |
var submit_field = $("#transaction_fields").find('.submit-fields'); | |
var submit_button = $("#transaction_fields").find('.submit'); | |
delay(function(){ | |
if ( StorePayments.validStreetAddress($('input#transaction_billing_street_address').val()) && | |
StorePayments.validPostalCode($('input#transaction_billing_postal_code').val()) && | |
StorePayments.validRegion($('input#transaction_billing_region').val()) && | |
StorePayments.validLocality($('input#transaction_billing_locality').val()) | |
) { | |
$("#transaction_fields .submit-fields").find('.payment-loading').show(); | |
var street_address = $('input#transaction_billing_street_address').val(); | |
var postal_code = $('input#transaction_billing_postal_code').val(); | |
var locality = $('input#transaction_billing_locality').val(); | |
var region = $('input#transaction_billing_region').val(); | |
var tax_amount = $('input#transaction_tax_amount').val(); | |
var tr_data = $('input#tr_data').val(); | |
var error = function(data) { | |
$("#transaction_fields .submit-fields").find('.payment-loading').hide(); | |
var amount = data.amount || 0.0; | |
$('#sales_tax').html("$0.00"); | |
$('#transaction_tax_amount').val(0.00); | |
$('#total_amount').html("$"+(parseFloat(amount).toFixed(2))); | |
$('#transaction_amount').val((parseFloat(amount)).toFixed(2)); | |
$('#tr_data').val(tr_data); | |
$('#tax_error').html(data.error); | |
}; | |
$.ajax({ | |
type: "get", | |
url: "/store/payments/calculate_sales_tax.json?book_id="+book_id+"&user_id="+user_id+"&street_address="+encodeURIComponent(street_address)+"&locality="+encodeURIComponent(locality)+"®ion="+encodeURIComponent(region)+"&postal_code="+encodeURIComponent(postal_code), | |
success: function(data) { | |
$("#transaction_fields .submit-fields").find('.payment-loading').hide(); | |
if (data == null || data.error) return error(data); | |
var amount = data.amount; | |
var total = data.total; | |
var new_tax_amount = data.tax_amount; | |
var new_tr_data = data.tr_data; | |
$('#total_amount').html("$" + parseFloat(total).toFixed(2)); | |
$('#sales_tax').html("$" + parseFloat(new_tax_amount).toFixed(2)); | |
$('#tr_data').val(new_tr_data); | |
$('#transaction_tax_amount').val(parseFloat(new_tax_amount).toFixed(2)); | |
$(submit_button).removeClass('disabled'); | |
$(submit_button).removeAttr('disabled'); | |
$('#tax_error').empty(); | |
}, | |
error: error | |
}); | |
} else { | |
$(submit_button).addClass('disabled'); | |
$(submit_button).attr('disabled', 'disabled'); | |
======= | |
$("[data-appurl]").click(function() { | |
console.log($(this).attr("data-appurl")); | |
return _.customUrlWithFallback($(this).attr("data-appurl")); | |
}); | |
get$Form().bind("ajax:loading", function() { | |
disableSubmitBtn(); | |
}).live("submit", function(e) { | |
if ($(this).is("[" + NO_PAYMENT_REQUIRED_ATTR + "]")) { | |
e.preventDefault(); | |
get$RedeemCreditForm().submit(); | |
>>>>>>> qa | |
} | |
disableSubmitBtn(); | |
StorePayments.blockUI(); | |
}); | |
get$RedeemCreditForm().submit(function() { | |
var $form = $(this); | |
$form.find("input[name=token]").val($('#credit_card_token').val()); | |
$form.find("input[name=street_address]").val($("input#transaction_billing_street_address").val()); | |
$form.find("input[name=extended_address]").val($("input#transaction_billing_extended_address").val()); | |
$form.find("input[name=locality]").val($("input#transaction_billing_locality").val()); | |
$form.find("input[name=region]").val($("input#transaction_billing_region").val()); | |
$form.find("input[name=postal_code]").val($("input#transaction_billing_postal_code").val()); | |
}); | |
$("#apply_credit").live("change", function() { | |
updateSalesAmountsAndFormData(); | |
}); | |
listenForCreditCardTokenChange(); | |
validatePaymentForm(); | |
formatPaymentFields(); | |
}); | |
function formatPaymentFields() { | |
$("input#transaction_credit_card_number").payment('formatCardNumber'); | |
$("input#transaction_credit_card_cvv").payment('formatCardCVC'); | |
$("input#transaction_credit_card_expiration_date").payment('formatCardExpiry'); | |
$('[data-numeric]').payment('restrictNumeric'); | |
} | |
function validatePaymentForm() { | |
$("input#transaction_billing_street_address, input#transaction_billing_extended_address, input#transaction_billing_postal_code, input#transaction_billing_locality, input#transaction_billing_region").live("keyup", function() { | |
delay(function() { | |
if (!isFormDirty(formData)) return; | |
if (isTaxInfoValid()) { | |
updateSalesAmountsAndFormData(); | |
} else { | |
formData = ""; | |
disableSubmitBtn(); | |
} | |
}, 500); | |
}); | |
} | |
var delay = (function(){ | |
var timer = 0; | |
return function(callback, ms){ | |
clearTimeout (timer); | |
timer = setTimeout(callback, ms); | |
}; | |
})(); | |
function currentFormData() { | |
return $("form.braintree_payment").serialize(); | |
} | |
function isFormDirty(oldData) { | |
return oldData != currentFormData(); | |
} | |
function updateSalesAmounts() { | |
StorePayments.blockUI(); | |
var bookId = $("#book_id").val(); | |
var token = $("#credit_card_token").val(); | |
var applyTax = isTaxInfoValid(); | |
var applyCredit = $("#apply_credit").is(":checked"); | |
var req = { | |
book_id: bookId, | |
token: token, | |
apply_tax: applyTax, | |
apply_credit: applyCredit | |
}; | |
if (applyTax) { | |
var streetAddress = $('input#transaction_billing_street_address').val(); | |
var postalCode = $('input#transaction_billing_postal_code').val(); | |
var locality = $('input#transaction_billing_locality').val(); | |
var region = $('input#transaction_billing_region').val(); | |
req = $.extend({}, req, { | |
street_address: streetAddress, | |
locality: locality, | |
region: region, | |
postal_code: postalCode | |
}); | |
} | |
return $.getJSON("/store/payments/calculate_sales_amount.json", req).done(function(data) { | |
var meta = data.meta; | |
var amounts = data.displayable_amounts; | |
$("#price_amount").text(amounts.price); | |
$("#tax_amount").text(amounts.tax); | |
$("#credit_amount").text(amounts.credit); | |
$("#credit_appliable_amount").text(amounts.credit_appliable); | |
$("#total_amount").text(amounts.total); | |
$("#tr_data").val(meta.tr_data || ""); | |
$("#tax_error").html(meta.tax_error); | |
setupPaymentRequired(meta.payment_required); | |
toggleCreditLineItem(meta.credit_applied); | |
toggleCreditCardDetails(meta.payment_required); | |
toggleSubmitBtn(meta.submitable); | |
}).always(function() { | |
StorePayments.unblockUI(); | |
}); | |
} | |
function get$Form() { | |
return $("form.braintree_payment"); | |
} | |
function get$RedeemCreditForm() { | |
return $("#redeemCreditForm"); | |
} | |
function setupPaymentRequired(paymentRequired) { | |
var $form = get$Form(); | |
if (paymentRequired) { | |
$form.removeAttr(NO_PAYMENT_REQUIRED_ATTR); | |
} | |
else { | |
$form.attr(NO_PAYMENT_REQUIRED_ATTR, true); | |
} | |
} | |
function updateSalesAmountsAndFormData() { | |
return updateSalesAmounts().always(function() { | |
formData = currentFormData(); | |
}); | |
} | |
function isTaxInfoValid() { | |
return StorePayments.validStreetAddress($('input#transaction_billing_street_address').val()) | |
&& StorePayments.validPostalCode($('input#transaction_billing_postal_code').val()) | |
&& StorePayments.validRegion($('input#transaction_billing_region').val()) | |
&& StorePayments.validLocality($('input#transaction_billing_locality').val()); | |
} | |
function get$CreditCardDetails() { | |
return $(".cc-details"); | |
} | |
function get$NoPaymentAlert() { | |
return $("#noPaymentRequiredAlert"); | |
} | |
function toggleCreditCardDetails(flag) { | |
flag ? showCreditCardDetails() : hideCreditCardDetails(); | |
} | |
function showCreditCardDetails() { | |
get$CreditCardDetails().show(); | |
get$NoPaymentAlert().hide(); | |
} | |
function hideCreditCardDetails() { | |
get$CreditCardDetails().hide(); | |
get$NoPaymentAlert().show(); | |
} | |
function submitBtn() { | |
return $(".submit-fields, .submit-fields .submit"); | |
//return $("#transaction_fields").find(".submit"); | |
} | |
function toggleCreditLineItem(visible) { | |
var $creditLineItem = $("#credit_line_item"); | |
visible ? $creditLineItem.show() : $creditLineItem.hide(); | |
} | |
function toggleSubmitBtn(enabled) { | |
enabled ? enableSubmitBtn() : disableSubmitBtn(); | |
} | |
function enableSubmitBtn() { | |
submitBtn().removeClass("disabled").removeAttr("disabled"); | |
} | |
function disableSubmitBtn() { | |
submitBtn().addClass("disabled").attr("disabled", "disabled"); | |
} | |
})(this, this.jQuery, this._); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment