ICEfaces
  1. ICEfaces
  2. ICE-8204

REGRESSION - Only first datatable on a page is functional if more than one is rendered

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.0.BETA1
    • Fix Version/s: 3.1.0.BETA2, 3.1
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ACE DataTable
    • Assignee Priority:
      P1

      Description

      In looking at ICE-7952 I was unable to replicate the problem in that case but uncovered a new issue. When certain datatable component examples are put on the page (not sure if all or only a subset), they work only if they are the first ones on the page. If another portlet is added to the page (which doesn't have to be a datatable component) which renders above/in front of the datatable, the component stops responding to input. At this point, I don't see any client or server logging to indicate an issue.

        Activity

        Hide
        Deryk Sinotte added a comment - - edited

        I think I need to correct the initial description. I was using the Accordion panel as a second portlet but that apparently registers as an ice.ace.DataTable as well. So now the issue appears to be that only one ice.ace.DataTable is functional if there are more than one on the portal page. If I add a portlet the doesn't register as an ice.ace.DataTable (e.g. Slider Entry) then the single DataTable portlet works fine.

        In short, only one DataTable per portal page.

        I do see this logged as well:

        4-Jun-2012 11:16:54 PM org.icefaces.ace.util.ComponentUtils findClientIds
        INFO: Cannot find component with identifier "controls" in view.

        Show
        Deryk Sinotte added a comment - - edited I think I need to correct the initial description. I was using the Accordion panel as a second portlet but that apparently registers as an ice.ace.DataTable as well. So now the issue appears to be that only one ice.ace.DataTable is functional if there are more than one on the portal page. If I add a portlet the doesn't register as an ice.ace.DataTable (e.g. Slider Entry) then the single DataTable portlet works fine. In short, only one DataTable per portal page. I do see this logged as well: 4-Jun-2012 11:16:54 PM org.icefaces.ace.util.ComponentUtils findClientIds INFO: Cannot find component with identifier "controls" in view.
        Hide
        Deryk Sinotte added a comment -

        Turns out that this isn't confined to portlets, just showed up there since it's easy to put two ace:datatable components on the same page.

        On a hunch I copied the <h:form> region of the accordionPanel.xhtml above the <h:form> region of the dataTableRowState.xhtml file so that there were two datatables on that page. When I ran it under Tomcat and opened up the DataTable Row State example, the row editing features were disabled just like they were when running in a portal page. So it turns out to be a problem with multiple datatables and not a portlet or bridge related issue.

        Show
        Deryk Sinotte added a comment - Turns out that this isn't confined to portlets, just showed up there since it's easy to put two ace:datatable components on the same page. On a hunch I copied the <h:form> region of the accordionPanel.xhtml above the <h:form> region of the dataTableRowState.xhtml file so that there were two datatables on that page. When I ran it under Tomcat and opened up the DataTable Row State example, the row editing features were disabled just like they were when running in a portal page. So it turns out to be a problem with multiple datatables and not a portlet or bridge related issue.
        Hide
        Nils Lundquist added a comment -

        This is due to the bug with :first selectors in delegated jQuery .on() events introduced in JQ 1.7.

        I raised my concerns about this in the component meeting after fixing the issue for ICE-8184 and was in favour of an investigation into the extent of this issue, but it was determined to be low prority. Was a matter of time before we started to find the bugs ourselves.

        I'll be making a JIRA to capture the larger issue at hand.

        Show
        Nils Lundquist added a comment - This is due to the bug with :first selectors in delegated jQuery .on() events introduced in JQ 1.7. I raised my concerns about this in the component meeting after fixing the issue for ICE-8184 and was in favour of an investigation into the extent of this issue, but it was determined to be low prority. Was a matter of time before we started to find the bugs ourselves. I'll be making a JIRA to capture the larger issue at hand.
        Hide
        Nils Lundquist added a comment -

        Reassigning to Deryk to confirm his issue is resolved.

        Tested in showcase sibling table case and row editing has been fixed.

        Revision #29315
        Committed by nils.lundquist
        Moments ago
        ICE-8204 - Rewrote editing selector not to use :first.

        Show
        Nils Lundquist added a comment - Reassigning to Deryk to confirm his issue is resolved. Tested in showcase sibling table case and row editing has been fixed. Revision #29315 Committed by nils.lundquist Moments ago ICE-8204 - Rewrote editing selector not to use :first.
        Hide
        Deryk Sinotte added a comment -

        Put two datatables on a page and could successfully edit rows in the second portlet. Resolving as fixed.

        Show
        Deryk Sinotte added a comment - Put two datatables on a page and could successfully edit rows in the second portlet. Resolving as fixed.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: