ICEfaces
  1. ICEfaces
  2. ICE-7373

NotificationPanel: Switching between tabs causes another notificationPanel div to be rendered

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.1-Beta
    • Fix Version/s: 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Test application be used is located at: repo\qa\trunk\Regression-Icefaces2\Sparkle\Nightly\notificationPanel
      ice & ace tabSet
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      Put the notificationPanel outside the rendering/unrendering container component, and just put it within the body anyways, since that's where it'll end up getting rendered regardless. Or inside a form but outside the containers that start and stop rendering it.
      Show
      Put the notificationPanel outside the rendering/unrendering container component, and just put it within the body anyways, since that's where it'll end up getting rendered regardless. Or inside a form but outside the containers that start and stop rendering it.

      Description

      To reproduce:
      1. Load test application
      2. Navigate to one of the tabSet tests (either Sparkle or Panel)
      3. Switch tabs back and forth
      Notice that a new div is being created each time you return to the tab with the notificationPanel.

      Screenshot 1: This is the initial page load.
      Screenshot 2: This is after switching to 'Tab 2' and back to 'Tab 1'.
      Screenshot 3: This is after switching to 'Tab 2' and back to 'Tab 1' again.
      1. 1.png
        127 kB
      2. 2.png
        127 kB
      3. 3.png
        127 kB

        Activity

        Hide
        Mark Collette added a comment -

        The notificationPanel renders the div inline, but then the javascipt moves it to the body, to avoid positioning issues. As such, when using panelTabSet or server-side tabSet, switching tabs will cause the notificationPanel to stop rendering, but will not cleanup the div from the body, since the dom diff knows nothing about that. So this has nothing to do with the panelTabSet or tabSet. It's about this render and move strategy of the notificationPanel.

        A simple work-around would be to put the notificationPanel outside the container component, and just put it within the body anyways, since that's where it'll end up getting rendered regardless. Or inside a form but outside the containers that start and stop rendering it.

        Show
        Mark Collette added a comment - The notificationPanel renders the div inline, but then the javascipt moves it to the body, to avoid positioning issues. As such, when using panelTabSet or server-side tabSet, switching tabs will cause the notificationPanel to stop rendering, but will not cleanup the div from the body, since the dom diff knows nothing about that. So this has nothing to do with the panelTabSet or tabSet. It's about this render and move strategy of the notificationPanel. A simple work-around would be to put the notificationPanel outside the container component, and just put it within the body anyways, since that's where it'll end up getting rendered regardless. Or inside a form but outside the containers that start and stop rendering it.
        Hide
        Ken Fyten added a comment -

        Suggest using the workaround regarding panelNotification placement.

        Show
        Ken Fyten added a comment - Suggest using the workaround regarding panelNotification placement.

          People

          • Assignee:
            Mark Collette
            Reporter:
            Cruz Miraback
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: