You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2012/04/15 20:58:17 UTC

svn commit: r1326397 - in /ofbiz/trunk/specialpurpose/ecommerce: webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy webapp/ecommerce/customer/editcontactmech.ftl widget/CommonScreens.xml widget/CustomerScreens.xml

Author: jleroux
Date: Sun Apr 15 18:58:17 2012
New Revision: 1326397

URL: http://svn.apache.org/viewvc?rev=1326397&view=rev
Log:
A modified patch from Tom Burns for "Add Support for Dependent Country State Drop Downs to SFA New Postal Address " https://issues.apache.org/jira/browse/OFBIZ-4801

Using Dependent drop-downs to filter the State drop down based on the selection in the Country drop-down will improve the usability of the component.
Current Behavior:
1. Open eCommerce application
2. Log in as user with Postal Address say Demo Customer
3. In the menu bar select Profile
4. In "Contact Information" > "Postal Address" select update.
5. The "Country" drop-down value is "United States" and the "State/Province" drop-down list displays all geo values.

After improvement:
5. The "Country" drop-down value is "United States" and the "State/Province" drop-down list is limited to States in the United States.
6. Changing the value in the "Country" drop-down will update "State/Province" drop-down list with values for the selected country.

jleroux: Tom's patch had only a small issue: duplicated line (but this had any impact since overriden by the following line)
<set field="selectedDependentOption" value="_none_"/>

The problem was more in EditContactMech.groovy:
context.selectedStateName = geoValue.geoName;
was used, instead of needed by setDependentDropdownValuesJs.ftl
context.selectedStateName = geoValue.geoId;

Modified:
    ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy
    ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/editcontactmech.ftl
    ofbiz/trunk/specialpurpose/ecommerce/widget/CommonScreens.xml
    ofbiz/trunk/specialpurpose/ecommerce/widget/CustomerScreens.xml

Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy?rev=1326397&r1=1326396&r2=1326397&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy Sun Apr 15 18:58:17 2012
@@ -93,11 +93,11 @@ if (parameters.countryGeoId) {
 if (parameters.stateProvinceGeoId) {
     geoValue = delegator.findByPrimaryKeyCache("Geo", [geoId : parameters.stateProvinceGeoId]);
     if (geoValue) {
-        context.selectedStateName = geoValue.geoName;
+        context.selectedStateName = geoValue.geoId;
     }
 } else if (postalAddressData?.stateProvinceGeoId) {
     geoValue = delegator.findByPrimaryKeyCache("Geo", [geoId : postalAddressData.stateProvinceGeoId]);
     if (geoValue) {
-        context.selectedStateName = geoValue.geoName;
+        context.selectedStateName = geoValue.geoId;
     }
 }

Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/editcontactmech.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/editcontactmech.ftl?rev=1326397&r1=1326396&r2=1326397&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/editcontactmech.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/editcontactmech.ftl Sun Apr 15 18:58:17 2012
@@ -50,7 +50,7 @@ under the License.
       <a href='<@o...@ofbizUrl>' class="button">${uiLabelMap.CommonGoBack}</a>
       <a href="javascript:document.editcontactmechform.submit()" class="button">${uiLabelMap.CommonSave}</a>
       <table width="90%" border="0" cellpadding="2" cellspacing="0">
-        <form method="post" action='<@o...@ofbizUrl>' name="editcontactmechform">
+        <form method="post" action='<@o...@ofbizUrl>' name="editcontactmechform" id="editcontactmechform">
         <div>
           <input type='hidden' name='contactMechTypeId' value='${contactMechTypeId}' />
           <#if contactMechPurposeType?exists>
@@ -116,7 +116,7 @@ under the License.
             </table>
           </td>
         </tr>
-        <form method="post" action='<@o...@ofbizUrl>' name="editcontactmechform">
+        <form method="post" action='<@o...@ofbizUrl>' name="editcontactmechform" id="editcontactmechform">
           <div>
           <input type="hidden" name="contactMechId" value='${contactMechId}' />
           <input type="hidden" name="contactMechTypeId" value='${contactMechTypeId}' />
@@ -159,16 +159,14 @@ under the License.
         *</td>
       </tr>
       <tr>
-        <td align="right" valign="top">${uiLabelMap.PartyState}</td>
+        <td align="right" valign="top"> ${uiLabelMap.PartyState} --  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+        Selected\Expected State Name = ${selectedStateName}</td>
         <td>&nbsp;</td>
-        <td>
-          <select name="stateProvinceGeoId" class='selectBox'>
-            <#if postalAddressData.stateProvinceGeoId?exists><option value='${postalAddressData.stateProvinceGeoId}'>${selectedStateName?default(postalAddressData.stateProvinceGeoId)}</option></#if>
-            <option value="">${uiLabelMap.PartyNoState}</option>
-            ${screens.render("component://common/widget/CommonScreens.xml#states")}
+        <td>       
+          <select name="stateProvinceGeoId" id="editcontactmechform_stateProvinceGeoId">
           </select>
-        *</td>
-      </tr>
+        </td>
+      </tr>      
       <tr>
         <td align="right" valign="top">${uiLabelMap.PartyZipCode}</td>
         <td >&nbsp;</td>
@@ -176,15 +174,24 @@ under the License.
           <input type="text" class='inputBox' size="12" maxlength="10" name="postalCode" value="${postalAddressData.postalCode?if_exists}" />
         *</td>
       </tr>
-      <tr>
-        <td align="right" valign="top">${uiLabelMap.CommonCountry}</td>
-        <td>&nbsp;</td>
-        <td>
-          <select name="countryGeoId" class='selectBox'>
-            <#if postalAddressData.countryGeoId?exists><option value='${postalAddressData.countryGeoId}'>${selectedCountryName?default(postalAddressData.countryGeoId)}</option></#if>
-            ${screens.render("component://common/widget/CommonScreens.xml#countries")}
+      <tr>   
+        <td align="right" valign="top">${uiLabelMap.CommonCountry} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+        Postal address geoId ${postalAddress.countryGeoId}</td>
+        <td>&nbsp;</td>      
+        <td>     
+          <select name="countryGeoId" id="editcontactmechform_countryGeoId">
+          ${screens.render("component://common/widget/CommonScreens.xml#countries")}        
+          <#if (postalAddress?exists) && (postalAddress.countryGeoId?exists)>
+            <#assign defaultCountryGeoId = postalAddress.countryGeoId>
+          <#else>
+            <#assign defaultCountryGeoId = Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("general.properties", "country.geo.id.default")>
+          </#if>
+          <option selected="selected" value="${defaultCountryGeoId}">
+          <#assign countryGeo = delegator.findByPrimaryKey("Geo",Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId",defaultCountryGeoId))>
+            ${countryGeo.get("geoName",locale)}
+          </option>
           </select>
-        *</td>
+        </td>
       </tr>
     <#elseif contactMechTypeId = "TELECOM_NUMBER">
       <tr>

Modified: ofbiz/trunk/specialpurpose/ecommerce/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/widget/CommonScreens.xml?rev=1326397&r1=1326396&r2=1326397&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/widget/CommonScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/widget/CommonScreens.xml Sun Apr 15 18:58:17 2012
@@ -63,6 +63,7 @@ under the License.
                 <entity-and list="webAnalyticsConfigs" entity-name="WebAnalyticsConfig">
                     <field-map field-name="webSiteId"/>
                 </entity-and>
+                <set field="layoutSettings.javaScripts[]" value="/images/getDependentDropdownValues.js" global="true" />
             </actions>
             <widgets>
                <section>

Modified: ofbiz/trunk/specialpurpose/ecommerce/widget/CustomerScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/widget/CustomerScreens.xml?rev=1326397&r1=1326396&r2=1326397&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/widget/CustomerScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/widget/CustomerScreens.xml Sun Apr 15 18:58:17 2012
@@ -42,13 +42,29 @@ under the License.
     <screen name="editcontactmech">
         <section>
             <actions>
-                <set field="titleProperty" value="PageTitleEditContactMechanism"/>
                 <script location="component://ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditContactMech.groovy"/>
+                <set field="reqName" from-field="requestName" />
+
+                <set field="dependentForm" value="editcontactmechform"/>
+                <set field="paramKey" value="countryGeoId"/>
+                <set field="mainId" value="countryGeoId"/>
+                <set field="dependentId" value="stateProvinceGeoId"/>
+                <set field="requestName" value="getAssociatedStateList"/>
+                <set field="responseName" value="stateList"/>
+                <set field="dependentKeyName" value="geoId"/>
+                <set field="descName" value="geoName"/>
+                <set field="selectedDependentOption" from-field="selectedStateName" default-value="_none_"/>
+                
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <platform-specific><html><html-template location="component://ecommerce/webapp/ecommerce/customer/editcontactmech.ftl"/></html></platform-specific>
+                        <platform-specific>
+                            <html>
+                                <html-template location="component://common/webcommon/includes/setDependentDropdownValuesJs.ftl"/>                                
+                                <html-template location="component://ecommerce/webapp/ecommerce/customer/editcontactmech.ftl"/>
+                            </html>
+                        </platform-specific>
                     </decorator-section>
                 </decorator-screen>
             </widgets>