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

        Deryk Sinotte created issue -
        Deryk Sinotte made changes -
        Field Original Value New Value
        Salesforce Case []
        Assignee Priority P1
        Assignee Deryk Sinotte [ deryk.sinotte ]
        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.
        Deryk Sinotte made changes -
        Summary Some datatable components don't work unless they are the first ones on the page Only first datatable on a page is functional if more than one is rendered
        Environment ACE portal portlet ACE DataTable
        Salesforce Case []
        Component/s ACE-Components [ 10050 ]
        Component/s Components [ 10012 ]
        Affects Version/s EE-3.0.0.GA [ 10262 ]
        Affects Version/s 3.0.1 [ 10282 ]
        Ken Fyten made changes -
        Salesforce Case []
        Fix Version/s 3.1.0.BETA2 [ 10336 ]
        Assignee Deryk Sinotte [ deryk.sinotte ] Nils Lundquist [ nils.lundquist ]
        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.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29315 Tue Jun 05 14:13:20 MDT 2012 nils.lundquist ICE-8204 - Rewrote editing selector not to use :first.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
        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.
        Nils Lundquist made changes -
        Assignee Nils Lundquist [ nils.lundquist ] Deryk Sinotte [ deryk.sinotte ]
        Ken Fyten made changes -
        Summary Only first datatable on a page is functional if more than one is rendered REGRESSION - Only first datatable on a page is functional if more than one is rendered
        Salesforce Case []
        Affects Version/s 3.0.1 [ 10282 ]
        Affects Version/s EE-3.0.0.GA [ 10262 ]
        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.
        Deryk Sinotte made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: