Improve ModalWindow form handling
---------------------------------

                 Key: WICKET-3404
                 URL: https://issues.apache.org/jira/browse/WICKET-3404
             Project: Wicket
          Issue Type: Improvement
          Components: wicket-extensions
    Affects Versions: 1.5-RC1
            Reporter: Sven Meier


Currently ModalWindow's javascript generates a generic <form> tag into the page.
This is done to support nested forms while preventing temporary invalid HTML 
markup in the browser, i.e. a form nested in a another form.

IMHO this is rather inelegant, which manifests itself in the following note in 
ModalWindow's javadoc:
"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) ..."
I'm always having a hard time to explain this sentence to Wicket newcomers.

My proposal: Let go of the <form> tag in javascript with the attached patch!

The changed code now adds ModalWindow's markup first into the HTML page and 
then replaces its content *directly* with the component's markup to show in the 
modal window (the current implementation does it the other way around).

The proposed change would require a migration effort for some usages of 
ModalWindow though. Forms inside a ModalWindow inside another form have to be 
'made root forms', either by overriding isRootForm() and getRootForm() or 
perhaps we could introduce a new interface (e.g. IFormSeparator) which signals 
to a form that its containment in another form doesn't make it a nested form.

Note that this issue is not about esthetics only, we have reocurring usecases 
in our projects (a form inside a modal window inside another *multipart* form) 
which require quirks to make it work. I can provide more information on this if 
required.

Further note that even standard form submits are now possible on ModalWindows 
too (might be interesting for multipart uploads directly initiated from a 
ModalWindow's form).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to