Re: modal dialog and nesting of forms.

2012-02-17 Thread Sven Meier

 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.

2012-02-16 Thread Igor Vaynberg
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.

2012-02-16 Thread Johan Compagner
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.

2012-02-16 Thread Johan Compagner
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.

2012-02-16 Thread Igor Vaynberg
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.

2012-02-16 Thread Johan Compagner
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.

2012-02-16 Thread Igor Vaynberg
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.

2012-02-16 Thread Johan Compagner
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.

2012-02-16 Thread Igor Vaynberg
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