Thank you! Works great.
On Thursday, February 11, 2016 at 4:27:22 PM UTC-5, Val K wrote: > > Hi! > Here is my solution. I have modal_wrapper function. In controller file, I > have two controllers - main_page and modal_content: > > > > def *main_page*(): > > main_pg=DIV(<any your content>) > > m_cont = LOAD(f='*modal_content**.load*', ajax=True, ajax_trap=True > ) > > dialog = modal_wrapper(m_cont, _id='*cont_id*', header='Header', > footer='footer') > > show_modal_btn = BUTTON( 'Show modal', > _type="button", > _class = "btn > btn-default", > _onclick=""" $('# > *cont_id*').modal('show') """) > > #don't forget to add dialog and show_modal_btn to main page > main_pg.append(show_modal_btn) # or main_pg.append( DIV(show_modal_btn) > ) or something else > main_pg.append(dialog) > > return dict(main_pg = main_pg) > > > > > # keep in mind just one thing: > # this controller is exposed by *.load, so it must return a dict of ONE > element > # to return more than one element - wrap all in one DIV: > # ret = DIV() > # ret.append( ... ) > # ret.append( form ) > # ret.append( ... ) > # return dict(ret = ret) > > def *modal_content*(): > > form = SQLFORM(...) # or even form = SQLFORM.grid(...) > > return dict(form=form) > > > > # means bootstrap 3 > def* modal_wrapper*(content, _id, header='', footer=''): > > main_wrap = DIV('', _class="modal fade", _role="dialog", _id=_id, > _tabindex="-1" ) > title_id = _id + '_title' > main_wrap['_aria-labelledby']=title_id > > dialog_div=DIV('', _class="modal-dialog" , _role="document") > content_div=DIV('', _class="modal-content") > header_div = DIV( _class="modal-header") > > close_cross = BUTTON( > SPAN(XML('×'), **{'_aria-hidden':"true"}), > _type="button", _class="close", > data={'dismiss':"modal"}, > **{'_aria-label':"Close"} > ) > title_h4 = H4( header, _class="modal-title", _id = title_id) > body_div = DIV( content, _class="modal-body") > > > close_btn = BUTTON('Close', _type="button", _class="btn btn-default", > data={'dismiss':"modal"}) > footer_div = DIV( footer, close_btn, _class="modal-footer") > > # gluon all > main_wrap[0] = dialog_div > dialog_div[0] = content_div > > header_div.append(close_cross) > header_div.append(title_h4) > > [content_div.append(c) for c in (header_div, body_div, footer_div)] > return main_wrap > > > > > > > > > On Thursday, February 11, 2016 at 8:07:32 PM UTC+3, billmac...@gmail.com > wrote: >> >> Thank you for your answer Massimo. When I implemented this. >> >> <button onclick='window.open("{{=URL("my_view",args=something.id)}}", >> "mywindow");'>Apply To This Post</button> >> >> It shows me a button and then I get redirected to another page. I just >> wanted a pop up window open up with a form to submit that user can move >> around without being redirected to another page. >> >> >> >> >> >> On Wednesday, February 10, 2016 at 10:51:11 PM UTC-5, Massimo Di Pierro >> wrote: >>> >>> I see you want a different window, not a modal. >>> >>> then you have to put the form logic in its own controller action and >>> call it from js >>> >>> <button onclick="window.open("{{=URL('form_action)}}");">click >>> me</button> >>> >>> On Wednesday, 10 February 2016 18:00:44 UTC-6, billmac...@gmail.com >>> wrote: >>>> >>>> Thank you for the answer Massimo. I did this like you said to put the >>>> form in the body in index/popup.html however, it didn't pop up like the >>>> example in the link above. Instead I got it in the same browser. I am >>>> guessing my implementation is wrong. >>>> >>>> <div class="modal fade"> >>>> <div class="modal-dialog"> >>>> <div class="modal-content"> >>>> <div class="modal-header"> >>>> <button type="button" class="close" data-dismiss="modal" >>>> aria-hidden="true">×</button> >>>> <h4 class="modal-title">Modal title</h4> >>>> </div> >>>> <div class="modal-body"> >>>> >>>> {{=form}} >>>> >>>> </div> >>>> <div class="modal-footer"> >>>> <button type="button" class="btn btn-default" >>>> data-dismiss="modal">Close</button> >>>> <button type="button" class="btn btn-primary">Save >>>> changes</button> >>>> </div> >>>> </div><!-- /.modal-content --> >>>> </div><!-- /.modal-dialog --> >>>> </div><!-- /.modal --> >>>> >>>> >>>> >>>> >>>> On Wednesday, February 10, 2016 at 5:06:28 PM UTC-5, Massimo Di Pierro >>>> wrote: >>>>> >>>>> Bootstrap3 has built-int modals: >>>>> https://nakupanda.github.io/bootstrap3-dialog/ >>>>> You can but {{=form}} in the body of the modal. >>>>> >>>>> On Tuesday, 9 February 2016 14:26:05 UTC-6, billmac...@gmail.com >>>>> wrote: >>>>>> >>>>>> Hello, A new user migrating from Django to web2py and absolutely >>>>>> loving it. A quick question. How do I use a light box or a pop up window >>>>>> to >>>>>> display a form in my view? >>>>>> >>>>>> >>>>>> for example in default/index.html >>>>>> >>>>>> {{=form}} >>>>>> >>>>>> Want to show that form in a pop up window. >>>>>> >>>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.