ICEfaces
  1. ICEfaces
  2. ICE-10595

showcase-portlet - ace:breadcrumbMenu fails

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: EE-4.0.0.GA
    • Fix Version/s: EE-4.1.0.GA, 4.2.BETA, 4.2
    • Component/s: ACE-Components, Sample Apps
    • Labels:
      None
    • Environment:
      Jenkins EE-4.0 Build# 2
      Browsers: IE11, FF34, Chrome
      Server: Liferay 6.2 w/ Tomcat 7.0.42
    • Assignee Priority:
      P3

      Description

      showcase-portlet:

      BreadcrumbMenu
      All browsers: a "Network Connection Interrupted" popup message is displayed when selecting a second time a City from a Province, after navigating to the outside wikipedia URL (screen shot attached).

      Steps:
      - click on "+" icon to expand a province, and select a City -> Province and City are rendered besides in the breadcrumbMenu component.
      - click on the City in the breadcrumbMenu component -> user redirected outside the portlet page, to the Wikipedia page for the selected city.
      - click the Back button in the browser to come back to the portlet page -> portlet breadcrumbMenu page displayed.
      - click again on "+" icon to expand another province, and select a City -> "Network Connection Interrupted" popup message, and no information is rendered in the breadcrumbMenu.

        Activity

        Hide
        Carmen Cristurean added a comment -

        This is still reproducible with Jenkins ICEfaces 4.1.1 Build #2/ ICEfaces 4 trunk r. 47579.

        Show
        Carmen Cristurean added a comment - This is still reproducible with Jenkins ICEfaces 4.1.1 Build #2/ ICEfaces 4 trunk r. 47579.
        Hide
        Carmen Cristurean added a comment -

        ICEfaces4 trunk r48632/ IE11, Chrome50, FF41: the NCI can no longer be reproduced, however selecting a City on the last step requires more than one click to have its information rendered in the breadcrumbMenu.

        Show
        Carmen Cristurean added a comment - ICEfaces4 trunk r48632/ IE11, Chrome50, FF41: the NCI can no longer be reproduced, however selecting a City on the last step requires more than one click to have its information rendered in the breadcrumbMenu.
        Hide
        Arturo Zambrano added a comment -

        I tried various things to fix this issue or to try to find more about it, and it still seems very unclear.

        I tried re-applying the ICE-9533 fix, which was removed at some point, but it didn't help in this particular issue.

        I tested with myfaces and there was no difference.

        I tested with the 3.3 jars, and the same issue is present.

        I tested by modifying the xhtml markup, removing and adding things, but the issues kept occurring.

        I tested with other ace:tree demos, and I'm sure this issue is with the ace:tree component, and not with the ace:breadcrumbMenu component. The breadcrumb menu is built in a selection listener on the tree, but the problem occurs before getting to this point.

        There are actually a number of issues here. One of them is that you can't deselect and then try to re-select a node. The node never gets selected again. Also, besides the issue in the description, when returning from the external page, it's not possible to expand provinces that were previously expanded.

        However, these issues aren't present after reloading the page on the browser.

        Another odd thing is that sometimes these issues aren't reproducible is the Chrome developer tools window is open, without having to reload the page.

        The only thing I've managed to find out is the cause of the issue of not being able to re-select nodes. The hidden fields '_select' and '_deselect' aren't cleared after a select/deselect request, so after deselecting a node, it will always be in the deselect list. This doesn't happen with contraction/expansion, whose fields are always cleared.

        Show
        Arturo Zambrano added a comment - I tried various things to fix this issue or to try to find more about it, and it still seems very unclear. I tried re-applying the ICE-9533 fix, which was removed at some point, but it didn't help in this particular issue. I tested with myfaces and there was no difference. I tested with the 3.3 jars, and the same issue is present. I tested by modifying the xhtml markup, removing and adding things, but the issues kept occurring. I tested with other ace:tree demos, and I'm sure this issue is with the ace:tree component, and not with the ace:breadcrumbMenu component. The breadcrumb menu is built in a selection listener on the tree, but the problem occurs before getting to this point. There are actually a number of issues here. One of them is that you can't deselect and then try to re-select a node. The node never gets selected again. Also, besides the issue in the description, when returning from the external page, it's not possible to expand provinces that were previously expanded. However, these issues aren't present after reloading the page on the browser. Another odd thing is that sometimes these issues aren't reproducible is the Chrome developer tools window is open, without having to reload the page. The only thing I've managed to find out is the cause of the issue of not being able to re-select nodes. The hidden fields '_select' and '_deselect' aren't cleared after a select/deselect request, so after deselecting a node, it will always be in the deselect list. This doesn't happen with contraction/expansion, whose fields are always cleared.
        Hide
        Arturo Zambrano added a comment -

        r48881: fix to clear the _select and _deselect hidden fields after doing the corresponding request in order to be able to re-select previously deselected nodes in a portlet environment

        Show
        Arturo Zambrano added a comment - r48881: fix to clear the _select and _deselect hidden fields after doing the corresponding request in order to be able to re-select previously deselected nodes in a portlet environment
        Hide
        Liana Munroe added a comment -

        Tested with ICEfaces EE-4.1.0.GA Jenkins build 2. Liferay 6.2- ce-ga5.
        NCI can no longer be reproduced.
        City selection appears resolved.

        There is an issue when trying to expand a visited province. After going through the steps in the JIRA description, then clicking the + node, it will no longer expand for the provinces if you used their breadcrumb to navigate away then back. This is not an issue with IF4 non-portlet showcase.

        To reproduce:

        • click on "+" icon to expand a Alberta, and select a City -> Province and City are rendered besides in the breadcrumbMenu component.
        • click on Alberta in the crumbs with URL component -> user redirected outside the portlet page, to the Wikipedia page for the selected province.
        • click the Back button in the browser to come back to the portlet page -> portlet breadcrumbMenu page displayed.
        • click again on "+" icon to expand Alberta. It will no longer expand. Other provinces that you have not visited yet will expand when clicking their nodes.
        • if you click on the province first, then on the + node, it will expand.
        Show
        Liana Munroe added a comment - Tested with ICEfaces EE-4.1.0.GA Jenkins build 2. Liferay 6.2- ce-ga5. NCI can no longer be reproduced. City selection appears resolved. There is an issue when trying to expand a visited province. After going through the steps in the JIRA description, then clicking the + node, it will no longer expand for the provinces if you used their breadcrumb to navigate away then back. This is not an issue with IF4 non-portlet showcase. To reproduce: click on "+" icon to expand a Alberta, and select a City -> Province and City are rendered besides in the breadcrumbMenu component. click on Alberta in the crumbs with URL component -> user redirected outside the portlet page, to the Wikipedia page for the selected province. click the Back button in the browser to come back to the portlet page -> portlet breadcrumbMenu page displayed. click again on "+" icon to expand Alberta. It will no longer expand. Other provinces that you have not visited yet will expand when clicking their nodes. if you click on the province first, then on the + node, it will expand.
        Hide
        Arturo Zambrano added a comment - - edited

        Indeed, I had noted that same issue three comments above (in less detail).

        The issue can be more accurately described as the ace:tree component not being rendered according to its internal state after clicking on the back button in the browser.

        I did more testing and debugging and it seems like the internal state of the tree is correct, but it's not reflected on the page when returning from an external link. The reason why a province, that was previously expanded, can't be expanded again is that in the server it is already expanded, so the domdiff notices no changes and no updates are sent.

        This situation in this particular demo can be ameliorated by simply rendering the menu items in the breadcumbs with target="_blank", so that external links open in new tabs. This is the way it's done in the 3.3 showcase. This demos was ported without this feature to 4.0 without any good reason, it was imply commented out. So, I will revert that.

        After doing more extensive testing, it becomes apparent that this is an issue with portlets, since other components that rely on a state map or some other form of state-keeping show similar issues when returning from an external link, as in the case of the ace:dataTable selection demo, for example. When loading the page when coming from an external link, none of the components seem to go through the render phase or through the JSF lifecycle for that matter. It seems like the portlet container simply sends to the client a cached version of the HTML markup.

        I will create a new JIRA to track this more general issue.

        Show
        Arturo Zambrano added a comment - - edited Indeed, I had noted that same issue three comments above (in less detail). The issue can be more accurately described as the ace:tree component not being rendered according to its internal state after clicking on the back button in the browser. I did more testing and debugging and it seems like the internal state of the tree is correct, but it's not reflected on the page when returning from an external link. The reason why a province, that was previously expanded, can't be expanded again is that in the server it is already expanded, so the domdiff notices no changes and no updates are sent. This situation in this particular demo can be ameliorated by simply rendering the menu items in the breadcumbs with target="_blank", so that external links open in new tabs. This is the way it's done in the 3.3 showcase. This demos was ported without this feature to 4.0 without any good reason, it was imply commented out. So, I will revert that. After doing more extensive testing, it becomes apparent that this is an issue with portlets, since other components that rely on a state map or some other form of state-keeping show similar issues when returning from an external link, as in the case of the ace:dataTable selection demo, for example. When loading the page when coming from an external link, none of the components seem to go through the render phase or through the JSF lifecycle for that matter. It seems like the portlet container simply sends to the client a cached version of the HTML markup. I will create a new JIRA to track this more general issue.
        Hide
        Arturo Zambrano added a comment -

        r48918: fix to render the menu items in the ace:breadcrumbsMenu demo with target="_blank", so that the external links open in new windows/tabs and thus avoid various tree state-related issues

        Show
        Arturo Zambrano added a comment - r48918: fix to render the menu items in the ace:breadcrumbsMenu demo with target="_blank", so that the external links open in new windows/tabs and thus avoid various tree state-related issues
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk 48918, Tomcat 8, liferay 6.2-ce-ga5.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk 48918, Tomcat 8, liferay 6.2-ce-ga5.
        Hide
        Arturo Zambrano added a comment -

        Resolving issue as fixed. A new JIRA, http://jira.icesoft.org/browse/ICE-11060, was created to document the more general issue with portlets and try to find a fix.

        Show
        Arturo Zambrano added a comment - Resolving issue as fixed. A new JIRA, http://jira.icesoft.org/browse/ICE-11060 , was created to document the more general issue with portlets and try to find a fix.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces EE-4.1.0.GA Jenkins Build 4. Liferay 6.2-ce-ga5. FF 43, IE 11, Chrome 50.

        Show
        Liana Munroe added a comment - Verified ICEfaces EE-4.1.0.GA Jenkins Build 4. Liferay 6.2-ce-ga5. FF 43, IE 11, Chrome 50.

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Carmen Cristurean
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: