svn commit: r1704082 - in /ofbiz/trunk: applications/order/widget/ordermgr/CustRequestScreens.xml framework/common/webcommon/includes/setMultipleSelectJsList.ftl

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

svn commit: r1704082 - in /ofbiz/trunk: applications/order/widget/ordermgr/CustRequestScreens.xml framework/common/webcommon/includes/setMultipleSelectJsList.ftl

jleroux@apache.org
Author: jleroux
Date: Sat Sep 19 19:53:47 2015
New Revision: 1704082

URL: http://svn.apache.org/viewvc?rev=1704082&view=rev
Log:
A patch from Gil Portenseigne for "multiple select dropdown listbox shows only one entry" https://issues.apache.org/jira/browse/OFBIZ-6627

Wai reported:
Use this link https://localhost:8443/ordermgr/control/FindRequest
Notice the customer request type id, status id, etc

This patch extend existing asm dropdown implementation to allow several asm dropdown in the same form using a simple ftl.
Find Request use the new ftl in this example.


Added:
    ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl   (with props)
Modified:
    ofbiz/trunk/applications/order/widget/ordermgr/CustRequestScreens.xml

Modified: ofbiz/trunk/applications/order/widget/ordermgr/CustRequestScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/CustRequestScreens.xml?rev=1704082&r1=1704081&r2=1704082&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/widget/ordermgr/CustRequestScreens.xml (original)
+++ ofbiz/trunk/applications/order/widget/ordermgr/CustRequestScreens.xml Sat Sep 19 19:53:47 2015
@@ -26,6 +26,24 @@ under the License.
                 <set field="titleProperty" value="OrderFindRequests"/>
                 <set field="headerItem" value="request"/>
                 <set field="entityName" value="CustRequest"/>
+                <set field="asm_multipleSelectForm" value="FindRequests"/>
+                <set field="asm_asmListItemPercentOfForm" value="110"/>
+                <set field="custRequestType.asm_multipleSelect"  value="FindRequests_custRequestTypeId"/>
+                <set field="custRequestType.asm_sortable" value="true"/>
+                <set field="custRequestType.asm_title" value=" "/>
+                <set field="statusId.asm_multipleSelect"  value="FindRequests_statusId"/>
+                <set field="statusId.asm_sortable" value="true"/>
+                <set field="statusId.asm_title" value=" "/>
+                <set field="productStoreId.asm_multipleSelect"  value="FindRequests_productStoreId"/>
+                <set field="productStoreId.asm_sortable" value="true"/>
+                <set field="productStoreId.asm_title" value=" "/>
+                <set field="salesChannelEnumId.asm_multipleSelect"  value="FindRequests_salesChannelEnumId"/>
+                <set field="salesChannelEnumId.asm_sortable" value="true"/>
+                <set field="salesChannelEnumId.asm_title" value=" "/>
+                <set field="asm_listField[]" from-field="custRequestType"/>
+                <set field="asm_listField[]" from-field="statusId"/>
+                <set field="asm_listField[]" from-field="productStoreId"/>
+                <set field="asm_listField[]" from-field="salesChannelEnumId"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
@@ -37,6 +55,7 @@ under the License.
                                 </container>
                             </decorator-section>
                             <decorator-section name="search-options">
+                                <platform-specific><html><html-template location="component://common/webcommon/includes/setMultipleSelectJsList.ftl"/></html></platform-specific>
                                 <include-form name="FindRequests" location="component://order/widget/ordermgr/CustRequestForms.xml"/>
                             </decorator-section>
                             <decorator-section name="search-results">

Added: ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl?rev=1704082&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl (added)
+++ ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl Sat Sep 19 19:53:47 2015
@@ -0,0 +1,66 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<#if asm_listField??> <#-- we check only this var and suppose the others are also present -->
+    <#list asm_listField as row>
+        <#if row.asm_multipleSelect??>
+        <script type="text/javascript">
+        jQuery(document).ready(function() {
+            multiple = jQuery("#${row.asm_multipleSelect!}");
+        
+          <#if row.asm_title??>
+            // set the dropdown "title" if??
+            multiple.attr('title', '${row.asm_title}');
+          </#if>
+          
+            // use asmSelect in Widget Forms
+            multiple.asmSelect({
+              addItemTarget: 'top',
+              sortable: ${row.asm_sortable!'false'},
+              removeLabel: '${uiLabelMap.CommonRemove!'Remove'}'
+              //, debugMode: true
+            });
+              
+          <#if row.asm_relatedField??> <#-- can be used without related field -->
+            // track possible relatedField changes
+            // on initial focus (focus-field-name must be asm_relatedField) or if the field value changes, select related multi values.
+            typeValue = jQuery('#${row.asm_typeField}').val();
+            jQuery("#${row.asm_relatedField}").one('focus', function() {
+              selectMultipleRelatedValues('${row.asm_requestName}', '${row.asm_paramKey}', '${row.asm_relatedField}', '${row.asm_multipleSelect}', '${row.asm_type}', typeValue, '${row.asm_responseName}');
+            });
+            jQuery("#${row.asm_relatedField}").change(function() {
+              selectMultipleRelatedValues('${row.asm_requestName}', '${row.asm_paramKey}', '${row.asm_relatedField}', '${row.asm_multipleSelect}', '${row.asm_type}', typeValue, '${row.asm_responseName}');
+            });
+            selectMultipleRelatedValues('${row.asm_requestName}', '${row.asm_paramKey}', '${row.asm_relatedField}', '${row.asm_multipleSelect}', '${row.asm_type}', typeValue, '${row.asm_responseName}');
+          </#if>
+          });  
+        </script>
+        
+        </#if>
+    </#list>
+    <style type="text/css">
+    #${asm_multipleSelectForm} {
+        width: ${asm_formSize!700}px;
+        position: relative;
+    }
+    
+    .asmListItem {
+      width: ${asm_asmListItemPercentOfForm!95}%;
+    }
+    </style>
+</#if>

Propchange: ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/common/webcommon/includes/setMultipleSelectJsList.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain