You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mo...@apache.org on 2008/07/14 08:52:25 UTC

svn commit: r676494 - in /ofbiz/trunk/applications/ecommerce/webapp/ecommerce: images/checkoutProcess.js order/OnePageCheckoutProcess.ftl

Author: mor
Date: Sun Jul 13 23:52:25 2008
New Revision: 676494

URL: http://svn.apache.org/viewvc?rev=676494&view=rev
Log:
Handled server side errors at step level on One Page Checkout. Done by Sumit Pandit and Brajesh Patel

Modified:
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js?rev=676494&r1=676493&r2=676494&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js Sun Jul 13 23:52:25 2008
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- 
+var isCartStepValidate = false;
+var isShipStepValidate = false;
+var isShipOptionStepValidate = false;
+var isBillStepValidate = false;
+
 Event.observe(window, 'load', function() {
-	// Cart
-    var isCartStepValidate = false;
-    var isShipStepValidate = false;
-    var isShipOptionStepValidate = false;
-    var isBillStepValidate = false;
+    // Cart
     var validateCart = new Validation('cartForm', {immediate: true, onSubmit: false});
     var validateShip = new Validation('shippingForm', {immediate: true, onSubmit: false});
     var validateShipOption = new Validation('shippingOptionForm', {immediate: true, onSubmit: false});
@@ -40,8 +40,8 @@
 
     // Shipping
     Event.observe($('editShippingOptions'), 'click', function() {
-    	if (isCartStepValidate) {
-    	    if (validateShip.validate()) {
+        if (isCartStepValidate) {
+            if (validateShip.validate()) {
                 processShippingAddress();
                 displayShippingOptionPanel();
                 isShipStepValidate = true;
@@ -50,11 +50,11 @@
     });
 
     Event.observe($('openShippingPanel'), 'click', function() {
-    	if (isCartStepValidate) {
+        if (isCartStepValidate) {
             if (isShipStepValidate) {
                 displayShippingPanel();
             }
-    	}
+        }
     });
 
     // Shipping Options
@@ -66,7 +66,7 @@
                 displayBillingPanel();
                 isShipOptionStepValidate = true;
             }
-        }    	
+        }
     });
 
     Event.observe($('openShippingOptionPanel'), 'click', function() {
@@ -77,14 +77,14 @@
 
     // Billing
     Event.observe($('openBillingPanel'), 'click', function() {
-   	    if (isBillStepValidate) {
+        if (isBillStepValidate) {
             displayBillingPanel();
         }  
     });
 
     Event.observe($('openOrderSubmitPanel'), 'click', function() {
         if (isCartStepValidate && isShipStepValidate && isShipOptionStepValidate) {
-            if (validateBill.validate()) {    	
+            if (validateBill.validate()) {
                 processBillingAndPayment();
                 displayOrderSubmitPanel();
                 isBillStepValidate = true;
@@ -92,7 +92,7 @@
         }
     });
     
-    //  For Billing Address Same As Shipping
+    // For Billing Address Same As Shipping
     Event.observe('useShippingAddressForBilling', 'click', function() {
         getAssociatedBillingStateList();
         useShippingAddressForBillingToggle();
@@ -114,6 +114,22 @@
     Event.observe($('billToCountryGeoId'), 'change', getAssociatedBillingStateList);
 });
 
+// Check server side error
+function getServerError(data) {
+    var servreErrorHash = [];
+    var serverError = "";
+    if (data._ERROR_MESSAGE_LIST_ != undefined) {
+        servreErrorHash = data._ERROR_MESSAGE_LIST_;
+        servreErrorHash.each(function(error) {
+            serverError += error.message;
+        });
+    }
+    if (data._ERROR_MESSAGE_ != undefined) {
+        serverError = data._ERROR_MESSAGE_; 
+    }
+    return serverError;    
+}
+
 // Cart
 function displayShippingPanel() {
     if (!$('editShippingPanel').visible()) {
@@ -148,7 +164,7 @@
 
 // Shipping
 function displayShippingOptionPanel() {
-    if (!$('editShippingOptionPanel').visible()) {
+    if (!$('editShippingOptionPanel').visible() && isShipStepValidate) {
         Effect.BlindDown('editShippingOptionPanel', {duration: 0.5});
         Effect.BlindDown('shippingCompleted', {duration: 0.5});
         Effect.BlindUp('editCartPanel', {duration: 0.5});
@@ -167,7 +183,7 @@
 
 // Billing
 function displayBillingPanel() {
-    if (!$('editBillingPanel').visible()) {
+    if (!$('editBillingPanel').visible() && isShipOptionStepValidate) {
         Effect.BlindDown('editBillingPanel', {duration: 0.5});
         Effect.BlindDown('shippingOptionCompleted', {duration: 0.5});
         Effect.BlindUp('editCartPanel', {duration: 0.5});
@@ -186,7 +202,7 @@
 
 // Order Submit
 function displayOrderSubmitPanel() {
-    if (!$('orderSubmitPanel').visible()) {
+    if (!$('orderSubmitPanel').visible() && isBillStepValidate) {
         Effect.BlindDown('orderSubmitPanel', {duration: 0.5});
         Effect.BlindDown('billingCompleted', {duration: 0.5});
         Effect.BlindUp('editCartPanel', {duration: 0.5});
@@ -201,7 +217,7 @@
         Effect.Fade('processingOrderButton', {duration: 0.5});
         Effect.Appear('processOrderButton', {duration: 0.5});
     }
-    setDataInBillingCompleted();	
+    setDataInBillingCompleted();
 }
 
 function processShippingAddress() {
@@ -211,20 +227,19 @@
         asynchronous: false, 
         onSuccess: function(transport) {
             var data = transport.responseText.evalJSON(true);
-            shipOptions = data.shippingOptions;
-            shipOptions.each( function(shipOption) {
-                optionList.push("<option value = " + shipOption.shippingMethod + " > " + shipOption.shippingDesc + " </option>");
-            });
-            $('shipMethod').update(optionList);
-            if (data._ERROR_MESSAGE_LIST_ != undefined) {
-                $('shippingFormServerError').update(data._ERROR_MESSAGE_LIST_);
-            } else if (data._ERROR_MESSAGE_ != undefined) {
-                if (data._ERROR_MESSAGE_LIST_ == "SessionTimedOut") {
-                    $('emptyCartCheckoutPanel').show();
-                    $('checkoutPanel').hide();
-                }
-                $('shippingFormServerError').update(data._ERROR_MESSAGE_); 
+            var serverError = getServerError(data);
+            if(serverError != "") {
+                Effect.Appear('shippingFormServerError');
+                $('shippingFormServerError').update(serverError);
+                isShipStepValidate = false;
             } else {
+                Effect.Fade('shippingFormServerError');
+                isShipStepValidate = true;
+                shipOptions = data.shippingOptions;
+                shipOptions.each( function(shipOption) {
+                    optionList.push("<option value = " + shipOption.shippingMethod + " > " + shipOption.shippingDesc + " </option>");
+                });
+                $('shipMethod').update(optionList);
                 // Process Shipping data response.
                 $('shippingPartyId').value = data.partyId;
                 $('shippingContactMechId').value = data.shippingContactMechId;
@@ -259,19 +274,16 @@
         asynchronous: false,
         onSuccess: function(transport) {
             var data = transport.responseText.evalJSON(true);
-            console.log(data);
             shipMethod = data.shippingDescription;
             shipTotal = data.shippingTotal;
-            if (data._ERROR_MESSAGE_LIST_ != undefined) {
-                $('shippingOptionFormServerError').update(data._ERROR_MESSAGE_LIST_);
-            	
-            } else if (data._ERROR_MESSAGE_ != undefined) {
-                if (data._ERROR_MESSAGE_LIST_ == "SessionTimedOut") {
-                    $('emptyCartCheckoutPanel').show();
-                    $('checkoutPanel').hide();
-                }
-                $('shippingOptionFormServerError').update(data._ERROR_MESSAGE_);
+            var serverError = getServerError(data);
+            if(serverError != "") {
+                Effect.Appear('shippingOptionFormServerError');
+                $('shippingOptionFormServerError').update(serverError);
+                isShipOptionStepValidate = false;
             } else {
+                Effect.Fade('shippingOptionFormServerError');
+                isShipOptionStepValidate = true;
                 $('shippingDescription').value = data.shippingDescription;
                 $('shippingTotal').value = data.shippingTotal;
                 $('cartGrandTotal').value = data.cartGrandTotal;
@@ -306,16 +318,14 @@
         asynchronous: false, 
         onSuccess: function(transport) {
             var data = transport.responseText.evalJSON(true);
-            console.log(data);
-            if (data._ERROR_MESSAGE_LIST_ != undefined) {
-                $('billingFormServerError').update(data._ERROR_MESSAGE_LIST_);
-            } else if (data._ERROR_MESSAGE_ != undefined) {
-                if (data._ERROR_MESSAGE_LIST_="SessionTimedOut") {
-                    $('emptyCartCheckoutPanel').show();
-                    $('checkoutPanel').hide();
-                }
-                $('billingFormServerError').update(data._ERROR_MESSAGE_);
+            var serverError = getServerError(data);
+            if(serverError != "") {
+                Effect.Appear('billingFormServerError');
+                $('billingFormServerError').update(serverError);
+                isBillStepValidate = false;
             } else {
+                Effect.Fade('billingFormServerError');
+                isBillStepValidate = true;
                 $('billToContactMechId').value = data.billToContactMechId;
                 $('paymentMethodId').value = data.paymentMethodId;
             }
@@ -362,9 +372,9 @@
         onSuccess: function(transport) {
             var data = transport.responseText.evalJSON(true);
             if (data._ERROR_MESSAGE_LIST_ != undefined) {
-            	$('cartFormServerError').update(data._ERROR_MESSAGE_LIST_);
+                $('cartFormServerError').update(data._ERROR_MESSAGE_LIST_);
             } else if (data._ERROR_MESSAGE_ != undefined) {
-            	$('cartFormServerError').update(data._ERROR_MESSAGE_);	
+                $('cartFormServerError').update(data._ERROR_MESSAGE_);  
             } else {
                 $('cartDiscountValue').update(data.displayDiscountTotalCurrencyFormatted);
                 $('cartSubTotal').update(data.subTotalCurrencyFormatted);
@@ -432,7 +442,7 @@
         var formValues = $('cartForm').serialize();
         updateCartData(elementId, formValues, qtyElement.value, itemIndex);
     } else {
-    	qtyElement.value = "";	
+        qtyElement.value = "";  
     }
 }
 

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl?rev=676494&r1=676493&r2=676494&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl Sun Jul 13 23:52:25 2008
@@ -113,7 +113,7 @@
             <div id="editCartPanel" class="screenlet-body">
               <form name="cartForm" id="cartForm" method="post" action="<@o...@ofbizUrl>">
                   <input type="hidden" name="removeSelected" value="false">
-                  <div id="cartFormServerError"></div>
+                  <div id="cartFormServerError" class="errorMessage"></div>
                       <table width="75%" cellspacing="0" cellpadding="1" border="0">
                         <thead>
                           <tr>
@@ -282,7 +282,7 @@
                 <input type="hidden" name="userLogin" value="${parameters.userLogin?if_exists}"/>
                 <input type="hidden" id="phoneContactMechId" name="phoneContactMechId" value="${parameters.phoneContactMechId?if_exists}"/>
                 <input type="hidden" id="emailContactMechId" name="emailContactMechId" value="${parameters.emailContactMechId?if_exists}"/>
-                <div id="shippingFormServerError" class="validation-advice"></div>
+                <div id="shippingFormServerError" class="errorMessage"></div>
                           <table>
                             <tr><td width="40%" valign="top">
                                 <div class="form-row">
@@ -416,7 +416,7 @@
 
             <div id="editShippingOptionPanel" class="screenlet-body" style="display: none;">
               <form name="shippingOptionForm" id="shippingOptionForm" action="<@o...@ofbizUrl>" method="post">
-                <div id="shippingOptionFormServerError" class="validation-advice"></div>
+                <div id="shippingOptionFormServerError" class="errorMessage"></div>
                 <table>
                   <tr><td>
                       <div class="form-row">
@@ -482,7 +482,7 @@
                 <input type="hidden" name="userLogin" value="${parameters.userLogin?if_exists}"/>
                 <input type="hidden" name="expireDate" value="${parameters.expireDate?if_exists}"/>
                 <input type="hidden" id="cardType" name="cardType" value="Visa"/>
-                <div id="billingFormServerError" class="validation-advice"></div>
+                <div id="billingFormServerError" class="errorMessage"></div>
                   <table>
                     <tr><td valign="top">
                         <div class="form-row">