Why would you use web2py to make a progress bar when you can do it in
JQuery.

http://docs.jquery.com/UI/Progressbar

http://beckelman.net/post/2008/10/04/jQuery-Progress-Indicators.aspx

On Feb 23, 8:28 am, Vasile Ermicioi <elff...@gmail.com> wrote:
> here is explained how to do, that is not possible in regular web2py """
> This file is part of the web2py Web Framework
> Copyrighted by Massimo Di Pierro <mdipie...@cs.depaul.edu>
> License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
>
> Attention: Requires Chrome or Safari. For IE of Firefox you 
> needhttps://github.com/gimite/web-socket-js
>
> 1) install tornado
>
>    easy_install tornado
>
> 2) start this app:
>
>    python gluon/contrib/comet_messaging.py -k mykey -p 8888
>
> 3) from any web2py app you can post messages with
>
>    from gluon.contrib.comet_messaging import comet_send
>    comet_send('http://127.0.0.1:8888','HelloWorld','mykey','mygroup')
>
> 4) from any template you can receive them with
>
>    <script>
>    $(document).ready(function(){
>       if(!web2py_comet('ws://127.0.0.1:8888/realtime/mygroup
> ',function(e){alert(e.data)}))
>          alert("html5 websocket not supported by your browser, try Google
> Chrome");
>    });
>    </script>
>
> When the server posts a message, all clients connected to the page will
> popup an alert message
> Or if you want to send json messages and store evaluated json in a var
> called data:
>
>    <script>
>    $(document).ready(function(){
>       var data;
>       web2py_comet('ws://127.0.0.1:8888/realtime/mygroup
> ',function(e){data=eval('('+e.data+')')});
>    });
>    </script>
>
> - All communications between web2py and comet_messaging will be digitally
> signed with hmac.
> - All validation is handled on the web2py side and there is no need to
> modify comet_messaging.py
> - Multiple web2py instances can talk with one or more comet_messaging
> servers.
> - "ws://127.0.0.1:8888/realtime/" must be contain the IP of the
> comet_messaging server.
> - Via group='mygroup' name you can support multiple groups of clients (think
> of many chat-rooms)
>
> Here is a complete sample web2py action:
>
>     def index():
>         form=LOAD('default','ajax_form',ajax=True)
>         script=SCRIPT('''
>             jQuery(document).ready(function(){
>               var callback=function(e){alert(e.data)};
>               if(!web2py_comet('ws://127.0.0.1:8888/realtime/mygroup
> ',callback))
>                 alert("html5 websocket not supported by your browser, try
> Google Chrome");
>             });
>         ''')
>         return dict(form=form, script=script)
>
>     def ajax_form():
>         form=SQLFORM.factory(Field('message'))
>         if form.accepts(request,session):
>             from gluon.contrib.comet_messaging import comet_send
>             comet_send('http://127.0.0.1:8888
> ',form.vars.message,'mykey','mygroup')
>         return form
>
> Acknowledgements:
> Tornado code inspired 
> byhttp://thomas.pelletier.im/2010/08/websocket-tornado-redis/
>
> """
>
> On Wed, Feb 23, 2011 at 2:53 PM, Anthony <abasta...@gmail.com> wrote:
> > On Wednesday, February 23, 2011 5:49:24 AM UTC-5, elffikk wrote:
>
> >> you need a flash or javascript widget and a "comet" web2py controller that
> >> will push data to the browser
> >> when a step is done you will send a message to the browser wich will
> >> redraw to show the progress
>
> > Also, it looks like you code is simply using the print statement to report
> > progress. Although that will show up in the terminal window (as you have
> > observed), that won't send any output to the web page (i.e., it won't affect
> > the HTTP response). To send output to a web page, your controller function
> > must return a dict to a view or return a string. See
> >http://web2py.com/book/default/chapter/03#Say-Hello.
>
>

Reply via email to