Author: nbelaevski
Date: 2010-05-14 17:13:38 -0400 (Fri, 14 May 2010)
New Revision: 17056
Modified:
root/core/trunk/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
root/core/trunk/impl/src/main/resources/META-INF/resources/richfaces.js
root/core/trunk/impl/src/test/resources/javascript/4_0_0.html
Log:
https://jira.jboss.org/jira/browse/RF-8625
Modified: root/core/trunk/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
===================================================================
--- root/core/trunk/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2010-05-14
17:43:17 UTC (rev 17055)
+++ root/core/trunk/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2010-05-14
21:13:38 UTC (rev 17056)
@@ -51,6 +51,8 @@
private static final Logger LOG = RichfacesLogger.UTIL.getLogger();
+ //there is the same pattern in client-side code:
+ //richfaces.js - RichFaces.escapeCSSMetachars(s)
private static final char[] CSS_SELECTOR_CHARS_TO_ESCAPE =
createSortedCharArray("#;&,.+*~':\"!^$[]()=>|/");
/**
Modified: root/core/trunk/impl/src/main/resources/META-INF/resources/richfaces.js
===================================================================
--- root/core/trunk/impl/src/main/resources/META-INF/resources/richfaces.js 2010-05-14
17:43:17 UTC (rev 17055)
+++ root/core/trunk/impl/src/main/resources/META-INF/resources/richfaces.js 2010-05-14
21:13:38 UTC (rev 17056)
@@ -97,6 +97,23 @@
return out;
};
+ //there is the same pattern in server-side code:
+ //org.ajax4jsf.javascript.ScriptUtils.escapeCSSMetachars(String)
+ var CSS_METACHARS_PATTERN = /([#;&,.+*~':"!^$[\]()=>|\/])/g;
+
+ /**
+ * Escapes CSS meta-characters in string according to
+ * <a
href="http://api.jquery.com/category/selectors/">jQuery
selectors</a> document.
+ *
+ * @param s - string to escape meta-characters in
+ * @return string with meta-characters escaped
+ */
+ richfaces.escapeCSSMetachars = function(s) {
+ //TODO nick - cache results
+
+ return s.replace(CSS_METACHARS_PATTERN, "\\$1");
+ };
+
richfaces.log = (function(jQuery) {
var LOG_LEVELS = {'debug': 1, 'info': 2, 'warn': 3,
'error': 4};
var LOG_LEVEL_COLORS = {'debug': 'darkblue', 'info':
'blue', 'warn': 'gold', 'error': 'red'};
Modified: root/core/trunk/impl/src/test/resources/javascript/4_0_0.html
===================================================================
--- root/core/trunk/impl/src/test/resources/javascript/4_0_0.html 2010-05-14 17:43:17 UTC
(rev 17055)
+++ root/core/trunk/impl/src/test/resources/javascript/4_0_0.html 2010-05-14 21:13:38 UTC
(rev 17056)
@@ -155,6 +155,17 @@
}
RichFaces.ajax(ajaxSource, ajaxEvent, ajaxOptions);
});
+
+ test("RichFaces.escapeCSSMetachars test", function() {
+ expect(6);
+
+ equals("", RichFaces.escapeCSSMetachars(""));
+ equals("test", RichFaces.escapeCSSMetachars("test"));
+ equals("test\\.string",
RichFaces.escapeCSSMetachars("test.string"));
+ equals("test\\\"string",
RichFaces.escapeCSSMetachars("test\"string"));
+ equals("some\\.test\\'string",
RichFaces.escapeCSSMetachars("some.test'string"));
+ equals("\\#table\\[header\\]",
RichFaces.escapeCSSMetachars("#table[header]"));
+ });
</script>
</head>
<body>