Beehive
  1. Beehive
  2. BEEHIVE-542

Multiple popup scripts generated when multiple popup config exist in one page

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: v1m1
    • Fix Version/s: 1.0.1
    • Component/s: NetUI
    • Labels:
      None

      Description

      When a page has multple popup config like the following,

      <br/>
      <netui:anchor action="goNested" popup="true">
      <netui:configurePopup width="500" height="500" directories="true"/>
      </netui:anchor>

      <br/>
      <netui:anchor action="goNested" popup="true">
      <netui:configurePopup width="500" height="500"
      toolbar="false" location="false"
      directories="true" status="false"
      menubar="false" resizable="false"
      scrollbars="false" replace="false"/>
      </netui:anchor>

      <br/>

      multiple popup window open scripts generated multiple times in the page, see below.

      window_Netui_Popup = null;
      function Netui_Popup(url, name, features, replace)
      {
      if (window_Netui_Popup != null && ! window_Netui_Popup.closed)

      { window_Netui_Popup.focus(); return; }
      window_Netui_Popup=open(url, name, features, replace);
      if (window_Netui_Popup.opener == null) window_Netui_Popup.opener=self;
      }

      window_Netui_Popup = null;
      function Netui_Popup(url, name, features, replace)
      {
      if (window_Netui_Popup != null && ! window_Netui_Popup.closed)
      { window_Netui_Popup.focus(); return; }

      window_Netui_Popup=open(url, name, features, replace);
      if (window_Netui_Popup.opener == null) window_Netui_Popup.opener=self;
      }

      Expect to see only one block of this script generated.

      Repro: Unzip the repro pageflow and put the pageflow into the netui-blanc template wewbapp. Compile and deploy to tomcat. Browse to the pageflow by http://localhost:8080/webapp/directories/Controller.jpf. Once the page is loaded, do a view source and check the JS script that are generated for that page.

      1. jira542.ZIP
        2 kB
        Julie Zhuo
      2. j542-patch.txt
        29 kB
        Carlin Rogers

        Activity

        Hide
        Julie Zhuo added a comment -

        Verified with rev351894. There is no duplicate funstion scripts anymore. The instances of initialization still shows up as our limitation. So, we close this issue for now.

        Show
        Julie Zhuo added a comment - Verified with rev351894. There is no duplicate funstion scripts anymore. The instances of initialization still shows up as our limitation. So, we close this issue for now.
        Hide
        Rich Feit added a comment -

        Committed with revision 290996.

        Show
        Rich Feit added a comment - Committed with revision 290996.
        Hide
        Carlin Rogers added a comment -

        Rich, here's a patch to help address this bug. My changes for this patch will make
        sure the popup support functions are only written once. I did this by managing
        a unique (by scope) open popup window in an associated array of windows
        rather than writing out the same functions to handle and open the popup windows.
        The popup support function to open the NetUI popup window now takes a
        string as the name to identify the window in the associated array.

        This means a button onClick will call the same generated function but pass
        an additional string for the scoped popup window. For example,...
        onClick=Netui_Popup_portletB(url,...,false)
        is now generated as...
        onClick=Netui_Popup(url,...,false,'Netui_Window_portletB')

        Note that for multiple popups on the same page there will still
        be multiple instances of an initialization for the window to null
        in the associated array.

        The various popup tests have been update and are part of this
        patch.

        Show
        Carlin Rogers added a comment - Rich, here's a patch to help address this bug. My changes for this patch will make sure the popup support functions are only written once. I did this by managing a unique (by scope) open popup window in an associated array of windows rather than writing out the same functions to handle and open the popup windows. The popup support function to open the NetUI popup window now takes a string as the name to identify the window in the associated array. This means a button onClick will call the same generated function but pass an additional string for the scoped popup window. For example,... onClick=Netui_Popup_portletB(url,...,false) is now generated as... onClick=Netui_Popup(url,...,false,'Netui_Window_portletB') Note that for multiple popups on the same page there will still be multiple instances of an initialization for the window to null in the associated array. The various popup tests have been update and are part of this patch.
        Hide
        Rich Feit added a comment -

        Because this one's harmless, I'm pushing it to the next release.

        Show
        Rich Feit added a comment - Because this one's harmless, I'm pushing it to the next release.

          People

          • Assignee:
            Julie Zhuo
            Reporter:
            Julie Zhuo
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development