You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gm...@apache.org on 2006/08/07 21:10:28 UTC

svn commit: r429434 - in /myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax: SuggestAjaxRenderer.java inputsuggestajax/InputSuggestAjaxRenderer.java tablesuggestajax/TableSuggestAjaxRenderer.java

Author: gmuellan
Date: Mon Aug  7 12:10:27 2006
New Revision: 429434

URL: http://svn.apache.org/viewvc?rev=429434&view=rev
Log:
Applied patches for TOMAHAWK-468 and TOMAHAWK-236. Thanks to Peter Mahoney.

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/SuggestAjaxRenderer.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxRenderer.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxRenderer.java

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/SuggestAjaxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/SuggestAjaxRenderer.java?rev=429434&r1=429433&r2=429434&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/SuggestAjaxRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/SuggestAjaxRenderer.java Mon Aug  7 12:10:27 2006
@@ -85,4 +85,9 @@
     {
         super.decode(facesContext, component);
     }
+
+     protected String addQueryString(String url, String queryString)
+     {    	
+   	    return url + (url.indexOf("?") > 0 ? "&" : "?") + queryString;
+     }
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxRenderer.java?rev=429434&r1=429433&r2=429434&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxRenderer.java Mon Aug  7 12:10:27 2006
@@ -25,6 +25,7 @@
 import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
 import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
 import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.util.UnicodeEncoder;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -77,8 +78,8 @@
 
         String charset = (inputSuggestAjax.getCharset() != null ? inputSuggestAjax.getCharset() : "");
 
-        String ajaxUrl = context.getExternalContext().encodeActionURL(actionURL+"?affectedAjaxComponent=" + clientId +
-                "&charset=" + charset + "&" + clientId + "=%{searchString}");
+        String ajaxUrl = context.getExternalContext().encodeActionURL(addQueryString(actionURL, "affectedAjaxComponent=" + clientId +
+                "&charset=" + charset + "&" + clientId + "=%{searchString}"));
 
         ResponseWriter out = context.getResponseWriter();
 
@@ -109,12 +110,14 @@
         }
         out.endElement(HTML.INPUT_ELEM);
 
+        String escapedValue = escapeQuotes(value);
+
         out.startElement(HTML.SCRIPT_ELEM, null);
         out.writeAttribute(HTML.TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
         out.write("dojo.event.connect(window, \"onload\", function(evt) {\n"
                     + "var comboWidget = dojo.widget.byId(\""+ clientId +"\");\n"
-                    + "comboWidget.textInputNode.value = \""+ value +"\";\n"
-                    + "comboWidget.comboBoxValue.value = \""+ value +"\";\n");
+                    + "comboWidget.textInputNode.value = \""+ escapedValue +"\";\n"
+                    + "comboWidget.comboBoxValue.value = \""+ escapedValue +"\";\n");
         out.write("});\n");
         out.endElement(HTML.SCRIPT_ELEM);
     }
@@ -138,8 +141,10 @@
 
             Object item = suggestedItem.next();
 
-            buf.append("[\"").append(item.toString()).append("\",\"")
-                .append(item.toString().substring(0, 1).toUpperCase()).append("\"],");
+            String prefix = escapeQuotes(UnicodeEncoder.encode(item.toString()).substring(0, 1)).toUpperCase();
+
+            buf.append("[\"").append(UnicodeEncoder.encode(escapeQuotes(item.toString()))).append("\",\"")
+               .append(prefix).append("\"],");
         }
 
         buf.append("];");
@@ -150,6 +155,11 @@
     public void decode(FacesContext facesContext, UIComponent component)
     {
         super.decode(facesContext, component);
+    }
+
+    private String escapeQuotes(String input)
+    {
+   	    return input != null ? input.replaceAll("\"", "\\\\\"") : "";
     }
 
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxRenderer.java?rev=429434&r1=429433&r2=429434&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxRenderer.java Mon Aug  7 12:10:27 2006
@@ -119,7 +119,7 @@
         String clientId = component.getClientId(context);
         String actionURL = getActionUrl(context);
 
-        String ajaxUrl = context.getExternalContext().encodeActionURL(actionURL+"?affectedAjaxComponent=" + clientId);
+        String ajaxUrl = context.getExternalContext().encodeActionURL(addQueryString(actionURL, "affectedAjaxComponent=" + clientId));
 
         ResponseWriter out = context.getResponseWriter();