Hi Massimo, thanks for your sharing another undocumented magic of
web2py, the response.headers['web2py-component-flash'], in this post,
http://groups.google.com/group/web2py/msg/6049af89fbfa2bfc

That makes me think that is just another example to justify my
proposal, this time it is refined to automatically convert
reponse.flash into response.headers['web2py-component-flash'] when
needed.

Check this out. It is self-documented.

{{ '''
With this generic.load file, you can use same action to serve two
purposes.

Example modified from http://www.web2py.com/AlterEgo/default/show/252:

def index():
    return {
        'part1':'hello world',
        'part2': LOAD(
            url=URL(r=request,f='auxiliary.load'), # Notice the
".load" extention
            ajax=True),
        }

def auxiliary():
    form=SQLFORM.factory(Field('name'))
    if form.accepts(request.vars):
        response.flash = 'ok' # No need for this anymore:
response.headers['web2py-component-flash'] = 'ok'
        return {'': "Hello %s" % form.vars.name}
    return {'':form} # No need for "return form" anymore!

>From now on, single auxiliary() can serve two purposes:
http://.../auxiliary.load  serves as a raw component LOADed by other
action
http://.../auxiliary       serves as a normal html page as usual

# PS: Please keep all above explanation for people to know when and
how to use it.
# License: Public Domain
# Author: Iceberg at 21cn dot com
'''
}}

{{ # Does NOT extend layout.html, purposely.}}
{{response.headers['Content-Type']='text/html'}}
{{if response.flash: response.headers['web2py-component-flash'] =
response.flash}}
{{if len(response._vars)==1 and not response._vars.keys()[0]:}}
  {{=BEAUTIFY(response._vars.values()[0])}} {{ # To bypass the silly
colon }}
{{else:}}
  {{=BEAUTIFY(response._vars)}}
  {{pass}}



On Jun3日, 10:21pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> I am not convinced this is general enought but I like the idea. Let me
> think about it.
>
> On Jun 3, 7:17 am, Iceberg <iceb...@21cn.com> wrote:
>
>
>
> > Hi Massimo,
>
> > I just came up with a handy myapp/views/generic.load, and I wonder
> > whether you will like to accept it as part of web2py scaffold. It is
> > already self-documented.
>
> > <!-- Start of the generic.load -->
>
> > {{ '''
> > With this generic.load file, you can use same action to serve two
> > purposes.
>
> > Example modified fromhttp://www.web2py.com/AlterEgo/default/show/252:
>
> > def index():
> >     return {
> >         'part1':'hello world',
> >         'part2': LOAD(
> >             url=URL(r=request,f='auxiliary.load'), # Notice the
> > ".load" extention
> >             ajax=True),
> >         }
>
> > def auxiliary():
> >     form=SQLFORM.factory(Field('name'))
> >     if form.accepts(request.vars):
> >         return {'': "Hello %s" % form.vars.name}
> >     return {'':form} # Need NOT to write it as "return form" any more!
>
> > From now on, single auxiliary() can serve two 
> > purposes:http://.../auxiliary.load serves as a raw component LOADed by other
> > actionhttp://.../auxiliary     serves as a normal html page as usual
>
> > # PS: Please keep all above explanation for people to know when and
> > how to use it.
> > # License: Public Domain
> > # Author: Iceberg at 21cn dot com
> > '''
>
> > }}
>
> > {{ # Does NOT extend layout.html, purposely.}}
> > {{response.headers['Content-Type']='text/html'}}
> > {{if len(response._vars)==1 and not response._vars.keys()[0]:}}
> >   {{=BEAUTIFY(response._vars.values()[0])}} {{ # To bypass the silly
> > colon }}
> > {{else:}}
> >   {{=BEAUTIFY(response._vars)}}
> >   {{pass}}

Reply via email to