Re: modal dialog and nesting of forms.
imho simpler to put a form inside modal's panel and call it a day IMHO the modalwindow-form requirement is weird. It's counter-intuitive and inelegant - just look at all the html elements created in modal window's js. It breaks encapsulation: Why should I put the modal window into a form, when I don't even know whether a nested panel uses a form or not? Furthermore I remember having problems with nesting a multipart-form inside a modal window (inside a form). Form nesting is a special (questionable) case, why should a developer even know about if he just want's to put a form into a modal window? We should fix this issue exactly as it has been proposed already, by introducing a new interface in core: IMarkupSeparator (or whatever its name) could indicate that its contained markup will not be in the normal markup tree. This marker could be useful for other cases too, not only form separation. Someone mentioned another use case but I'll have to look up the details. I'll create a new patch for WICKET-3404. Regards Sven On 02/16/2012 09:11 PM, Igor Vaynberg wrote: On Thu, Feb 16, 2012 at 12:03 PM, Johan Compagnerjcompag...@gmail.com wrote: its way better to say that you should override that method and return false.. that would require every panel that has a form to be built with this in mind. imho much simpler to always put the modal inside a form instead. because now you have to already know that you will show forms in a dialog and place a form on some page.. you just have to make sure that you always put your modal window inside a wicket form What if you just have a modal window that you reuse all over the place in many pages then you have to add a form? Why doesn't wicket do that him self then inside the modal window component i suppose since modal window is a panel it can have a form in it. patch? :) now it is also not always that nice, now the panel must know that it is shown in a modal window and override that method i am just thinking can't we make that isRootForm smarter that it also test if it is inside a modal window.. that would require the modal to be in core, or implement some new core interface. imho simpler to put a form inside modal's panel and call it a day. -igor On Thu, Feb 16, 2012 at 20:58, Igor Vaynbergigor.vaynb...@gmail.comwrote: thats why the javadoc says to put the modal window component inside a wicket form... -igor On Thu, Feb 16, 2012 at 11:55 AM, Johan Compagnerjcompag...@gmail.com wrote: but the modal dialog iself is not in a form.. there are only 2 forms in my example the one that the modal dialog generates in js code and the one inside the panel that i show in the modal dialog But it is fixed by overriding that isRootForm() and returning false myself then it works just fine On Thu, Feb 16, 2012 at 20:52, Igor Vaynbergigor.vaynb...@gmail.com wrote: the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagnerjcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagnerjcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.com wrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because
Re: modal dialog and nesting of forms.
the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.comwrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.comwrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagner jcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.comwrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
but the modal dialog iself is not in a form.. there are only 2 forms in my example the one that the modal dialog generates in js code and the one inside the panel that i show in the modal dialog But it is fixed by overriding that isRootForm() and returning false myself then it works just fine On Thu, Feb 16, 2012 at 20:52, Igor Vaynberg igor.vaynb...@gmail.comwrote: the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagner jcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.com wrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
thats why the javadoc says to put the modal window component inside a wicket form... -igor On Thu, Feb 16, 2012 at 11:55 AM, Johan Compagner jcompag...@gmail.com wrote: but the modal dialog iself is not in a form.. there are only 2 forms in my example the one that the modal dialog generates in js code and the one inside the panel that i show in the modal dialog But it is fixed by overriding that isRootForm() and returning false myself then it works just fine On Thu, Feb 16, 2012 at 20:52, Igor Vaynberg igor.vaynb...@gmail.comwrote: the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagner jcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.com wrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
its way better to say that you should override that method and return false.. because now you have to already know that you will show forms in a dialog and place a form on some page.. What if you just have a modal window that you reuse all over the place in many pages then you have to add a form? Why doesn't wicket do that him self then inside the modal window component now it is also not always that nice, now the panel must know that it is shown in a modal window and override that method i am just thinking can't we make that isRootForm smarter that it also test if it is inside a modal window.. On Thu, Feb 16, 2012 at 20:58, Igor Vaynberg igor.vaynb...@gmail.comwrote: thats why the javadoc says to put the modal window component inside a wicket form... -igor On Thu, Feb 16, 2012 at 11:55 AM, Johan Compagner jcompag...@gmail.com wrote: but the modal dialog iself is not in a form.. there are only 2 forms in my example the one that the modal dialog generates in js code and the one inside the panel that i show in the modal dialog But it is fixed by overriding that isRootForm() and returning false myself then it works just fine On Thu, Feb 16, 2012 at 20:52, Igor Vaynberg igor.vaynb...@gmail.com wrote: the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagner jcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.com wrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan
Re: modal dialog and nesting of forms.
On Thu, Feb 16, 2012 at 12:03 PM, Johan Compagner jcompag...@gmail.com wrote: its way better to say that you should override that method and return false.. that would require every panel that has a form to be built with this in mind. imho much simpler to always put the modal inside a form instead. because now you have to already know that you will show forms in a dialog and place a form on some page.. you just have to make sure that you always put your modal window inside a wicket form What if you just have a modal window that you reuse all over the place in many pages then you have to add a form? Why doesn't wicket do that him self then inside the modal window component i suppose since modal window is a panel it can have a form in it. patch? :) now it is also not always that nice, now the panel must know that it is shown in a modal window and override that method i am just thinking can't we make that isRootForm smarter that it also test if it is inside a modal window.. that would require the modal to be in core, or implement some new core interface. imho simpler to put a form inside modal's panel and call it a day. -igor On Thu, Feb 16, 2012 at 20:58, Igor Vaynberg igor.vaynb...@gmail.comwrote: thats why the javadoc says to put the modal window component inside a wicket form... -igor On Thu, Feb 16, 2012 at 11:55 AM, Johan Compagner jcompag...@gmail.com wrote: but the modal dialog iself is not in a form.. there are only 2 forms in my example the one that the modal dialog generates in js code and the one inside the panel that i show in the modal dialog But it is fixed by overriding that isRootForm() and returning false myself then it works just fine On Thu, Feb 16, 2012 at 20:52, Igor Vaynberg igor.vaynb...@gmail.com wrote: the modal dialog form is, but since the panel is rendered inside modal's parent initially the wicket form inside the modal should see the wicket form that the modal itself is in... the rendered hierarchy should be like this form - wicket form modal window content panel div - wicket form inside the modal rendered as div instead of form now when modal is opened the content panel is reparented in dom body form - dom form created by modal js content panel div - wicket form inside the modal's content -igor On Thu, Feb 16, 2012 at 11:36 AM, Johan Compagner jcompag...@gmail.com wrote: ok for a form inside a modal dialog you need to override: /** * @see org.apache.wicket.markup.html.form.Form#isRootForm() */ @Override public boolean isRootForm() { return false; } because the default behavior will ofcourse not find any other form because the modal dialog form is just in javascript/html, its not a wicket component.. On Thu, Feb 16, 2012 at 20:22, Johan Compagner jcompag...@gmail.com wrote: yes i just read that in a jira issue :) but in my example it doesn't ... will check it On Thu, Feb 16, 2012 at 20:20, Igor Vaynberg igor.vaynb...@gmail.com wrote: the whole idea of putting the modal into a wicket form is that forms inside the modal should change their form tags to divs because they see they are inside another form... -igor On Thu, Feb 16, 2012 at 11:16 AM, Johan Compagner jcompag...@gmail.com wrote: here: http://wicket.apache.org/apidocs/1.5/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.html we say If you want to use form in modal window component make sure that you put the modal window itself in another form (nesting forms is legal in Wicket) and that the form on modal window is submitted before the window get closed. problem is that this is illegal in the browser. And chrome some if i push through ajax new content in the modal dialog that has that form completely removes the form from the resulting component tree.. I guess this is because the modal dialog generates a form tag itself, and then also a form tag is generated in the content of the modal dialog itself and chrome just filters that out? Weird thing is that chrome doesn't do that when you do a full page refresh... johan