ICEfaces
  1. ICEfaces
  2. ICE-5765

ICEfaces 2.0 + PortletFaces Bridge: ice:selectOneMenu DOM-diff inefficiency with the f:selectItem value="" empty string

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Alpha2
    • Fix Version/s: 2.0.1
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      Liferay 5.2.3

      Description

      Actually this might not be portlet related, but I founded while testing the bridge...

      In the attached portlet, you'll notice that the provinceId dropdown is using h:selectOneMenu instead of ice:selectOneMenu

      This is because the ice:selectOneMenu has a DOM-diff inefficiency with the f:selectItem value="" empty string in that it causes a DOM-diff all the time.

      On the initial HTTP-GET (pre-ajax), this is what the dropdown markup looks like:
          <option selected="selected" value="">-- Select --</option>

      After causing an onblur, the XmlHttpRequest (post-ajax) causes a DOM-diff, and this is what the replaced dropdown markup looks like:
          <option value="">-- Select --</option>

        Activity

        Hide
        Neil Griffin added a comment -

        Forgot to mention that you can reproduce this by switching the h:selectOneMenu to ice:selectOneMenu after the portlet has been deployed in Liferay.

        Show
        Neil Griffin added a comment - Forgot to mention that you can reproduce this by switching the h:selectOneMenu to ice:selectOneMenu after the portlet has been deployed in Liferay.
        Hide
        Ted Goddard added a comment -

        This seems like a component bug; would it be fixed if ice:selectOneMenu reliably rendered an empty attribute or not?

        Show
        Ted Goddard added a comment - This seems like a component bug; would it be fixed if ice:selectOneMenu reliably rendered an empty attribute or not?
        Hide
        Deryk Sinotte added a comment -

        It's possible that after some of the current work Ted has done with ICEfaces 2 and the new Portlet Bridge that some or all of the older portlet related issues are no longer relevant. Assigning to Ted to verify which can be closed and which may still need more work.

        Show
        Deryk Sinotte added a comment - It's possible that after some of the current work Ted has done with ICEfaces 2 and the new Portlet Bridge that some or all of the older portlet related issues are no longer relevant. Assigning to Ted to verify which can be closed and which may still need more work.
        Hide
        Deryk Sinotte added a comment -

        Moving to 2.0.1 release. This is not currently breaking functionality but is an inefficient update.

        Show
        Deryk Sinotte added a comment - Moving to 2.0.1 release. This is not currently breaking functionality but is an inefficient update.
        Hide
        Neil Griffin added a comment -

        I took a minute to test this just now, and it's still broken. There is a full DOM replacement of the portlet simply by selecting an item from the list.

        Show
        Neil Griffin added a comment - I took a minute to test this just now, and it's still broken. There is a full DOM replacement of the portlet simply by selecting an item from the list.
        Hide
        Ted Goddard added a comment -

        Does " " work for value rather than ""?

        Show
        Ted Goddard added a comment - Does " " work for value rather than ""?
        Hide
        Deryk Sinotte added a comment -

        I've taken the original test case and updated to the latest libs we're using for the upcoming release but haven't been able to successfully recreate the issue. I've also tried doing something similar using the selectOneMenu example in component-showcase-portlets.war but the update that is coming back is only for the component, not the entire portlet.

        Show
        Deryk Sinotte added a comment - I've taken the original test case and updated to the latest libs we're using for the upcoming release but haven't been able to successfully recreate the issue. I've also tried doing something similar using the selectOneMenu example in component-showcase-portlets.war but the update that is coming back is only for the component, not the entire portlet.
        Hide
        Neil Griffin added a comment -

        I just tried to reproduce this with trunk revision 24223 and was not able to do it. I think it's fixed! Recommend resolving the issue at this time. Thanks.

        Show
        Neil Griffin added a comment - I just tried to reproduce this with trunk revision 24223 and was not able to do it. I think it's fixed! Recommend resolving the issue at this time. Thanks.
        Hide
        Deryk Sinotte added a comment -

        Resolving as fixed but unsure of how. Could be related to recent component work on the menus, upgraded JSF libs, etc.

        Show
        Deryk Sinotte added a comment - Resolving as fixed but unsure of how. Could be related to recent component work on the menus, upgraded JSF libs, etc.

          People

          • Assignee:
            Deryk Sinotte
            Reporter:
            Neil Griffin
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: