Skip to content

A Rails form builder that generates Twitter Bootstrap markup

License

Notifications You must be signed in to change notification settings

dessy/bootstrap_builder

Repository files navigation

Bootstrap Builder

A Rails form builder that generates Twitter Bootstrap markup and helps keep your code clean.

  • Includes Twiter Bootstrap 2.0 CSS and Javascript files
  • Uses existing Rails helpers
  • Auto-generates labels
  • Generates horizontal, vertical and inline forms
  • Groups of checkboxes
  • Groups of radio buttons
  • Prevents double clicking on submit buttons

Installation

Add gem definition to your Gemfile:

gem 'bootstrap_builder'

Bundle it:

bundle install

Require it in your CSS manifest file:

//= require bootstrap
//= require bootstrap-responsive  <-- only if you want to support other devices

Require it in your Javascript manifest file if you want to use Bootstrap's jQuery plugins:

//= require bootstrap

Usage (with haml)

Use bootstrap_form_for when you want to render a form with Bootstrap markup.

A sample user form

= bootstrap_form_for @user, :url => [:admin, @user] do |f|
  = f.text_field :name
  = f.number_field :age, nil, :in => 1...100
  = f.email_field :email, :prepend => '@'
  = f.phone_field :phone
  = f.password_field :password
  = f.password_field :password_confirmation
  = f.select :role, User::ROLES
  = f.time_zone_select :time_zone
  = f.check_box :reminder, :label => 'Send Daily Reminder?'
  = f.submit 'Save'

A login form

Add a class to the form or any field to change the way it is rendered.

= bootstrap_form_for @session_user, :url => login_path, :class => 'form-horizontal' do |f|
  = f.text_field :email
  = f.password_field :password
  = f.check_box :remember_me, :label => 'Remember me when I come back'
  = f.submit 'Log In'

A search form

Hide the label by passing :label => '' on any field. (Useful for inline search forms)

= bootstrap_form_for @search, :url => [:admin, :users], :html => {:method => :get, :class => 'form-search'} do |f|
  = f.text_field :name_equals, :label => 'Find by', :placeholder => 'Name'
  = f.select :role_equals, User::ROLES, :label => ''
  = f.submit 'Search', :class => 'btn-default'

(Example using MetaSearch helpers)

Checkboxes

A single checkbox:

= f.check_box :send_reminder

A group of checkboxes:

= f.check_box :colours, :values => [['Red', 1], ['Green', 2], ['Blue', 3]]

Radio buttons

A single radio button:

= f.check_box :role, 'admin'

A group of radio buttons:

= f.radio_button :role, [['Admin', 1], ['Manager', 2], ['Editor', 3]]

More examples

Override the autogenerated label by using the :label option on any element.

= f.text_field :name, :label => 'Full name'

Use :append and :prepend on any field:

= f.text_field :price, :append => '.00'
= f.email_field :email, :prepend => '@'

Use :help_block to provide extra description to a fields:

= f.email_field :email, :help_block => 'Please enter your emails address'

Prevent double clicking

If you add 'bootstrap_builder' to your Javascript manifest you'll be able to add an extra :change_to_text option to submit buttons.

//= require bootstrap_builder

This will allow you to prevent double clicking by replacing the submit button with a string after the button is clicked:

= f.submit 'Log In', :change_to_text => 'Saving ...'

Copyright 2012 Jack Neto, The Working Group, Inc

About

A Rails form builder that generates Twitter Bootstrap markup

Resources

License

Stars

Watchers

Forks

Packages

No packages published