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}}