You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Geoff Callender (JIRA)" <ji...@apache.org> on 2014/12/31 03:18:13 UTC

[jira] [Updated] (TAP5-2391) Field-specific error not shown when AJAX used

     [ https://issues.apache.org/jira/browse/TAP5-2391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Geoff Callender updated TAP5-2391:
----------------------------------
    Description: 
Found this bug in 5.4-beta-22. I've confirmed that the bug was not present in 5.4-beta-6.

When an error is recorded with Form.recordError(Field field, String errorMessage) or ValidationTracker.recordError(Field field, String errorMessage) it normally is shown in the UI by decorating the field in error and displaying the errorMessage below it.

In 5.4-beta-6, that was the behaviour even when the request was AJAX.  

In 5.4-beta-22, the behaviour changes if the request is AJAX: the field is *not* decorated and the errorMessage is *not* shown with it. If your Errors component has globalOnly="true", which is the norm these days, then you won't see any error message at all! If you set globalOnly="false" then the message *is* shown, but who would want to set globalOnly="false"???

Comparing the HTTP responses of beta-22 with beta-6, I see that beta-6 had an extra entry in the inits, like this:

["t5/core/fields:showValidationError", "firstName_8cf3108fe0ece9", "First Name must not be Acme."]

  was:
Found this bug in 5.4-beta-22. I've confirmed that the bug was not present in 5.4-beta-6.

When an error is recorded with Form.recordError(Field field, String errorMessage) or ValidationTracker.recordError(Field field, String errorMessage) it normally is shown in the UI by decorating the field in error and displaying the errorMessage below it.

However, when the request is AJAX, the field is no longer being decorated and the errorMessage isn't shown with it. I have verified that the client knows about the error, because <t:errors globalOnly="false"/> will show it.

Comparing the HTTP responses of beta-22 with beta-6, I see that beta-6 has an extra entry in the inits, like this:

["t5/core/fields:showValidationError", "firstName_8cf3108fe0ece9", "First Name must not be Acme."]


> Field-specific error not shown when AJAX used
> ---------------------------------------------
>
>                 Key: TAP5-2391
>                 URL: https://issues.apache.org/jira/browse/TAP5-2391
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4
>            Reporter: Geoff Callender
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>
> Found this bug in 5.4-beta-22. I've confirmed that the bug was not present in 5.4-beta-6.
> When an error is recorded with Form.recordError(Field field, String errorMessage) or ValidationTracker.recordError(Field field, String errorMessage) it normally is shown in the UI by decorating the field in error and displaying the errorMessage below it.
> In 5.4-beta-6, that was the behaviour even when the request was AJAX.  
> In 5.4-beta-22, the behaviour changes if the request is AJAX: the field is *not* decorated and the errorMessage is *not* shown with it. If your Errors component has globalOnly="true", which is the norm these days, then you won't see any error message at all! If you set globalOnly="false" then the message *is* shown, but who would want to set globalOnly="false"???
> Comparing the HTTP responses of beta-22 with beta-6, I see that beta-6 had an extra entry in the inits, like this:
> ["t5/core/fields:showValidationError", "firstName_8cf3108fe0ece9", "First Name must not be Acme."]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)