ICEfaces
  1. ICEfaces
  2. ICE-7802

Closing multiple modal panelPopups causes the Liferay controls to be non clickable

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.1, EE-2.0.0.GA, 2.0.2, 3.0
    • Fix Version/s: 3.0.1, EE-3.0.0.GA
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Liferay Portal 6.0.6/Tomcat 6.0.29

      Description

      When opening a modal popup it sets the underlying input fields to have a tabindex or -1. This prevents the inputs from gaining focus when the user us tabbing. When the modal popup is closed it sets all these inputs back to 0 allowing them to gain focus and be selected.

      In this case there are two modal popups being opened one after the other. A modal popup is opened via a button click, this popup contains another button which will hide the first popup and show a second modal popup. Upon closing of this second modal popup the tab indexes for the Liferay controls, Sign Out link, etc are not set back to 0 and remain at -1 which makes it not possible to select the links/inputs. All inputs on the portlet still work though.

      This only occurs when two popups are opened consecutively and not an issue when a single popup is opened and closed.

        Activity

        Hide
        Arran Mccullough added a comment -

        Sample app that shows issue. Steps to reproduce:

        • Click on "Click here to open popup1" button, modal popup is shown.
        • Click on "Click here to open popup2" button, the popup1 popup is removed and a popup2 is shown.
        • Click on "Close Popup window", trying to click on the Sign out link on the liferay top banner is not possible.

        After this if you open and close a single popup the link works again. Viewing the Sign out link in Firebug can show the changes of the tabindex value.

        Show
        Arran Mccullough added a comment - Sample app that shows issue. Steps to reproduce: Click on "Click here to open popup1" button, modal popup is shown. Click on "Click here to open popup2" button, the popup1 popup is removed and a popup2 is shown. Click on "Close Popup window", trying to click on the Sign out link on the liferay top banner is not possible. After this if you open and close a single popup the link works again. Viewing the Sign out link in Firebug can show the changes of the tabindex value.
        Hide
        Arran Mccullough added a comment -

        Upon further investigation this looks to be a more general issue rather than a Liferay issue. The key is to have links in different forms. I have attached a more general test case that can be run in Tomcat 7. The test case is similar to the other one but it includes two commandLinks. One link is in a different form than the button that opens the popup. Another link is in the same form. After closing the two popups the link outside of the form can't be clicked but the one inside can be.

        Show
        Arran Mccullough added a comment - Upon further investigation this looks to be a more general issue rather than a Liferay issue. The key is to have links in different forms. I have attached a more general test case that can be run in Tomcat 7. The test case is similar to the other one but it includes two commandLinks. One link is in a different form than the button that opens the popup. Another link is in the same form. After closing the two popups the link outside of the form can't be clicked but the one inside can be.
        Hide
        Mircea Toma added a comment -

        Modified modal JS code to handle correctly modal popup disposal even if the popups are not closed as if they were stacked. By removing correctly the popups from the active popup list the event handler callbacks belonging to the input elements are now restored once all the modal popups are closed.

        Show
        Mircea Toma added a comment - Modified modal JS code to handle correctly modal popup disposal even if the popups are not closed as if they were stacked. By removing correctly the popups from the active popup list the event handler callbacks belonging to the input elements are now restored once all the modal popups are closed.
        Hide
        Mircea Toma added a comment -

        This issue was already taken care of in 1.8 branch by the fixes for ICE-6333.

        Show
        Mircea Toma added a comment - This issue was already taken care of in 1.8 branch by the fixes for ICE-6333 .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: