Skip to content
This repository has been archived by the owner on Apr 30, 2019. It is now read-only.

Latest commit

 

History

History
101 lines (65 loc) · 1.8 KB

README.md

File metadata and controls

101 lines (65 loc) · 1.8 KB

Glow

Glowing flashes! Okay... not really. This simply adds handling of the Flash Hash in Javascript. Depends on jQuery.

Usage

Any flash messages set in ajax responses fire a glow:flash event on document.

flash[:notice] = 'Ajax man!'
respond_to do |format|
  format.js { head :ok }
end

Handle it any way you want:

$(document).bind('glow:flash', function(evt, flash) {
  alert(flash.type);
  alert(flash.message);
});

Also adds a Flash object that enables you to fire glow:flash.

Flash.success('Yeah this worked!');
Flash.error('Something went wrong!');
Flash.notice('This is a flash message');

Flash.fire('type', 'message');

This can be used to unify your Flash message handling (also in non-xhr responses).

<% flash.each do |type, message| %>
  <%= javascript_tag "Flash.fire('#{type}', '#{message}')" %>
<% end %>

If you want to skip the glow after_filter just set flash[:skip_glow].

You can also use glow with APIs by using headerize_flash_for and passing in the request formats you want the flash messages passed back.

class API::Base < ActionController::Base
  headerize_flash_for :json
end

Controllers inheriting from a controller using headerize_format_for will inherit the capability or it can be overridden.

class API::JSON < API::Base
  # will headerize flash for JSON requests
end

class API::XML < API::Base
  headerize_flash_for :xml
  # will NOT headerize flash for JSON requests
  # but will headerize flash for XML requests
end

Installation

In your gemfile add

gem "glow"

.

Rails 3.0

Run

rails generate glow:install

Then add

javascipt_include_tag 'glow'

to your layout.

Rails >=3.1 (including Rails 4)

Add

//=require glow

to your manifest.

License

See MIT-LICENSE.