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