hlship 2005/08/19 06:28:17
Modified: framework/src/java/org/apache/tapestry/form Form.js
FormSupportImpl.java
. status.xml
framework/src/java/org/apache/tapestry/form/translator
AbstractTranslator.java NumberTranslator.java
NumberTranslator.js
framework/src/test/org/apache/tapestry/form/validator
TestMax.java TestMinLength.java TestRequired.java
TestPattern.java TestMaxLength.java TestMin.java
TestEmail.java
framework/src/java/org/apache/tapestry/form/validator
MaxLength.java Email.java Min.java Pattern.java
StringValidator.js Required.java RegExValidator.js
Max.java MinLength.java NumberValidator.js
framework/src/java/org/apache/tapestry TapestryUtils.java
framework/src/java/org/apache/tapestry/wml
GoFormSupportImpl.java
framework/src/test/org/apache/tapestry/form/translator
TestStringTranslator.java TestNumberTranslator.java
TestDateTranslator.java
framework/src/test/org/apache/tapestry
TestTapestryUtils.java
framework/src/test/org/apache/tapestry/form
TestFormSupport.java
FormComponentContributorTestCase.java
Removed: framework/src/java/org/apache/tapestry/form/validator
ValidatorUtils.java
Log:
TAPESTRY-395: Rename framework javascript functions to avoid potential name
collisions
Revision Changes Path
1.9 +8 -4
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/Form.js
Index: Form.js
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/Form.js,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Form.js 13 Aug 2005 15:02:34 -0000 1.8
+++ Form.js 19 Aug 2005 13:28:16 -0000 1.9
@@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// Define a Tapestry object to contain most functions.
+
+var Tapestry = new Object();
+
function default_invalid_field_handler(event, field, message)
{
// Temporary, while all the event logic is getting munged together
@@ -19,7 +23,7 @@
if (!event.abort && !field.disabled)
{
- focus(field);
+ Tapestry.set_focus(field);
window.alert(message);
@@ -28,7 +32,7 @@
}
}
-function focus(field)
+Tapestry.set_focus = function (field)
{
field.focus();
@@ -36,12 +40,12 @@
field.select();
}
-function trim(field)
+Tapestry.trim_field_value = function(field)
{
field.value = field.value.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
-function require(event, field, message)
+Tapestry.require_field = function(event, field, message)
{
if (field.value.length == 0)
event.invalid_field(field, message);
1.11 +12 -15
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
Index: FormSupportImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- FormSupportImpl.java 21 Jul 2005 13:17:55 -0000 1.10
+++ FormSupportImpl.java 19 Aug 2005 13:28:16 -0000 1.11
@@ -286,7 +286,7 @@
return buffer.toString();
}
- private void emitEventHandlers(String eventManager)
+ private void emitEventHandlers()
{
if (_events == null || _events.isEmpty())
return;
@@ -301,8 +301,9 @@
FormEventType type = (FormEventType) entry.getKey();
Object value = entry.getValue();
- buffer.append(eventManager);
- buffer.append(".");
+ buffer.append("document.");
+ buffer.append(_form.getName());
+ buffer.append(".events.");
buffer.append(type.getAddListenerMethodName());
// Build a composite function in-place
@@ -443,7 +444,7 @@
public void render(String method, IRender informalParametersRenderer,
ILink link)
{
- String eventManager = emitEventManagerInitialization();
+ emitEventManagerInitialization();
// Convert the link's query parameters into a series of
// hidden field values (that will be rendered later).
@@ -470,7 +471,7 @@
// Write out event handlers collected during the rendering.
- emitEventHandlers(eventManager);
+ emitEventHandlers();
informalParametersRenderer.render(_writer, _cycle);
@@ -500,8 +501,8 @@
if (!_form.getFocus() || _cycle.getAttribute(FIELD_FOCUS_ATTRIBUTE)
!= null)
return;
- _pageRenderSupport.addInitializationScript("focus(document." +
_form.getName() + "."
- + field + ");");
+
_pageRenderSupport.addInitializationScript("Tapestry.set_focus(document." +
_form.getName()
+ + "." + field + ");");
_cycle.setAttribute(FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
}
@@ -510,21 +511,17 @@
* Pre-renders the form, setting up some client-side form support.
Returns the name of the
* client-side form event manager variable.
*/
- protected String emitEventManagerInitialization()
+ protected void emitEventManagerInitialization()
{
if (_pageRenderSupport == null)
- return null;
+ return;
_pageRenderSupport.addExternalScript(_script);
String formName = _form.getName();
- String eventManager = formName + "_events";
-
- _pageRenderSupport.addInitializationScript("var " + eventManager
- + " = new FormEventManager(document." + formName + ");");
-
- return eventManager;
+ _pageRenderSupport.addInitializationScript("new
FormEventManager(document." + formName
+ + ");");
}
public String rewind()
1.219 +1 -0 jakarta-tapestry/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/jakarta-tapestry/status.xml,v
retrieving revision 1.218
retrieving revision 1.219
diff -u -r1.218 -r1.219
--- status.xml 18 Aug 2005 21:56:06 -0000 1.218
+++ status.xml 19 Aug 2005 13:28:16 -0000 1.219
@@ -67,6 +67,7 @@
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-568">Engine services
should use getName() when constructing thier parameter maps so that they may be
more easily subclassed and extended</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-566">Annotations jar
on classpath breaks Tapestry if not running on JDK 1.5</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-563">NumberValidator
should allow a special case for rendering zero</action>
+ <action type="fix" dev="HLS" fixes-bug="TAPESTRY-395">Rename framework
javascript functions to avoid potential name collisions</action>
</release>
<release version="4.0-beta-4" date="Aug 10 2005">
<action type="fix" dev="HLS">Add getComponent() method to
IComponent.</action>
1.6 +1 -1
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/AbstractTranslator.java
Index: AbstractTranslator.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/AbstractTranslator.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AbstractTranslator.java 18 Aug 2005 21:56:06 -0000 1.5
+++ AbstractTranslator.java 19 Aug 2005 13:28:16 -0000 1.6
@@ -108,7 +108,7 @@
super.renderContribution(writer, cycle, context, field);
if (_trim)
- context.addSubmitListener("trim(" + context.getFieldDOM() + ")");
+ context.addSubmitListener("function (event) {
Tapestry.trim_field_value(" + context.getFieldDOM() + "); }");
}
public boolean isTrim()
1.9 +4 -8
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
Index: NumberTranslator.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- NumberTranslator.java 18 Aug 2005 21:56:06 -0000 1.8
+++ NumberTranslator.java 19 Aug 2005 13:28:16 -0000 1.9
@@ -20,9 +20,9 @@
import java.util.Locale;
import org.apache.hivemind.util.PropertyUtils;
-import org.apache.hivemind.util.StringUtils;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.valid.ValidationConstraint;
@@ -122,14 +122,10 @@
{
super.renderContribution(writer, cycle, context, field);
- String message = buildMessage(context, field, getMessageKey());
+ String message = TapestryUtils.enquote(buildMessage(context, field,
getMessageKey()));
- // Escape backslashes and single quotes in the message
- message = StringUtils.replace(message, "\\", "\\\\");
- message = StringUtils.replace(message, "'", "\\'");
-
- context.addSubmitListener("validate_number(event, " +
context.getFieldDOM() + ", '"
- + message + "')");
+ context.addSubmitListener("function(event) {
Tapestry.validate_number(event, "
+ + context.getFieldDOM() + ", " + message + "); }");
}
/**
1.3 +4 -2
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.js
Index: NumberTranslator.js
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.js,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NumberTranslator.js 16 Jun 2005 18:27:11 -0000 1.2
+++ NumberTranslator.js 19 Aug 2005 13:28:16 -0000 1.3
@@ -12,8 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-function validate_number(event, field, message)
+Tapestry.validate_number = function(event, field, message)
{
+ if (field.value == "") return;
+
if (isNaN(field.value))
- return handle_invalid_field(event, field, message)
+ event.invalid_field(field, message)
}
1.3 +2 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMax.java
Index: TestMax.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMax.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestMax.java 8 Aug 2005 17:23:14 -0000 1.2
+++ TestMax.java 19 Aug 2005 13:28:16 -0000 1.3
@@ -111,7 +111,7 @@
contextc.setReturnValue("document.myform.myfield");
context
- .addSubmitListener("function(event) {
validate_max_number(event, document.myform.myfield, 20.0, 'default message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_max_number(event, document.myform.myfield, 20.0, 'default
message'); }");
replayControls();
@@ -144,7 +144,7 @@
contextc.setReturnValue("document.myform.myfield");
context
- .addSubmitListener("function(event) {
validate_max_number(event, document.myform.myfield, 20.0, 'custom\\\\message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_max_number(event, document.myform.myfield, 20.0,
'custom\\\\message'); }");
replayControls();
1.5 +2 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMinLength.java
Index: TestMinLength.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMinLength.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TestMinLength.java 9 Aug 2005 21:35:52 -0000 1.4
+++ TestMinLength.java 19 Aug 2005 13:28:16 -0000 1.5
@@ -110,7 +110,7 @@
{ new Integer(20), "My Field" }, "default message");
context
- .addSubmitListener("function(event) {
validate_min_length(event, document.myform.myfield, 20, 'default message'); }");
+ .addSubmitListener("function(event) {
Tapestry.validate_min_length(event, document.myform.myfield, 20, 'default
message'); }");
replayControls();
@@ -143,7 +143,7 @@
"custom\\message");
context
- .addSubmitListener("function(event) {
validate_min_length(event, document.myform.myfield, 25, 'custom\\\\message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_min_length(event, document.myform.myfield, 25,
'custom\\\\message'); }");
replayControls();
1.8 +1 -1
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestRequired.java
Index: TestRequired.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestRequired.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestRequired.java 10 Aug 2005 06:02:51 -0000 1.7
+++ TestRequired.java 19 Aug 2005 13:28:16 -0000 1.8
@@ -179,7 +179,7 @@
"Default\\Message for Fred.");
context
- .addSubmitListener("function(event) { require(event,
document.fred.barney, 'Default\\\\Message for Fred.'); }");
+ .addSubmitListener("function(event) {
Tapestry.require_field(event, document.fred.barney, 'Default\\\\Message for
Fred.'); }");
replayControls();
1.3 +2 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestPattern.java
Index: TestPattern.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestPattern.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestPattern.java 8 Aug 2005 17:23:14 -0000 1.2
+++ TestPattern.java 19 Aug 2005 13:28:16 -0000 1.3
@@ -120,7 +120,7 @@
contextc.setReturnValue("document.fred.barney");
context
- .addSubmitListener("function(event) { validate_regexp(event,
document.fred.barney, '"
+ .addSubmitListener("function(event) {
Tapestry.validate_regexp(event, document.fred.barney, '"
+ pattern + "', 'default message'); }");
replayControls();
@@ -158,7 +158,7 @@
contextc.setReturnValue("document.fred.barney");
context
- .addSubmitListener("function(event) { validate_regexp(event,
document.fred.barney, '"
+ .addSubmitListener("function(event) {
Tapestry.validate_regexp(event, document.fred.barney, '"
+ pattern + "', 'custom\\\\message'); }");
replayControls();
1.4 +1 -1
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMaxLength.java
Index: TestMaxLength.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMaxLength.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestMaxLength.java 8 Aug 2005 17:23:14 -0000 1.3
+++ TestMaxLength.java 19 Aug 2005 13:28:16 -0000 1.4
@@ -109,7 +109,7 @@
{ new Integer(20), "My Field" }, "default\\message");
context
- .addSubmitListener("function(event) {
validate_max_length(event, document.myform.myfield, 20, 'default\\\\message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_max_length(event, document.myform.myfield, 20,
'default\\\\message'); }");
replayControls();
1.3 +2 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMin.java
Index: TestMin.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMin.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestMin.java 8 Aug 2005 17:23:14 -0000 1.2
+++ TestMin.java 19 Aug 2005 13:28:16 -0000 1.3
@@ -110,7 +110,7 @@
contextc.setReturnValue("document.myform.myfield");
context
- .addSubmitListener("function(event) {
validate_min_number(event, document.myform.myfield, 20.0, 'default message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_min_number(event, document.myform.myfield, 20.0, 'default
message'); }");
replayControls();
@@ -143,7 +143,7 @@
contextc.setReturnValue("document.myform.myfield");
context
- .addSubmitListener("function(event) {
validate_min_number(event, document.myform.myfield, 20.0, 'custom\\\\message');
}");
+ .addSubmitListener("function(event) {
Tapestry.validate_min_number(event, document.myform.myfield, 20.0,
'custom\\\\message'); }");
replayControls();
1.4 +2 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestEmail.java
Index: TestEmail.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestEmail.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestEmail.java 8 Aug 2005 17:23:14 -0000 1.3
+++ TestEmail.java 19 Aug 2005 13:28:16 -0000 1.4
@@ -119,7 +119,7 @@
contextc.setReturnValue("document.fred.barney");
context
- .addSubmitListener("function(event) { validate_regex(event,
document.fred.barney, '"
+ .addSubmitListener("function(event) {
Tapestry.validate_regex(event, document.fred.barney, '"
+ pattern + "', 'default\\\\message'); }");
replayControls();
@@ -158,7 +158,7 @@
contextc.setReturnValue("document.fred.barney");
context
- .addSubmitListener("function(event) { validate_regex(event,
document.fred.barney, '"
+ .addSubmitListener("function(event) {
Tapestry.validate_regex(event, document.fred.barney, '"
+ pattern + "', 'custom message'); }");
replayControls();
1.6 +6 -5
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MaxLength.java
Index: MaxLength.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MaxLength.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MaxLength.java 9 Aug 2005 21:35:52 -0000 1.5
+++ MaxLength.java 19 Aug 2005 13:28:16 -0000 1.6
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -71,14 +72,14 @@
FormComponentContributorContext context, IFormComponent field)
{
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
-
- StringBuffer buffer = new StringBuffer("function(event) {
validate_max_length(event, ");
+
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_max_length(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", ");
buffer.append(_maxLength);
- buffer.append(", '");
-
buffer.append(ValidatorUtils.escapeReservedCharacters(buildMessage(context,
field)));
- buffer.append("'); }");
+ buffer.append(", ");
+ buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.6 +6 -5
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Email.java
Index: Email.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Email.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Email.java 9 Aug 2005 21:35:52 -0000 1.5
+++ Email.java 19 Aug 2005 13:28:16 -0000 1.6
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -74,15 +75,15 @@
context.includeClasspathScript("/org/apache/tapestry/form/validator/RegExValidator.js");
String pattern = _matcher.getEscapedPatternString(PATTERN);
- String message = buildMessage(context, field);
+ String message = TapestryUtils.enquote(buildMessage(context, field));
- StringBuffer buffer = new StringBuffer("function(event) {
validate_regex(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_regex(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", '");
buffer.append(pattern);
- buffer.append("', '");
- buffer.append(ValidatorUtils.escapeReservedCharacters(message));
- buffer.append("'); }");
+ buffer.append("', ");
+ buffer.append(message);
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.6 +5 -4
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Min.java
Index: Min.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Min.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Min.java 9 Aug 2005 21:35:52 -0000 1.5
+++ Min.java 19 Aug 2005 13:28:16 -0000 1.6
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -72,13 +73,13 @@
String message = buildMessage(context, field);
- StringBuffer buffer = new StringBuffer("function(event) {
validate_min_number(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_min_number(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", ");
buffer.append(_min);
- buffer.append(", '");
- buffer.append(ValidatorUtils.escapeReservedCharacters(message));
- buffer.append("'); }");
+ buffer.append(", ");
+ buffer.append(TapestryUtils.enquote(message));
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.5 +5 -4
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Pattern.java
Index: Pattern.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Pattern.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Pattern.java 9 Aug 2005 21:35:52 -0000 1.4
+++ Pattern.java 19 Aug 2005 13:28:16 -0000 1.5
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -76,13 +77,13 @@
String pattern = _matcher.getEscapedPatternString(_pattern);
String message = buildMessage(context, field);
- StringBuffer buffer = new StringBuffer("function(event) {
validate_regexp(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_regexp(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", '");
buffer.append(pattern);
- buffer.append("', '");
- buffer.append(ValidatorUtils.escapeReservedCharacters(message));
- buffer.append("'); }");
+ buffer.append("', ");
+ buffer.append(TapestryUtils.enquote(message));
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.5 +6 -2
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/StringValidator.js
Index: StringValidator.js
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/StringValidator.js,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StringValidator.js 13 Aug 2005 15:02:34 -0000 1.4
+++ StringValidator.js 19 Aug 2005 13:28:16 -0000 1.5
@@ -12,14 +12,18 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-function validate_min_length(event, field, min, message)
+Tapestry.validate_min_length = function(event, field, min, message)
{
+ if (field.value == "") return;
+
if (field.value.length < min)
event.invalid_field(field, message)
}
-function validate_max_length(event, field, max, message)
+Tapestry.validate_max_length = function(event, field, max, message)
{
+ if (field.value == "") return;
+
if (field.value.length > max)
event.invalid_field(field, message)
}
1.9 +5 -4
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Required.java
Index: Required.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Required.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Required.java 10 Aug 2005 06:02:51 -0000 1.8
+++ Required.java 19 Aug 2005 13:28:16 -0000 1.9
@@ -18,6 +18,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -74,11 +75,11 @@
{
context.registerForFocus(ValidationConstants.REQUIRED_FIELD);
- StringBuffer buffer = new StringBuffer("function(event) {
require(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.require_field(event, ");
buffer.append(context.getFieldDOM());
- buffer.append(", '");
-
buffer.append(ValidatorUtils.escapeReservedCharacters(buildMessage(context,
field)));
- buffer.append("'); }");
+ buffer.append(", ");
+ buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.5 +1 -1
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/RegExValidator.js
Index: RegExValidator.js
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/RegExValidator.js,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- RegExValidator.js 13 Aug 2005 15:02:34 -0000 1.4
+++ RegExValidator.js 19 Aug 2005 13:28:16 -0000 1.5
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-function validate_regex(event, field, pattern, message)
+Tapestry.validate_regex = function(event, field, pattern, message)
{
var value = field.value;
1.5 +6 -5
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Max.java
Index: Max.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Max.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Max.java 9 Aug 2005 21:35:52 -0000 1.4
+++ Max.java 19 Aug 2005 13:28:16 -0000 1.5
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -70,15 +71,15 @@
{
context.includeClasspathScript("/org/apache/tapestry/form/validator/NumberValidator.js");
- String message = buildMessage(context, field);
+ String message = TapestryUtils.enquote(buildMessage(context, field));
- StringBuffer buffer = new StringBuffer("function(event) {
validate_max_number(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_max_number(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", ");
buffer.append(_max);
- buffer.append(", '");
- buffer.append(ValidatorUtils.escapeReservedCharacters(message));
- buffer.append("'); }");
+ buffer.append(", ");
+ buffer.append(message);
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.6 +5 -4
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MinLength.java
Index: MinLength.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MinLength.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MinLength.java 9 Aug 2005 21:35:52 -0000 1.5
+++ MinLength.java 19 Aug 2005 13:28:16 -0000 1.6
@@ -16,6 +16,7 @@
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
@@ -76,13 +77,13 @@
{
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- StringBuffer buffer = new StringBuffer("function(event) {
validate_min_length(event, ");
+ StringBuffer buffer = new StringBuffer("function(event) {
Tapestry.validate_min_length(event, ");
buffer.append(context.getFieldDOM());
buffer.append(", ");
buffer.append(_minLength);
- buffer.append(", '");
-
buffer.append(ValidatorUtils.escapeReservedCharacters(buildMessage(context,
field)));
- buffer.append("'); }");
+ buffer.append(", ");
+ buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
+ buffer.append("); }");
context.addSubmitListener(buffer.toString());
}
1.4 +2 -2
jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/NumberValidator.js
Index: NumberValidator.js
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/NumberValidator.js,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NumberValidator.js 13 Aug 2005 15:02:34 -0000 1.3
+++ NumberValidator.js 19 Aug 2005 13:28:16 -0000 1.4
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-function validate_min_number(event, field, min, message)
+Tapestry.validate_min_number = function(event, field, min, message)
{
var num = eval(field.value)
@@ -20,7 +20,7 @@
event.invalid_field(field, message)
}
-function validate_max_number(event, field, max, message)
+Tapestry.validate_max_number = function(event, field, max, message)
{
var num = eval(field.value)
1.7 +36 -0
jakarta-tapestry/framework/src/java/org/apache/tapestry/TapestryUtils.java
Index: TapestryUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/TapestryUtils.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TapestryUtils.java 21 Jul 2005 13:17:58 -0000 1.6
+++ TapestryUtils.java 19 Aug 2005 13:28:17 -0000 1.7
@@ -29,6 +29,10 @@
*/
public class TapestryUtils
{
+ private static final char QUOTE = '\'';
+
+ private static final char BACKSLASH = '\\';
+
/**
* Stores an attribute into the request cycle, verifying that no object
with that key is already
* present.
@@ -208,4 +212,36 @@
return (String[]) strings.toArray(new String[strings.size()]);
}
+
+ /**
+ * Enquotes a string within single quotes, ready for insertion as part
of a block of JavaScript.
+ * Single quotes and backslashes within the input string are properly
escaped.
+ */
+
+ public static String enquote(String input)
+ {
+ Defense.notNull(input, "input");
+
+ char[] chars = input.toCharArray();
+
+ // Add room for the two quotes and a couple of escaped characters
+
+ StringBuffer buffer = new StringBuffer(chars.length + 5);
+
+ buffer.append(QUOTE);
+
+ for (int i = 0; i < chars.length; i++)
+ {
+ char ch = chars[i];
+
+ if (ch == QUOTE || ch == BACKSLASH)
+ buffer.append(BACKSLASH);
+
+ buffer.append(ch);
+ }
+
+ buffer.append(QUOTE);
+
+ return buffer.toString();
+ }
}
\ No newline at end of file
1.5 +1 -2
jakarta-tapestry/framework/src/java/org/apache/tapestry/wml/GoFormSupportImpl.java
Index: GoFormSupportImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/wml/GoFormSupportImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- GoFormSupportImpl.java 16 Jun 2005 18:27:11 -0000 1.4
+++ GoFormSupportImpl.java 19 Aug 2005 13:28:17 -0000 1.5
@@ -60,8 +60,7 @@
"addEventHandler() not supported for WML Go component.");
}
- protected String emitEventManagerInitialization()
+ protected void emitEventManagerInitialization()
{
- return null;
}
}
\ No newline at end of file
1.6 +1 -1
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java
Index: TestStringTranslator.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestStringTranslator.java 18 Aug 2005 21:56:06 -0000 1.5
+++ TestStringTranslator.java 19 Aug 2005 13:28:17 -0000 1.6
@@ -158,7 +158,7 @@
context.getFieldDOM();
contextc.setReturnValue("field_dom");
- context.addSubmitListener("trim(field_dom)");
+ trainTrim(context, "field_dom");
IFormComponent field = newField();
1.10 +6 -4
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java
Index: TestNumberTranslator.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestNumberTranslator.java 18 Aug 2005 21:56:06 -0000 1.9
+++ TestNumberTranslator.java 19 Aug 2005 13:28:17 -0000 1.10
@@ -212,7 +212,8 @@
trainGetFieldDOM(contextc, context, "field_dom");
- context.addSubmitListener("validate_number(event, field_dom,
'invalid number message')");
+ context
+ .addSubmitListener("function(event) {
Tapestry.validate_number(event, field_dom, 'invalid number message'); }");
IFormComponent field = newField("Number Field");
@@ -252,7 +253,7 @@
trainGetFieldDOM(contextc, context, "field_dom");
context
- .addSubmitListener("validate_number(event, field_dom, 'Blah
Blah \\'Field Name\\' Blah.')");
+ .addSubmitListener("function(event) {
Tapestry.validate_number(event, field_dom, 'Blah Blah \\'Field Name\\' Blah.');
}");
IFormComponent field = newField("Number Field");
@@ -280,7 +281,7 @@
trainGetFieldDOM(contextc, context, "field_dom");
- context.addSubmitListener("trim(field_dom)");
+ trainTrim(context, "field_dom");
trainGetLocale(contextc, context, Locale.ENGLISH);
@@ -289,7 +290,8 @@
trainGetFieldDOM(contextc, context, "field_dom");
- context.addSubmitListener("validate_number(event, field_dom,
'invalid number message')");
+ context
+ .addSubmitListener("function(event) {
Tapestry.validate_number(event, field_dom, 'invalid number message'); }");
IFormComponent field = newField("Number Field");
1.8 +1 -1
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
Index: TestDateTranslator.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestDateTranslator.java 18 Aug 2005 21:56:06 -0000 1.7
+++ TestDateTranslator.java 19 Aug 2005 13:28:17 -0000 1.8
@@ -244,7 +244,7 @@
context.getFieldDOM();
contextc.setReturnValue("field_dom");
- context.addSubmitListener("trim(field_dom)");
+ trainTrim(context, "field_dom");
replayControls();
1.5 +12 -2
jakarta-tapestry/framework/src/test/org/apache/tapestry/TestTapestryUtils.java
Index: TestTapestryUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/TestTapestryUtils.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TestTapestryUtils.java 3 May 2005 17:41:27 -0000 1.4
+++ TestTapestryUtils.java 19 Aug 2005 13:28:17 -0000 1.5
@@ -131,7 +131,7 @@
verifyControls();
}
-
+
public void testRemoveForm()
{
IRequestCycle cycle = newCycle();
@@ -142,7 +142,7 @@
TapestryUtils.removeForm(cycle);
- verifyControls();
+ verifyControls();
}
public void testGetFormSuccess()
@@ -262,4 +262,14 @@
{ "", "fred", "", "barney", "", "" },
TapestryUtils.split(",fred,,barney,,"));
}
+ public void testEnquote()
+ {
+ assertEquals("'simple'", TapestryUtils.enquote("simple"));
+
+ assertEquals("'this is a \\\\backslash\\\\'", TapestryUtils
+ .enquote("this is a \\backslash\\"));
+
+ assertEquals("'this is a \\'single quote\\''", TapestryUtils
+ .enquote("this is a 'single quote'"));
+ }
}
\ No newline at end of file
1.12 +14 -24
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormSupport.java
Index: TestFormSupport.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormSupport.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- TestFormSupport.java 6 Aug 2005 06:58:27 -0000 1.11
+++ TestFormSupport.java 19 Aug 2005 13:28:17 -0000 1.12
@@ -160,8 +160,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -198,7 +197,7 @@
trainGetFocusField(delegatec, delegate, "wilma");
trainGetFieldFocus(cyclec, cycle, null);
- support.addInitializationScript("focus(document.myform.wilma);");
+
support.addInitializationScript("Tapestry.set_focus(document.myform.wilma);");
trainSetFieldFocus(cycle);
@@ -341,8 +340,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -377,7 +375,7 @@
writer.end();
support
-
.addInitializationScript("myform_events.addSubmitListener(function (event)\n{\n
mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
+
.addInitializationScript("document.myform.events.addSubmitListener(function
(event)\n{\n mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
// Side test: what if no focus field?
@@ -444,8 +442,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -543,8 +540,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -641,8 +637,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -725,8 +720,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -825,8 +819,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -861,7 +854,7 @@
writer.end();
support
-
.addInitializationScript("myform_events.addResetListener(function (event)\n{\n
myReset1();\n myReset2();\n});\n");
+
.addInitializationScript("document.myform.events.addResetListener(function
(event)\n{\n myReset1();\n myReset2();\n});\n");
trainGetFocusField(delegatec, delegate, null);
@@ -1177,8 +1170,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1291,8 +1283,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1602,8 +1593,7 @@
support.addExternalScript(new ClasspathResource(getClassResolver(),
"/org/apache/tapestry/form/Form.js"));
- support
- .addInitializationScript("var myform_events = new
FormEventManager(document.myform);");
+ support.addInitializationScript("new
FormEventManager(document.myform);");
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1638,7 +1628,7 @@
writer.end();
support
-
.addInitializationScript("myform_events.addSubmitListener(function (event)\n{\n
mySubmit();\n});\n");
+
.addInitializationScript("document.myform.events.addSubmitListener(function
(event)\n{\n mySubmit();\n});\n");
trainGetFocusField(delegatec, delegate, null);
1.6 +6 -0
jakarta-tapestry/framework/src/test/org/apache/tapestry/form/FormComponentContributorTestCase.java
Index: FormComponentContributorTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/FormComponentContributorTestCase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FormComponentContributorTestCase.java 18 Aug 2005 21:56:06 -0000
1.5
+++ FormComponentContributorTestCase.java 19 Aug 2005 13:28:17 -0000
1.6
@@ -176,4 +176,10 @@
return messages;
}
+
+ protected void trainTrim(FormComponentContributorContext context, String
fieldDOM)
+ {
+ context.addSubmitListener("function (event) {
Tapestry.trim_field_value(" + fieldDOM
+ + "); }");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]