Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
dispatch : function(callback) {
var payObj = {};
_gaq.push(['_trackEvent','Checkout','App Event','Attempting to create order']);
// initially, was serializing the payment panel only. Issues here with safari.
// then, when loading .val(), field was not reliably present.
// cc info is saved in memory so that if payment panel is reloaded, cc# is available. so that reference is used for cc and cv.
// exp alone is less valuable, so it's stored in data.cart obj and referenced there.
payObj['payment.cc'] = myControl.ext.convertSessionToOrder.vars["payment.cc"];
payObj['payment.cv'] = myControl.ext.convertSessionToOrder.vars["payment.cv"];
payObj['payment.yy'] = myControl.ext.convertSessionToOrder.vars["payment.yy"];
payObj['payment.mm'] = myControl.ext.convertSessionToOrder.vars["payment.mm"];
payObj['_cmd'] = 'cartOrderCreate';
payObj['_tag'] = {"callback":callback,"extension":"convertSessionToOrder","datapointer":"cartOrderCreate"}
// myControl.util.dump("PayObj to follow:");
// myControl.util.dump(payObj);
myControl.model.addDispatchToQ(payObj,'immutable');
}
},//cartOrderCreate
dispatch : function(callback) {
var payObj = {};
_gaq.push(['_trackEvent','Checkout','App Event','Attempting to create order']);
// initially, was serializing the payment panel only. Issues here with safari.
// then, when loading .val(), field was not reliably present.
// cc info is saved in memory so that if payment panel is reloaded, cc# is available. so that reference is used for cc and cv.
// exp alone is less valuable, so it's stored in data.cart obj and referenced there.
payObj['payment.cc'] = myControl.ext.convertSessionToOrder.vars["payment.cc"];
payObj['payment.cv'] = myControl.ext.convertSessionToOrder.vars["payment.cv"];
payObj['payment.yy'] = myControl.ext.convertSessionToOrder.vars["payment.yy"];
payObj['payment.mm'] = myControl.ext.convertSessionToOrder.vars["payment.mm"];
payObj['_cmd'] = 'cartOrderCreate';
payObj['_tag'] = {"callback":callback,"extension":"convertSessionToOrder","datapointer":"cartOrderCreate"}
myControl.util.dump("PayObj to follow:");
myControl.util.dump(payObj);
myControl.model.addDispatchToQ(payObj,'immutable');
}
},//cartOrderCreate
init : function(callback) {
myControl.util.dump('BEGIN myControl.ext.convertSessionToOrder.calls.processCheckout.init');
$('#chkoutSummaryErrors').empty(); //clear any existing global errors. //blank out any existing global errors so that only new error appear.
$('#chkoutPlaceOrderBtn').attr('disabled','disabled').addClass('ui-state-disabled loadingButtonBg'); //disable the button to avoid double-click.
// return; //die here to test
var checkoutIsValid = myControl.ext.convertSessionToOrder.validate.isValid();
myControl.util.dump(' -> checkoutIsValid = '+checkoutIsValid);
//adds dispatches regardless of validation.
var serializedCheckout = $('#zCheckoutFrm').serializeJSON()
//for security reasons, cc info is removed from cart/session update if the local validation isn't successful.
//they are saved in memory for panel updates. if a user leaves checkout and comes back, cc info will have to be re-entered.
if(!checkoutIsValid) {
serializedCheckout['payment.cc'] = '';
serializedCheckout['payment.cv'] = '';
}
// myControl.util.dump(' -> SANITIZED serialized checkout object: ');
// myControl.util.dump(serializedCheckout);
myControl.calls.cartSet.init(serializedCheckout);
if(checkoutIsValid) {
this.dispatch(callback);
myControl.util.dump(" -> Got to valid checkout and adding to dispatchQ.");
}
else {
// myControl.util.dump(' -> validation failed.');
//originally, instead of attr(disabled,false) i removed the disabled attribute. This didn't work in ios 5 safari.
$('#chkoutPlaceOrderBtn').attr('disabled',false).removeClass('ui-state-disabled').removeClass('loadingButtonBg');
//without this jump, the create order button jumps up slightly.
//this needs to be at the end so all the content above is manipulated BEFORE jumping to the id. otherwise, the up-jump still occurs.
$('#payby_'+paymentID+' .paycon').addClass('ui-state-active ui-corner-top');
$('#paybySupplemental_'+paymentID).show();
var $selectedPayment = $('#paybySupplemental_'+paymentID);
//only add the 'subcontents' once. if it has already been added, just display it (otherwise, toggling between payments will duplicate all the contents)
if($selectedPayment.length == 0) {
$selectedPayment = $("<ul>").attr("id","paybySupplemental_"+paymentID).addClass("paybySupplemental noPadOrMargin noListStyle ui-widget-content ui-corner-bottom");
$('#payby_'+paymentID).append($selectedPayment);
var o = '';
var safeid;
switch(paymentID) {
//for credit cards, we can't store the # or cid in local storage. Save it in memory so it is discarded on close, reload, etc
//expiration is less of a concern
case 'CREDIT':
o = "<li><label for="payment-cc">Credit Card #<\/label><input value="";
if(myControl.ext.convertSessionToOrder.vars[" class="creditCard" id="payment-cc" name="payment.cc" size="20" type="text"><\/li>";
o += "</label></li><li><label>Expiration<\/label><select class="creditCardMonthExp" id="payment-mm" name="payment.mm"><option><\/option>";
o += myControl.util.getCCExpMonths(myControl.data.cartItemsList.cart['payment.mm']);
o += "<\/select>";
o += "</option></select><option value=""><\/option>"+myControl.util.getCCExpYears(myControl.data.cartItemsList.cart['payment.yy'])+"<\/select><\/li>";
o += "</option></label></li><li><label for="payment.cv">CVV/CID<\/label><input value="";
if(myControl.ext.convertSessionToOrder.vars[" class="creditCardCVV" id="payment-cv" name="payment.cv" size="8" type="text"> <span class="ui-icon ui-icon-help"></span><\/li>";
break;
case 'PO':
o = "</label></li><li><label for="payment-po">PO #<\/label></label></li></ul>
$('#payby_'+paymentID+' .paycon').addClass('ui-state-active ui-corner-top');
$('#paybySupplemental_'+paymentID).show();
var $selectedPayment = $('#paybySupplemental_'+paymentID);
//only add the 'subcontents' once. if it has already been added, just display it (otherwise, toggling between payments will duplicate all the contents)
if($selectedPayment.length == 0) {
$selectedPayment = $("<ul>").attr("id","paybySupplemental_"+paymentID).addClass("paybySupplemental noPadOrMargin noListStyle ui-widget-content ui-corner-bottom");
$('#payby_'+paymentID).append($selectedPayment);
var o = '';
var safeid;
switch(paymentID) {
//for credit cards, we can't store the # or cid in local storage. Save it in memory so it is discarded on close, reload, etc
//expiration is less of a concern
case 'CREDIT':
o = "<li><label for="payment-cc">Credit Card #<\/label><input value="";
if(myControl.ext.convertSessionToOrder.vars[" class="creditCard" id="payment-cc" name="payment.cc" size="20" type="text"><\/li>";
o += "</label></li><li><label>Expiration<\/label><select class="creditCardMonthExp" id="payment-mm" name="payment.mm"><option><\/option>";
o += myControl.util.getCCExpMonths(myControl.data.cartItemsList.cart['payment.mm']);
o += "<\/select>";
o += "</option></select><option value=""><\/option>"+myControl.util.getCCExpYears(myControl.data.cartItemsList.cart['payment.yy'])+"<\/select><\/li>";
o += "</option></label></li><li><label for="payment.cv">CVV/CID<\/label><input value="";
if(myControl.ext.convertSessionToOrder.vars[" class="creditCardCVV" id="payment-cv" name="payment.cv" size="8" type="text"> <span class="ui-icon ui-icon-help"></span><\/li>";
break;
case 'PO':
o = "</label></li><li><label for="payment-po">PO #<\/label></label></li></ul>
init : function(callback) {
myControl.util.dump('BEGIN myControl.ext.convertSessionToOrder.calls.processCheckout.init');
$('#chkoutSummaryErrors').empty(); //clear any existing global errors. //blank out any existing global errors so that only new error appear.
$('#chkoutPlaceOrderBtn').attr('disabled','disabled').addClass('ui-state-disabled loadingButtonBg'); //disable the button to avoid double-click.
// return; //die here to test
var checkoutIsValid = myControl.ext.convertSessionToOrder.validate.isValid();
myControl.util.dump(' -> checkoutIsValid = '+checkoutIsValid);
//adds dispatches regardless of validation.
var serializedCheckout = $('#zCheckoutFrm').serializeJSON()
//for security reasons, cc info is removed from cart/session update if the local validation isn't successful.
//they are saved in memory for panel updates. if a user leaves checkout and comes back, cc info will have to be re-entered.
if(!checkoutIsValid) {
serializedCheckout['payment.cc'] = '';
serializedCheckout['payment.cv'] = '';
}
// myControl.util.dump(' -> SANITIZED serialized checkout object: ');
// myControl.util.dump(serializedCheckout);
myControl.calls.cartSet.init(serializedCheckout);
if(checkoutIsValid) {
this.dispatch(callback);
myControl.util.dump(" -> !!! got to valid checkout and adding to dispatchQ. Why isn't there a dispatch here?");
}
else {
// myControl.util.dump(' -> validation failed.');
//originally, instead of attr(disabled,false) i removed the disabled attribute. This didn't work in ios 5 safari.
$('#chkoutPlaceOrderBtn').attr('disabled',false).removeClass('ui-state-disabled').removeClass('loadingButtonBg');
//without this jump, the create order button jumps up slightly.
//this needs to be at the end so all the content above is manipulated BEFORE jumping to the id. otherwise, the up-jump still occurs.