Thanks for "$.web2py.flash()" Leonel... I needed just that...

:)

I think this is something missing in the book search with "$.web2py.flash"
in the book return nothing.

Thank you...

Richard

On Fri, Jun 27, 2014 at 4:11 PM, Niphlod <[email protected]> wrote:

> unfortunately, the main point is that web2py doesn't provide
> "out-of-the-box" something that clarifies what a "flash status" is .
> passing a status as a new header uses the same "tech" web2py provides for
> other things, but since it's not in the core code, your shortcomings are
> exactly what is needed.
>
> On Friday, June 27, 2014 4:59:39 PM UTC+2, Leonel Câmara wrote:
>>
>> Hey,
>>
>> I wanted to change web2py response.flash to use bootstrap3 alerts.
>>
>> I started by creating an alert-default in my css since bootstrap3 doesn't
>> have one and I wanted it, then I placed this in my layout.html
>>
>>
>> <div class="{{='flash alert alert-dismissable ' + ('alert-' +
>> (response.flash_status or 'default'))}}">{{if response.flash:}}
>>                   {{=response.flash}}
>>                   <button type="button" class="close"
>> data-dismiss="alert"><span aria-hidden="true">&times;</span><span
>> class="sr-only">Close</span></button>
>>                   {{pass}}</div>
>>
>> response.flash_status was my solution so the controllers were able to
>> determine what kind of flash they would want the view to show, this was
>> working quite well until I started having stuff working via ajax. If a
>> request was done using ajax all my alerts were being shown with default.
>> After a bit of digging I found that  $.web2py.flash also had a "status"
>> argument that could add a class so I thought this would be quite simple.
>> Nothing could be further from the truth. In the end I had to do this:
>>
>> 1. Add this to my models
>>
>> def ajax_flash_status(view):
>>     import urllib2
>>     if response.flash:
>>         if not response.flash_status:
>>              response.flash_status = 'default'
>>         response.headers['web2py-component-flash-status'] = \
>>             urllib2.quote('alert-'+xmlescape(response.flash_status)\
>>                               .replace('\n',''))
>>     return view
>> if request.ajax:
>>     response.postprocessing.append(ajax_flash_status)
>>
>>
>> 2. Add a js file to the project which I add after all the other js files
>> containing this:
>>
>> $.web2py.after_ajax = function (xhr) {
>>     /* called whenever an ajax request completes */
>>     var command = xhr.getResponseHeader('web2py-component-command');
>>     var flash = xhr.getResponseHeader('web2py-component-flash');
>>     var flash_status =
>> xhr.getResponseHeader('web2py-component-flash-status');
>>     if(command !== null) {
>>         eval(decodeURIComponent(command));
>>     }
>>     if(flash) {
>>         $.web2py.flash(decodeURIComponent(flash),
>> decodeURIComponent(flash_status));
>>     }
>> };
>>
>> $.web2py.flash = function (message, status) {
>>     var flash = $('.flash');
>>     $.web2py.hide_flash();
>>
>>     flash.html(message);
>>     if (typeof status !== 'undefined') {
>>         flash.removeClass('alert-default alert-success alert-info
>> alert-warning alert-danger').addClass(status);
>>     }
>>     if(flash.html()) {
>>       flash.append(
>>         '<button type="button" class="close" data-dismiss="alert">' +
>>         '<span aria-hidden="true">&times;</span><span class="sr-only">' +
>>         w2p_ajax_close_message +
>>         '</span>' +
>>         '</button>'
>>       ).slideDown();
>>     }
>> };
>>
>>
>> Anyway, my question is, am I doing something wrong here? Wasn't there a
>> simpler way to implement this?
>>
>>
>>
>>
>>
>>
>> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to