MyFaces Tomahawk
  1. MyFaces Tomahawk
  2. TOMAHAWK-543

The wrong tab may be displayed after a validation failure and serverSiteTabSwitch="false"

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: 1.1.3
    • Fix Version/s: None
    • Component/s: Tabbed Pane
    • Labels:
      None

      Description

      I have a form on a tabbed pane that validates input. When their is a validation error and the attribute serverSideTabSwitch on <t:panelTabbedPane> is undefined or set to false, the first tab is displayed, not the one with the error.

      Their is a selectedIndex attribute on <t:panelTabbedPane>. I would contend that the selectIndex is not getting
      set/restored when serverSiteTabSwitch="false". This show up when the validation phase fails.

      Or said another way:
      MyFaces does not know which tab the clicked button was on and it always display the tab
      identified by selectIndex when serverSiteTabSwitch="false" when their is a validation failure.

      The code below will demonstrate the problem. Click on "Server Tab 2" then "Submit Query". "Server Tab 2"
      is still the current table. Now do the same with "Client Tab 2". You will notice that "Client Tab 1" is
      the current tab!

      <t:panelTabbedPane id="serverSideSwitch" width="100%" serverSideTabSwitch="true">
      <t:panelTab label="Server Tab 1">
      <h:form>
      <h:outputLabel for="tab_1_input" value="Required Value" />
      <h:inputText id="tab_1_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      </h:form>
      </t:panelTab>
      <t:panelTab label="Server Tab 2">
      <h:form>
      <h:outputLabel for="tab_2_input" value="Required Value" />
      <h:inputText id="tab_2_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      </h:form>
      </t:panelTab>
      </t:panelTabbedPane>
      <t:panelTabbedPane id="clientSideSwitch" width="100%" serverSideTabSwitch="false">
      <t:panelTab label="Client Tab 1">
      <h:form>
      <h:outputLabel for="ctab_1_input" value="Required Value" />
      <h:inputText id="ctab_1_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      </h:form>
      </t:panelTab>
      <t:panelTab label="Client Tab 2">
      <h:form>
      <h:outputLabel for="ctab_2_input" value="Required Value" />
      <h:inputText id="ctab_2_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      </h:form>
      </t:panelTab>
      </t:panelTabbedPane>

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Leonardo Uribe
              Reporter:
              Paul Spencer
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development