Created
January 11, 2011 00:28
-
-
Save ahoward/773779 to your computer and use it in GitHub Desktop.
flash partial
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // add a flash message | |
| // | |
| App.flash = function(msg, options){ | |
| options = options || {}; | |
| var flash = jQuery('.flash'); | |
| var template = App.templates['flash-list-item']; | |
| var data = {'message' : msg}; | |
| var message = jQuery.tmpl(template, data); | |
| var dismiss = message.find('.dismiss'); | |
| dismiss.click(function(){ message.remove() }); | |
| message.addClass(options.class || 'info'); | |
| flash.append(message); | |
| return(message); | |
| }; | |
| // find and pre-compile all jQuery templates on the page. cache them by name. | |
| // | |
| var templates = {}; | |
| jQuery('script.template').each(function(){ | |
| var j = jQuery(this); | |
| var name = j.attr('name'); | |
| var html = j.html(); | |
| App.templates[name] = jQuery.template(name, html); | |
| }); | |
| // usage (from javascript) | |
| // | |
| // App.flash('a flash message!') | |
| // | |
| // App.flash('an error!', {'class' : 'error'}) | |
| // |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <% | |
| flash = self.flash ### see http://groups.google.ca/group/rubyonrails-talk/browse_thread/thread/8e54e4bc3c2b4366 | |
| keys = [:info, :notice, :error, :success] | |
| javascript = [] | |
| unless flash[:hide] | |
| keys.each do |key| | |
| message = flash[key] | |
| next if message.blank? | |
| javascript.push("App.flash(#{ message.to_json }, {'class' : #{ key.to_json }});") | |
| end | |
| end | |
| keys.each{|key| self.flash[key] = nil} | |
| %> | |
| <ul class='flash'> | |
| <script class='template' name='flash-list-item' type='text/x-jquery-tmpl'> | |
| <li> | |
| <span class='message'>{{html message}}</span> | |
| <a class='dismiss' href='javascript:void(42)'>dismiss</a> | |
| </li> | |
| </script> | |
| <script> | |
| jQuery(function(){ | |
| <%= raw(javascript.join("\n")) %> | |
| }); | |
| </script> | |
| </ul> | |
| <noscript> | |
| <ul class="flash"> | |
| <li class="error"> | |
| <span class="message">You need javascript enabled for the internet to function properly.</span> | |
| </li> | |
| </ul> | |
| </noscript> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment