Tapestry
  1. Tapestry
  2. TAPESTRY-1753

Client-side validation is broken for PropertySelection

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 4.1.3
    • Fix Version/s: 4.1.5
    • Component/s: Core Components
    • Labels:
      None

      Description

      Matt Raible found this problem with the 4.1.3-SNAPSHOT release and reported it on the mailing list, but I didn't see a JIRA issue for it: http://www.nabble.com/Re%3A-Validation-and-CSS-with-4.1.3-SNAPSHOT-p12397222.html. The behavior is still there in this build.

      The client-side validation code produces an empty popup when you submit a form if the form contains a PropertySelection component with validators. Here's the example from Matt's message:

      <component id="countryField" type="PropertySelection">
      <binding name="model" value="countries"/>
      <binding name="value" value="user.address.country"/>
      <binding name="validators" value="validators:required"/>
      <binding name="displayName" value="message:user.address.country"/>
      </component>

      You get the blank popup even when the validation should pass (i.e., the field has a selected option). As a test I created an alternate required validator that decorates the markup but doesn't generate any validation on the client, and that one doesn't exhibit this behavior. The problem appears to lie either in changes to Dojo's "required" validation in this release or in how Tapestry is using it.

      Matt questioned whether Dojo client-side validation works with this component. It has worked in previous versions.

        Issue Links

          Activity

          Hide
          Marcus Schulte added a comment -

          The current fix for this issue undid the fix for TAPESTRY-1663, effectively breaking it again.

          Show
          Marcus Schulte added a comment - The current fix for this issue undid the fix for TAPESTRY-1663 , effectively breaking it again.
          Hide
          Geoff Callender added a comment -

          Ditto.

          Show
          Geoff Callender added a comment - Ditto.
          Hide
          James Gates added a comment -

          Our code that broke with 4.1.3 worked with 4.1.2 and earlier versions.

          Show
          James Gates added a comment - Our code that broke with 4.1.3 worked with 4.1.2 and earlier versions.
          Hide
          Andreas Andreou added a comment -

          Geoff, was this working in 4.1.2 ?

          Show
          Andreas Andreou added a comment - Geoff, was this working in 4.1.2 ?
          Hide
          Geoff Callender added a comment - - edited

          This is critical because it is so common to have validators:required on PropertySelection. It has, for instance, broken around half of all screens in the Tapestry JumpStart Max application. Anyone with production apps will be blocked from using 4.1.3.

          Show
          Geoff Callender added a comment - - edited This is critical because it is so common to have validators:required on PropertySelection. It has, for instance, broken around half of all screens in the Tapestry JumpStart Max application. Anyone with production apps will be blocked from using 4.1.3.

            People

            • Assignee:
              Jesse Kuhnert
              Reporter:
              James Gates
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development