Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1527

@Dialog component triggers a lot a javascript errors on scroll after show/hide by EventListener

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.2
    • Fix Version/s: 4.1.3
    • Component/s: XHR/dhtml/Ajax
    • Labels:
      None
    • Environment:
      JRE1.5.0.7, Tomcat 5.5, WinXP, Firefox 2, IE 7

      Description

      Issue with the dojo javascript with the @Dialog component and EventListener annotations:

      • the @Dialog component is initialized as hidden
      • A user clicks on a link, which triggers an EventListener, which updates a component that wraps the @Dialog and makes it visible
      • within the Dialog, a "Close" button is displayed. When the user clicks on it, it triggers the EventListener again, the wrapper component is updated and the Dialog is set back to hidden.

      Everything works as expected, but once the Dialog has been opened then closed once, every scroll event on the page triggers js errors.
      on FF2.0 : "node has no properties" on line 96 in dojo.js
      on IE7 : "offsetWidth is null or is not an object" (freely translated from french)

      Tried it on 4.1.1 and latest 4.1.2 snapshot : exact same behavior.

      my HTML template:

      <span jwcid="dialwrapper@Any">
      <div jwcid="dial@Dialog" hidden="ognl:hidden" backgroundColor="blue">
      <div style="background-color: white; border-width: 1px; width: 600px; height: 400px;">DIV content<br />
      <form><input type="button" onclick="someJsThatEventuallyTriggersTheEventListener();" value="Close" /></form>
      </div>
      </div>
      </span>

      my page class:

      @InitialValue("true")
      public abstract void setHidden(boolean value);

      @EventListener(elements = "dialwrapper", events = "someCustomJsEvent", submitForm = "hiddenFormWhichUpdatesSelectedAnnounceId")
      public void selectAnnounce(IRequestCycle cycle, BrowserEvent event)

      { setHidden(getSelectedAnnounceId() == null); cycle.getResponseBuilder().updateComponent("dialwrapper"); }

        Attachments

        1. Dialog.script
          2 kB
          Lionel Touati

          Activity

            People

            • Assignee:
              jkuhnert Jesse Kuhnert
              Reporter:
              cdtap Christian Dutaret
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: