You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Olivier Heintz <ho...@nereide.biz> on 2013/06/13 22:51:07 UTC

Fwd: svn ommit: r1488315 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelForm.java

Adrian,

The method createAjaxParamsFromUpdateAreas added in this commit return

sb.toString()
and not FlexibleStringExpander.expandString(sb.toString(), context, locale);

like the other method createAjaxParamsFromUpdateAreas, it generate error 
when ${} is used for area-id

is it possible to change ?
Do you want I create a Jira ?

Olivier

-------- Message original --------
Sujet: 	svn commit: r1488315 - in /ofbiz/trunk/framework/widget: 
dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java 
src/org/ofbiz/widget/form/ModelForm.java
Date : 	Fri, 31 May 2013 17:07:01 -0000
De : 	adrianc@apache.org
Répondre à : 	dev@ofbiz.apache.org
Pour : 	commits@ofbiz.apache.org



Author: adrianc
Date: Fri May 31 17:07:00 2013
New Revision: 1488315

URL: http://svn.apache.org/r1488315
Log:
Fixed some bugs in the form widget column sorting code:

1. URL parameters were being mangled by clunky string manipulation code.
2. The sort column logic was piggy-backed on the pagination event. I created a new choice for the form widget <on-event-update-area> element - "sort-column" - so column sort events can update their own areas.
3. The parameter name for the sort column was hard-coded, so column sorting in multiple lists on the same screen would not work. I added a new <form> attribute - "sort-field-parameter-name" - so each list can be sorted separately.

Modified:
     ofbiz/trunk/framework/widget/dtd/widget-form.xsd
     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java


Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1488315&r1=1488314&r2=1488315&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Fri May 31 17:07:00 2013
  
+    /** Create an ajaxXxxx JavaScript CSV string from a list of UpdateArea objects. See
+     * <code>selectall.js</code>.
+     * @param updateAreas
+     * @param extraParams Renderer-supplied additional target parameters
+     * @param context
+     * @return Parameter string or empty string if no UpdateArea objects were found
+     */
+    private String createAjaxParamsFromUpdateAreas(List<ModelForm.UpdateArea> updateAreas, Map<String, Object> extraParams, String anchor, Map<String, ? extends Object> context) {
+        StringBuilder sb = new StringBuilder();
+        Iterator<ModelForm.UpdateArea> updateAreaIter = updateAreas.iterator();
+        while (updateAreaIter.hasNext()) {
+            ModelForm.UpdateArea updateArea = updateAreaIter.next();
+            sb.append(updateArea.getAreaId()).append(",");
+            String ajaxTarget = updateArea.getAreaTarget(context);
+            String urlPath = UtilHttp.removeQueryStringFromTarget(ajaxTarget);
+            sb.append(this.rh.makeLink(this.request, this.response,urlPath)).append(",");
+            String queryString = UtilHttp.getQueryStringFromTarget(ajaxTarget).replace("?", "");
+            Map<String, Object> parameters = UtilHttp.getQueryStringOnlyParameterMap(queryString);
+            Map<String, Object> ctx = UtilGenerics.checkMap(context);
+            Map<String, Object> updateParams = UtilGenerics.checkMap(updateArea.getParameterMap(ctx));
+            parameters.putAll(updateParams);
+            UtilHttp.canonicalizeParameterMap(parameters);
+            parameters.putAll(extraParams);
+            Iterator<Map.Entry<String, Object>> paramIter = parameters.entrySet().iterator();
+            while (paramIter.hasNext()) {
+                Map.Entry<String, Object> entry = paramIter.next();
+                sb.append(entry.getKey()).append("=").append(entry.getValue());
+                if (paramIter.hasNext()) {
+                    sb.append("&");
+                }
+            }
+            if (anchor != null) {
+                sb.append("#").append(anchor);
+            }
+            if (updateAreaIter.hasNext()) {
+                sb.append(",");
+            }
+        }
+        return sb.toString();
      }
  
      /** Create an ajaxXxxx JavaScript CSV string from a list of UpdateArea objects. See




Re: Fwd: svn ommit: r1488315 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelForm.java

Posted by lemine youssef <yo...@nereide.biz>.
Hi Adrian,

The Jira is created with a patch : 
https://issues.apache.org/jira/browse/OFBIZ-5227

Thanks.

Le 14. 06. 13 06:01, Adrian Crum a écrit :
> Yes, we can change it. Please create a Jira issue for it.
>
> -Adrian

-- 
Youssef Khaye
Consultant technico-fonctionnel
Tel : 0974533612(poste 112)
Mob : 0652292638
Société Néréide
3b Les Isles 37270 Veretz
www.nereide.biz


Re: Fwd: svn ommit: r1488315 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelForm.java

Posted by Adrian Crum <ad...@sandglass-software.com>.
Yes, we can change it. Please create a Jira issue for it.

-Adrian

On 6/13/2013 9:51 PM, Olivier Heintz wrote:
> Adrian,
>
> The method createAjaxParamsFromUpdateAreas added in this commit return
>
> sb.toString()
> and not FlexibleStringExpander.expandString(sb.toString(), context, 
> locale);
>
> like the other method createAjaxParamsFromUpdateAreas, it generate 
> error when ${} is used for area-id
>
> is it possible to change ?
> Do you want I create a Jira ?
>
> Olivier
>
> -------- Message original --------
> Sujet:     svn commit: r1488315 - in /ofbiz/trunk/framework/widget: 
> dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java 
> src/org/ofbiz/widget/form/ModelForm.java
> Date :     Fri, 31 May 2013 17:07:01 -0000
> De :     adrianc@apache.org
> Répondre à :     dev@ofbiz.apache.org
> Pour :     commits@ofbiz.apache.org
>
>
>
> Author: adrianc
> Date: Fri May 31 17:07:00 2013
> New Revision: 1488315
>
> URL: http://svn.apache.org/r1488315
> Log:
> Fixed some bugs in the form widget column sorting code:
>
> 1. URL parameters were being mangled by clunky string manipulation code.
> 2. The sort column logic was piggy-backed on the pagination event. I 
> created a new choice for the form widget <on-event-update-area> 
> element - "sort-column" - so column sort events can update their own 
> areas.
> 3. The parameter name for the sort column was hard-coded, so column 
> sorting in multiple lists on the same screen would not work. I added a 
> new <form> attribute - "sort-field-parameter-name" - so each list can 
> be sorted separately.
>
> Modified:
>     ofbiz/trunk/framework/widget/dtd/widget-form.xsd
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
>
>
> Modified: 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1488315&r1=1488314&r2=1488315&view=diff
> ============================================================================== 
>
> --- 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java 
> (original)
> +++ 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java 
> Fri May 31 17:07:00 2013
>
> +    /** Create an ajaxXxxx JavaScript CSV string from a list of 
> UpdateArea objects. See
> +     * <code>selectall.js</code>.
> +     * @param updateAreas
> +     * @param extraParams Renderer-supplied additional target parameters
> +     * @param context
> +     * @return Parameter string or empty string if no UpdateArea 
> objects were found
> +     */
> +    private String 
> createAjaxParamsFromUpdateAreas(List<ModelForm.UpdateArea> 
> updateAreas, Map<String, Object> extraParams, String anchor, 
> Map<String, ? extends Object> context) {
> +        StringBuilder sb = new StringBuilder();
> +        Iterator<ModelForm.UpdateArea> updateAreaIter = 
> updateAreas.iterator();
> +        while (updateAreaIter.hasNext()) {
> +            ModelForm.UpdateArea updateArea = updateAreaIter.next();
> +            sb.append(updateArea.getAreaId()).append(",");
> +            String ajaxTarget = updateArea.getAreaTarget(context);
> +            String urlPath = 
> UtilHttp.removeQueryStringFromTarget(ajaxTarget);
> +            sb.append(this.rh.makeLink(this.request, 
> this.response,urlPath)).append(",");
> +            String queryString = 
> UtilHttp.getQueryStringFromTarget(ajaxTarget).replace("?", "");
> +            Map<String, Object> parameters = 
> UtilHttp.getQueryStringOnlyParameterMap(queryString);
> +            Map<String, Object> ctx = UtilGenerics.checkMap(context);
> +            Map<String, Object> updateParams = 
> UtilGenerics.checkMap(updateArea.getParameterMap(ctx));
> +            parameters.putAll(updateParams);
> +            UtilHttp.canonicalizeParameterMap(parameters);
> +            parameters.putAll(extraParams);
> +            Iterator<Map.Entry<String, Object>> paramIter = 
> parameters.entrySet().iterator();
> +            while (paramIter.hasNext()) {
> +                Map.Entry<String, Object> entry = paramIter.next();
> + sb.append(entry.getKey()).append("=").append(entry.getValue());
> +                if (paramIter.hasNext()) {
> +                    sb.append("&");
> +                }
> +            }
> +            if (anchor != null) {
> +                sb.append("#").append(anchor);
> +            }
> +            if (updateAreaIter.hasNext()) {
> +                sb.append(",");
> +            }
> +        }
> +        return sb.toString();
>      }
>
>      /** Create an ajaxXxxx JavaScript CSV string from a list of 
> UpdateArea objects. See
>
>
>