ICEfaces
  1. ICEfaces
  2. ICE-10894

ACE Client Validators are incompatible with ace:tabSet

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.1
    • Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, 4.2.BETA, 4.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Tomcat 7, ICEfaces 4 trunk r46533, all browsers
    • Assignee Priority:
      P2

      Description

      ACE client side validators do not work properly within an ace:tabSet. When changing a tab while a validator is invoked no navigation occurs.
      Also when using ACE client validators within the emporium application a form that uses the client validators is reset each time that an auction notification is received.

        Activity

        Hide
        Liana Munroe added a comment - - edited

        This issue still exists with ICEfaces 4 trunk r47027.
        New test application (/ICE-10894.jsf) added to:
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/tabSet

        Show
        Liana Munroe added a comment - - edited This issue still exists with ICEfaces 4 trunk r47027. New test application (/ ICE-10894 .jsf) added to: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/tabSet
        Hide
        Ken Fyten added a comment -

        Added this as a Known Issue to http://www.icesoft.org/wiki/display/ICE/TabSet for now.

        Show
        Ken Fyten added a comment - Added this as a Known Issue to http://www.icesoft.org/wiki/display/ICE/TabSet for now.
        Hide
        Mircea Toma added a comment -

        Modified ImmediateComponentCollector to detect the 'immediate' submit marker on UIInput, UICommand components and also on any component that implements the isImmediate() method.

        This will allow to mark the tab set with the 'immediate=true' attribute and thus avoid the blocking of the submit by the client validation when validation fails. Adding <ace:ajax immediate="true"/> to the tabset will also work.

        Show
        Mircea Toma added a comment - Modified ImmediateComponentCollector to detect the 'immediate' submit marker on UIInput , UICommand components and also on any component that implements the isImmediate() method. This will allow to mark the tab set with the 'immediate=true' attribute and thus avoid the blocking of the submit by the client validation when validation fails. Adding <ace:ajax immediate="true"/> to the tabset will also work.
        Hide
        Liana Munroe added a comment -

        Tested with ICEfaces 4 trunk r48493. The only solution that seemed to work was to add the <ace:ajax immediate="true"/> to the tabset.
        Using <ace:tabSet immediate=true > fails. The attached screenshot 1.png shows the outcome of trying to change to tab 2 if there is a validator invoked.

        Show
        Liana Munroe added a comment - Tested with ICEfaces 4 trunk r48493. The only solution that seemed to work was to add the <ace:ajax immediate="true"/> to the tabset. Using <ace:tabSet immediate=true > fails. The attached screenshot 1.png shows the outcome of trying to change to tab 2 if there is a validator invoked.
        Hide
        Mircea Toma added a comment -

        Please make sure ACE components are freshly built and then re-test.

        Show
        Mircea Toma added a comment - Please make sure ACE components are freshly built and then re-test.
        Hide
        Mircea Toma added a comment -

        Oops, I missed checking in a change. It's in now. Sorry about that.

        Show
        Mircea Toma added a comment - Oops, I missed checking in a change. It's in now. Sorry about that.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk r48497. Tomcat 7, IE 11, 10, 9, 8, FF 43, Chrome 48.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk r48497. Tomcat 7, IE 11, 10, 9, 8, FF 43, Chrome 48.
        Hide
        Carmen Cristurean added a comment -

        This fix caused a tabSet regression, tabPanes can no longer be changed.

        This can be reproduced starting with Jenkins IF4 trunk Build# 1848:

        • emporium: unable to select any other tabPane, such as "Auction Logs", "Chat", etc.
        • showcase > tabSet > Proxy: unable to change tabs, and the validation message is not rendered when selecting a new tab without entering content; also the newly selected tab, as well as the previous tab are rendered as selected.
          There are no server errors or browser console errors.
        Show
        Carmen Cristurean added a comment - This fix caused a tabSet regression, tabPanes can no longer be changed. This can be reproduced starting with Jenkins IF4 trunk Build# 1848: emporium: unable to select any other tabPane, such as "Auction Logs", "Chat", etc. showcase > tabSet > Proxy: unable to change tabs, and the validation message is not rendered when selecting a new tab without entering content; also the newly selected tab, as well as the previous tab are rendered as selected. There are no server errors or browser console errors.
        Hide
        Mircea Toma added a comment -

        Move back the creation of the hidden field into the form element. Modified client validation client code to fallback into searching for the component's root element from the ice.event.target.

        Show
        Mircea Toma added a comment - Move back the creation of the hidden field into the form element. Modified client validation client code to fallback into searching for the component's root element from the ice.event.target .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Liana Munroe
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: