Reposted here since there are some indentation issues with google:

http://www.web2py.com/AlterEgo/default/show/258

On Feb 20, 12:01 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> Here is a little better with a title in the modal and some comments of
> explanation
>
> # create a model
> db.define_table('organization',Field('name',notnull=True,unique=True),format='%
> (name)s')
> db.define_table('person',Field('name'),Field('organization',db.organization))
>
> # create link that open a modal window and calls
> # add_organization via ajax using web2py ajax trapping
> # forms will be processed and stay in the modal window if errors
> db.person.organization.comment = \
>     SPAN(A('add',_class='thickbox',
>            _title='Add a new organizaiton',
>            _href='#TB_inline?
> height=100&width=600&inlineId=modal_content'),
>          DIV(LOAD('default','add_organization',ajax=True),
>              _id='modal_content',_class='hidden'))
>
> # load required ajax libraries
> response.files.append('http://jquery.com/demo/thickbox/thickbox-code/
> thickbox.js')
> response.files.append('http://jquery.com/demo/thickbox/thickbox-code/
> thickbox.css')
>
> # this is your main action (nothing special here)
> def index():
>     return dict(form=crud.create(db.person,request.args(0)))
>
> # this is the ajax callback
> def add_organization():
>     def update_select(form):
>         # this function updates the content of the select dropdown
> (web2py trick)
>         # and closes the modal
>         organizations =
> db(db.organization.id>0).select(orderby=db.organization.name)
>         options = TAG['']
> (*[OPTION(o.name,_value=o.id,_selected=form.vars.id==o.id) for o in
> organizations])
>         response.headers['web2py-component-command'] =
> "jQuery('#person_organization').html('%s');jQuery('#TB_closeWindowButton').click()"
> % options
>     return crud.create(db.organization,onaccept=update_select)
>
> On Feb 19, 11:52 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > On Feb 19, 8:54 pm, Jose <jjac...@gmail.com> wrote:
>
> > > how to this [1] with webpy?
>
> > > [1]http://www.vimeo.com/9526668
>
> > Here is complete code:
>
> > db.define_table('organization',Field('name',notnull=True,unique=True),format='%
> > (name)s')
> > db.define_table('person',Field('name'),Field('organization',db.organization))
>
> > db.person.organization.comment = \
> >     SPAN(A('add',_class='thickbox',
> >            _href="#TB_inline?
> > height=200&width=600&inlineId=modal_content"),
> >          DIV(LOAD('default','add_organization',ajax=True),
> >              _id='modal_content',_class='hidden'))
>
> > response.files.append('http://jquery.com/demo/thickbox/thickbox-code/
> > thickbox.js')
> > response.files.append('http://jquery.com/demo/thickbox/thickbox-code/
> > thickbox.css')
>
> > def index():
> >     return dict(form=crud.create(db.person,request.args(0)))
>
> > def add_organization():
> >     def update_select(form):
> >         organizations =
> > db(db.organization.id>0).select(orderby=db.organization.name)
> >         options = TAG['']
> > (*[OPTION(o.name,_value=o.id,_selected=form.vars.id==o.id) for o in
> > organizations])
> >         response.headers['web2py-component-command'] =
> > "jQuery('#person_organization').html('%s');jQuery('#TB_closeWindowButton').click()"
> > % options
> >     return crud.create(db.organization,onaccept=update_select)

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to