ICEfaces
  1. ICEfaces
  2. ICE-7946

ace:fileEntry component conflicts with ice:commandLink under MyFaces on IE7

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 3.0
    • Fix Version/s: 3.1, EE-3.0.0.GA_P01
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      MyFaces 2.1.6, IE7
    • Assignee Priority:
      P2
    • Workaround Exists:
      Yes
    • Workaround Description:
      Use h:commandLinks instead of ice:commandLinks or use Mojarra instead of MyFaces.

      Description

      Following on IPCK-380, an issue was encountered on IE7, where a javascript error would arise after the ace fileEntry component had successfully uploaded a file. Investigation found that the problem was fixed after changing the ice:commandLink components in the navigation panel to h:commandLinks. This problem could only be reproduced on IE7, and not on newer versions on IE in IE7 mode.

      The javascript error is "Error: 'form.navFrm:j_idcl' is null or not an object."

      The j_idcl appears related to the ice:commandLink hidden input, and navFrm is the form name of the navigation panel form in the EE Composite Showcase. The ACE showcase does not exhibit this problem as it does not use ice:commandLinks in its navigation panel.

        Activity

        Hide
        Mark Collette added a comment -

        ice:commandLink under MyFaces renders an onclick handler that submits the form and then does an onAfterUpdate() to clear the hidden input of its shared form field. At that point, the page could have navigated anywhere and updated anything, so that the submitted form may not be rendered any more, and the hidden input field might not be found. I don't recognise the syntax of form dot element id that is used in 'form.navFrm:j_idcl' but I recimmend doing a simple getElementById, and handling if it returns nothing. And it would be nice if it could be done when the response comes in, but before the updates are done. The different submit mechanism of fileEntry might be affecting this, but ice:commandLink's approach with is suspicious enough that attempting a change there is a good first step.

        Show
        Mark Collette added a comment - ice:commandLink under MyFaces renders an onclick handler that submits the form and then does an onAfterUpdate() to clear the hidden input of its shared form field. At that point, the page could have navigated anywhere and updated anything, so that the submitted form may not be rendered any more, and the hidden input field might not be found. I don't recognise the syntax of form dot element id that is used in 'form.navFrm:j_idcl' but I recimmend doing a simple getElementById, and handling if it returns nothing. And it would be nice if it could be done when the response comes in, but before the updates are done. The different submit mechanism of fileEntry might be affecting this, but ice:commandLink's approach with is suspicious enough that attempting a change there is a good first step.
        Hide
        Mircea Toma added a comment -

        Cannot reproduce this issue. Could be that fixes for other issues have solve it.

        Show
        Mircea Toma added a comment - Cannot reproduce this issue. Could be that fixes for other issues have solve it.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: