Ok I wanted to leave the QuickStart the last resort.

I'll get right on it. Jira + QuickStart.

We must all contribute.

:-)

f(t)


On 10/31/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
>
> So even better than html page would be a quickstart attched to jira
> issue that you create about this problem :-)
>
> Cheers,
> -Matej
>
> On 10/31/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I got your point. But I need a complete html file to be able to
> > reproduce it with as little effort as possible :) My time is quite
> > limited lately :(
> >
> > I don't mind fixing this in wicket, but I need to make sure that this
> > is the right fix and has no side-effect.
> >
> > -Matej
> >
> > On 10/31/07, Francisco Diaz Trepat - gmail
> > <[EMAIL PROTECTED]> wrote:
> > > Hi Matej. Have you read the the forwarded part of the last message?
> > >
> > > Because that is where I explained the behavior. Basically in Firefox
> if I
> > > replace a panel with two subpanels the second subpanel doesn't get
> replaced.
> > > Please check out the message bellow, the one I forwarded.
> > >
> > > If you see the org/apache/wicket/ajax/wicket-ajax.js in
> > > wicket-1.3.0-beta4.jar. You will see the code for the *
> > > Wicket.replaceOuterHtml*
> > >
> > > In there, I understand that there are two main things going on:
> > >
> > > 1) There is some code that it is not used and so, in our version we
> > > commented it.
> > >
> > > 2) And most important, we fixed a the issue for us by moving the nodes
> in
> > > the tree herarchy that appears wrongly in the get *
> > > range.createContextualFragment*() function from the Gecko (firefox)
> engine.
> > > If there are many subpanels, the range uncorrectly parses the content,
> > > resulting in a fragment that contains many childs instead of one.
> > >
> > > The HTML is explained bellow, if that explanation fails I'll try to
> send you
> > > a file. ok?
> > >
> > > Our function basically call the *Wicket.replaceOuterHtml=function(){
> blah,
> > > blah* to replace the one in the framework with the fixed one. And we
> call
> > > the replacement on a window.setTimeOut() on the specific page in which
> we
> > > have the panel with subpanels.
> > >
> > > thanks,
> > >
> > > f(t)
> > >
> > >
> > >
> > > On 10/30/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Sorry, I'm not sure I follow.
> > > >
> > > > there is some code in replaceOuterHtml that seems redundant so it
> could
> > > > be like this:
> > > >
> > > > Wicket.replaceOuterHtml = function(element, text) {
> > > >
> > > >     if (Wicket.Browser.isIE()) {
> > > >        Wicket.replaceOuterHtmlIE(element, text);
> > > >     } else if (Wicket.Browser.isSafari() || Wicket.Browser.isOpera())
> {
> > > >        Wicket.replaceOuterHtmlSafari(element, text);
> > > >     } else /* GECKO */ {
> > > >        // create range and fragment
> > > >         var range = element.ownerDocument.createRange();
> > > >         range.selectNode(element);
> > > >        var fragment = range.createContextualFragment(text);
> > > >
> > > >         element.parentNode.replaceChild(fragment, element);
> > > >     }
> > > > }
> > > >
> > > > Still I'm not sure what the problem is that your code solves. Can
> you
> > > > please provide me a html file where the replaceOuterHtml call fails?
> > > >
> > > > -Matej
> > > >
> > > >
> > > > Francisco Diaz Trepat - gmail  wrote / napĂ­sal(a):
> > > > > Hi a cowerker here might have found something here. We have fix
> the
> > > > issue by
> > > > > replacing the *Wicket.replaceOuterHtml* function.
> > > > >
> > > > > Could this be a BUG?
> > > > >
> > > > > I have forwarded the initial message that explains the behavior.
> > > > >
> > > > > Here is the code that fixed our problem:
> > > > >
> > > > > f(t)
> > > > >
> > > > >
> > > > >
> > > > > //
> > > > >
> > > >
> --------------------------------------------------------------------------------
> > > > > // Hack that demonstrates a possible fix for a problem with Gecko
> based
> > > > > browsers.
> > > > > // The problem happens in this line:
> > > > > //    var fragment = range.createContextualFragment(text);
> > > > > // If there are many subpanels, the range uncorrectly parses the
> > > > content,
> > > > > resulting
> > > > > // in a fragment that contains many childs instead of one.
> > > > > // The first child is the first subpanel, and the rest are the
> other
> > > > > subpanels,
> > > > > // which are incorrectly hang at the same level as the main panel,
> > > > instead
> > > > > of being
> > > > > // childs of it.
> > > > >
> > > > > function replaceWicketReplaceOuterHtml() {
> > > > >   Wicket.replaceOuterHtml = function(element, text) {
> > > > >     if (Wicket.Browser.isIE()) {
> > > > >       Wicket.replaceOuterHtmlIE(element, text);
> > > > >     } else if (Wicket.Browser.isSafari() || Wicket.Browser.isOpera())
> {
> > > > >       Wicket.replaceOuterHtmlSafari(element, text);
> > > > >     } else /* GECKO */ {
> > > > >       // create range and fragment
> > > > >       var range = element.ownerDocument.createRange();
> > > > >       range.selectNode(element);
> > > > >       var fragment = range.createContextualFragment(text);
> > > > >
> > > > >       // The following code seems useless, and then is commented
> out
> > > > >         // get the elements to be added
> > > > >         //var elements = new Array();
> > > > >         //for (var i = 0; i < fragment.childNodes.length; ++i)
> > > > >         //elements.push(fragment.childNodes[i]);
> > > > >
> > > > >       // move additional subnodes to the correct place in the dom
> > > > >       if (fragment.childNodes.length > 1) {
> > > > >         // the for clause intentionally starts from 1,
> > > > >         // to fix only the wrongly hanging subnodes.
> > > > >         for (var i = 1; i < fragment.childNodes.length; ++i) {
> > > > >           var otherNode = fragment.childNodes[i];
> > > > >
> > > > >           fragment.childNodes
> [0].childNodes[0].appendChild(otherNode);
> > > > >         }
> > > > >       }
> > > > >
> > > > >       element.parentNode.replaceChild(fragment, element);
> > > > >     }
> > > > >   }
> > > > > }
> > > > >
> > > > > window.setTimeout(replaceWicketReplaceOuterHtml, 1000);
> > > > > //
> > > > >
> > > >
> --------------------------------------------------------------------------------
> > > > >
> > > > >
> > > > > ---------- Forwarded message ----------
> > > > > From: Francisco Diaz Trepat - gmail <
> [EMAIL PROTECTED]>
> > > > > Date: Oct 23, 2007 10:27 PM
> > > > > Subject: Re: Ajax Panel Replacement Issue on Fireforx only (Kind
> of
> > > > Complex
> > > > > Scenario)
> > > > > To: users@wicket.apache.org
> > > > >
> > > > > Thanks Matej, I will but further ahead. I'll try to see what is
> going on
> > > > > with more detail by using FIREBUG toolbar or something of the
> sort.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > If everything else fails I'll provide a QuickStart.
> > > > >
> > > > >
> > > > > Thanks,
> > > > > f(t)
> > > > >
> > > > > On 10/23/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
> > > > >> Can you provide a quickstart?
> > > > >>
> > > > >> -Matej
> > > > >>
> > > > >> On 10/23/07, Francisco Diaz Trepat - gmail
> > > > >> <[EMAIL PROTECTED]> wrote:
> > > > >>> Hi. I'm going to try to explain the best that I can and without
> > > > posting
> > > > >> code
> > > > >>> at first the issue that is happening.
> > > > >>>
> > > > >>> I have the following panels A and C. A has two instances of B
> nested
> > > > >> inside
> > > > >>> of it. C is empty:
> > > > >>>
> > > > >>> [
> > > > >>>
> > > > >>> ==PANEL-A==
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B1==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B2==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>> ]
> > > > >>>
> > > > >>>
> > > > >>> [
> > > > >>> ==PANEL-C==
> > > > >>> ]
> > > > >>>
> > > > >>> What happens is that on another Panel that represent the Page
> content,
> > > > >> lets
> > > > >>> call it ContentPanel I need to toggle between panels A and C
> with the
> > > > >> click
> > > > >>> of an Ajax Link.
> > > > >>>
> > > > >>> The first state is with panel C that it is empty (actually with
> lots
> > > > of
> > > > >>> HiddenFields, but empty visually). On click I need to Show the A
> panel
> > > > >> that
> > > > >>> has viewable content. Finally on another click I need to go back
> to
> > > > the
> > > > >>> original state of C panel.
> > > > >>>
> > > > >>> So far so good. The issue is as follows:
> > > > >>>
> > > > >>> The problem happens on Firefox only (latest version 2.0.0.8) (on
> IE 6
> > > > >> and 7
> > > > >>> it is not an issue as everything works fine).
> > > > >>>
> > > > >>> What happens is that I click on the link, and panel A shows
> perfectly.
> > > > >> But
> > > > >>> when I click again to put the C panel back, the A panel gets
> Partially
> > > > >>> removed, that is panel A's first panel B instance B1 gets
> removed, but
> > > > >> B2 is
> > > > >>> not removed and it is still visible, plus I get the C panel, as
> C
> > > > panel
> > > > >>> doesn't have viewable content it doesn't add to the visual
> problem.
> > > > >> *Ej*:
> > > > >>> [
> > > > >>>
> > > > >>> ==PANEL-A==
> > > > >>>
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B2==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>> ]
> > > > >>>
> > > > >>> [
> > > > >>> ==PANEL-C==
> > > > >>> ]
> > > > >>>
> > > > >>> Now If I click again, I get Panel A with "2 instances of B2" as
> panel
> > > > B2
> > > > >> was
> > > > >>> not removed.
> > > > >>> [
> > > > >>>
> > > > >>> ==PANEL-A==
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B1==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B2==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>>     [
> > > > >>>
> > > > >>>     ==PANEL-B2==
> > > > >>>
> > > > >>>     ]
> > > > >>>
> > > > >>> ]
> > > > >>>
> > > > >>> So and so forth every click and click, I get panel A partially
> removed
> > > > >> and
> > > > >>> when added again I have another instance of B2 as it is never
> removed.
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> Any Ideas?
> > > > >>>
> > > > >>> thanks,
> > > > >>>
> > > > >>> f(t)
> > > > >>>
> > > > >>
> ---------------------------------------------------------------------
> > > > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > >> For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >>
> > > > >>
> > > > >
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to