ICEfaces
  1. ICEfaces
  2. ICE-7450

ace:tabSet with tabPane cached on client still fire a tab selection

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.0.RC1
    • Fix Version/s: 3.0.RC2, 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 3 RC1, Chrome, Tomcat 7
    • Assignee Priority:
      P1

      Description

      I'm using ace:tabSet with clientSide="false" and all my tabPanes have cacheOnClient="true". The caching behavior is as expected and when a tab is selected, the cached dom node are show instantly and an ajax request updates the state of the tabs behind the scenes. The problem is that once this ajax request returns, the tab that originally fired gets selected even if the user had selected another one before the original ajax request is returned.

      If the user is on tab A and clicks on tab B and immediately clicks on tab C, he will get to tab C but once the state has been updated on the server for the tab B click event, the user is brought back to tab B and after a the update for the tab C click event is done, is again brought back to tab C. Very confusing to the user.

      To reproduce the problem use attached files to recreate a sample ICEfaces2.1BETA2 project. Once up and running click on tab B and then within 2 seconds click on tab C. Wait for a second or two.

      The update of the tabset state on the server should not have any effect on the client side (it should not switch to a tab) since the client side already reflects the correct state. If this is not possible, we should have a way to tell the component not to change tab after the state is updated.

        Issue Links

          Activity

          Hide
          Evgheni Sadovoi added a comment - - edited

          Tab switch still occur in RC1 when <ace:tabSet clientSide="false"> and <ace:tabPane cache="staticAuto">.

          Show
          Evgheni Sadovoi added a comment - - edited Tab switch still occur in RC1 when <ace:tabSet clientSide="false"> and <ace:tabPane cache="staticAuto">.
          Hide
          Mark Collette added a comment -

          The issue is about the race condition of quickly clicking from tab A -> B -> C, so that it then bounces back to B and then C a second time.

          Show
          Mark Collette added a comment - The issue is about the race condition of quickly clicking from tab A -> B -> C, so that it then bounces back to B and then C a second time.
          Hide
          Nils Lundquist added a comment -

          Fixed in r26808 - Fixed "intermediate" transition when quickly switching between 3 tabs and the 2nd tab hasn't loaded by the time that the request to load the 3rd is submitted. The tab becoming "active" is stored when the request is sent, and if a returning request isn't for the same tab, a transition to the newly loaded tab is not performed

          Show
          Nils Lundquist added a comment - Fixed in r26808 - Fixed "intermediate" transition when quickly switching between 3 tabs and the 2nd tab hasn't loaded by the time that the request to load the 3rd is submitted. The tab becoming "active" is stored when the request is sent, and if a returning request isn't for the same tab, a transition to the newly loaded tab is not performed
          Hide
          Ken Fyten added a comment -

          There is a regression due to the last change where when the tabSet is used in Client mode, it stacks the contents for each viewed tab on top of one another. This is demonstrated in the showcase Client tabSet demo.

          Show
          Ken Fyten added a comment - There is a regression due to the last change where when the tabSet is used in Client mode, it stacks the contents for each viewed tab on top of one another. This is demonstrated in the showcase Client tabSet demo.
          Hide
          Ken Fyten added a comment -

          Another regression issue is that when using the ace:tabSetProxy the tabSet is not re-selecting the previously selected tab in cases where the form is invalid.

          This is illustrated by the showcase tabSetProxy demo. Click on tab2, then tab3 and tab3 stays selected with no contents, when Tab2 should be selected again due to the validation failure.

          Show
          Ken Fyten added a comment - Another regression issue is that when using the ace:tabSetProxy the tabSet is not re-selecting the previously selected tab in cases where the form is invalid. This is illustrated by the showcase tabSetProxy demo. Click on tab2, then tab3 and tab3 stays selected with no contents, when Tab2 should be selected again due to the validation failure.
          Hide
          Nils Lundquist added a comment -

          Regressions fixed in r26830

          Show
          Nils Lundquist added a comment - Regressions fixed in r26830
          Hide
          Cruz Miraback added a comment -

          The original issue and also the two regressions Ken has noted have been confirmed fixed using ICEfaces3.0.0 Final-Build10.

          Show
          Cruz Miraback added a comment - The original issue and also the two regressions Ken has noted have been confirmed fixed using ICEfaces3.0.0 Final-Build10.

            People

            • Assignee:
              Nils Lundquist
              Reporter:
              Evgheni Sadovoi
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: