Author: jacopoc
Date: Fri Oct  6 01:44:28 2006
New Revision: 453530

URL: http://svn.apache.org/viewvc?view=rev&rev=453530
Log:
Fixed bug reported in OFBIZ-222: Prev/Next links in multi forms are messed up 
after form is submitted.
This was caused by the presence in the links of the parameters submitted by the 
multi form.
I've fixed implementing a new method that takes as input the parameters map and 
returns as output a map without the multi-form parameters.

Modified:
    
incubator/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java
    
incubator/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java

Modified: 
incubator/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java?view=diff&rev=453530&r1=453529&r2=453530
==============================================================================
--- 
incubator/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java 
(original)
+++ 
incubator/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java 
Fri Oct  6 01:44:28 2006
@@ -760,6 +760,25 @@
     }
 
     /**
+     * Returns a new map containing all the parameters from the input map 
except for the
+     * multi form parameters (usually named according to the ${param}_o_N 
notation).
+     */
+    public static Map removeMultiFormParameters(Map parameters) {
+        FastMap filteredParameters = new FastMap();
+        Iterator keys = parameters.keySet().iterator();
+        while (keys.hasNext()) {
+            String key = (String) keys.next();
+
+            if (key != null && (key.indexOf(MULTI_ROW_DELIMITER) != -1 || 
key.indexOf("_useRowSubmit") != -1 || key.indexOf("_rowCount") != -1)) {
+                continue;
+            }
+
+            filteredParameters.put(key, parameters.get(key));
+        }
+        return filteredParameters;
+    }
+
+    /**
      * Utility to make a composite parameter from the given prefix and suffix.
      * The prefix should be a regular paramter name such as meetingDate. The
      * suffix is the composite field, such as the hour of the meeting. The

Modified: 
incubator/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?view=diff&rev=453530&r1=453529&r2=453530
==============================================================================
--- 
incubator/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
 (original)
+++ 
incubator/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
 Fri Oct  6 01:44:28 2006
@@ -1114,6 +1114,10 @@
             queryString = (String)context.get("queryString");
         } else {
             Map inputFields = (Map)context.get("requestParameters");
+            // strip out any multi form fields if the form is of type multi
+            if (modelForm.getType().equals("multi")) {
+                inputFields = UtilHttp.removeMultiFormParameters(inputFields);
+            }
             queryString = UtilHttp.urlEncodeArgs(inputFields);
         }
         context.put("_QBESTRING_", queryString);


Reply via email to