svn commit: r959951 - in /ofbiz/trunk/applications/product: script/org/ofbiz/product/category/CategoryServices.xml servicedef/services_view.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r959951 - in /ofbiz/trunk/applications/product: script/org/ofbiz/product/category/CategoryServices.xml servicedef/services_view.xml

jleroux@apache.org
Author: jleroux
Date: Fri Jul  2 11:12:36 2010
New Revision: 959951

URL: http://svn.apache.org/viewvc?rev=959951&view=rev
Log:
New getAssociatedProductsList service to help dynamically populate a products dropdown given a product category id from a change in another dropdown, possibly sorted on sequenceNum.
As they are no such examples in OFBiz yet, I will later create an example of use in Widget form Examples which of course needs some javascript (it's for now based on the same than for country/states)

At term I would like to generalize and have it embedded in OFBiz widgets, will see even later...
I will also consider Anil's proposition: https://code.google.com/p/ue-protoui/source/browse/trunk/src/DependentSelect.js

Modified:
    ofbiz/trunk/applications/product/script/org/ofbiz/product/category/CategoryServices.xml
    ofbiz/trunk/applications/product/servicedef/services_view.xml

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/category/CategoryServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/category/CategoryServices.xml?rev=959951&r1=959950&r2=959951&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/category/CategoryServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/category/CategoryServices.xml Fri Jul  2 11:12:36 2010
@@ -840,4 +840,29 @@ under the License.
         <field-to-result field="hasPermission"/>
         <field-to-result field="failMessage"/>
     </simple-method>
+
+    <!-- To help dynamically populate a products dropdown given a product category id from a change in another dropdown, possibly sorted on sequenceNum -->    
+    <simple-method method-name="getAssociatedProductsList" short-description="Set the product options for selected product category" login-required="false">
+        <set field="parameters.categoryId" from-field="parameters.productCategoryId"/>
+        <set-service-fields service-name="getProductCategoryMembers" map="parameters" to-map="getProductCategoryMembersMap"/>        
+        <call-service service-name="getProductCategoryMembers" in-map-name="getProductCategoryMembersMap">
+            <result-to-field result-name="categoryMembers" field="productsList"/>
+        </call-service>
+        <order-map-list list="productsList">
+            <order-by field-name="sequenceNum"/>
+        </order-map-list>
+        <iterate list="productsList" entry="productMember">
+            <entity-one entity-name="Product" value-field="product">
+                <field-map field-name="productId" from-field="productMember.productId"/>
+            </entity-one>
+            <set field="productName" value="${product.internalName}: ${product.productId}"/>
+            <field-to-list list="products" field="productName"/>
+        </iterate>
+        <if-empty field="products">
+            <set field="noOption" value="No products: _NA_"/>
+            <field-to-list list="products" field="noOption"/>
+        </if-empty>
+        <field-to-result field="products"/>
+    </simple-method>
+    
 </simple-methods>

Modified: ofbiz/trunk/applications/product/servicedef/services_view.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_view.xml?rev=959951&r1=959950&r2=959951&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_view.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_view.xml Fri Jul  2 11:12:36 2010
@@ -116,6 +116,13 @@ under the License.
         <attribute name="category" type="org.ofbiz.entity.GenericValue" mode="OUT"/>
         <attribute name="categoryMembers" type="java.util.Collection" mode="OUT"/>
     </service>
+    
+    <service name="getAssociatedProductsList" engine="simple" auth="false"
+        location="component://product/script/org/ofbiz/product/category/CategoryServices.xml" invoke="getAssociatedProductsList">
+        <attribute name="productCategoryId" mode="IN" type="String" optional="false"/>
+        <attribute name="products" mode="OUT" type="java.util.List"/>
+    </service>
+    
     <service name="getPreviousNextProducts" engine="java"
         location="org.ofbiz.product.category.CategoryServices" invoke="getPreviousNextProducts">
         <description>Gets the previous and next product Ids.</description>