Great.
On 11/2/07, Matej Knopp <[EMAIL PROTECTED]> wrote: > > Thanks, I've assigned the issue to me, will look at it as soon as I have > time. > > -Matej > > On 11/1/07, Francisco Diaz Trepat - gmail > <[EMAIL PROTECTED]> wrote: > > Done, I reported the issue. Attached the Ziped QuickStart and added the > FIX > > or a Fix in the form of a Comment. > > > > Please let me know as I might done something incorrectly like filling > the > > correct values for the properties of the Issue. Example: it is not > major, it > > is minor. things like that. > > > > > > f(t) > > > > > > On 11/1/07, Matej Knopp <[EMAIL PROTECTED]> wrote: > > > > > > Yeah, that would work. > > > > > > Cheers, > > > -Matej > > > > > > On 11/1/07, Francisco Diaz Trepat - gmail > > > <[EMAIL PROTECTED]> wrote: > > > > Matej I've got the QuickStart. I've loaded it with Netbeans 6 beta 2 > > > with > > > > the maven plugin. Everything compiled and ran perfectly. > > > > > > > > I added the panels that show the issue. > > > > > > > > Now what? > > > > > > > > Do I Zip the root project folder with all inside and attach it to a > > > JIRA? > > > > > > > > thanks, > > > > > > > > f(t) > > > > > > > > > > > > On 10/31/07, Matej Knopp <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Well, it's the last resort for you, but first resort for me :) > > > > > Issues that are easily reproduce (quickstart) can expect to be > > > > > resolved sooner, that's how it works. > > > > > > > > > > -Matej > > > > > > > > > > On 10/31/07, Francisco Diaz Trepat - gmail > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > 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] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > 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] > >