From 1e1a2bb73f2819bfbb920cc34573de73badd33ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caina=CC=83=20Costa?= Date: Sun, 11 Sep 2011 23:14:39 -0300 Subject: [PATCH] Add a configuration option to change the class of buttons. Closes #318 This changes the default behavior of having a fixed "button" class on the buttons. --- lib/simple_form.rb | 4 ++++ lib/simple_form/form_builder.rb | 2 +- test/form_builder/button_test.rb | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/simple_form.rb b/lib/simple_form.rb index d3a1ac62..2dfc8d65 100644 --- a/lib/simple_form.rb +++ b/lib/simple_form.rb @@ -108,6 +108,10 @@ module SimpleForm mattr_accessor :cache_discovery @@cache_discovery = !Rails.env.development? + # Adds a class to each generated button, mostly for compatiblity + mattr_accessor :button_class + @@button_class = 'button' + ## WRAPPER CONFIGURATION @@wrappers = {} diff --git a/lib/simple_form/form_builder.rb b/lib/simple_form/form_builder.rb index f6d4ee49..2cf2c5fe 100644 --- a/lib/simple_form/form_builder.rb +++ b/lib/simple_form/form_builder.rb @@ -193,7 +193,7 @@ module SimpleForm # def button(type, *args, &block) options = args.extract_options! - options[:class] = "button #{options[:class]}".strip + options[:class] = "#{SimpleForm.button_class} #{options[:class]}".strip args << options if respond_to?("#{type}_button") send("#{type}_button", *args, &block) diff --git a/test/form_builder/button_test.rb b/test/form_builder/button_test.rb index becd048c..af8e3534 100644 --- a/test/form_builder/button_test.rb +++ b/test/form_builder/button_test.rb @@ -18,4 +18,11 @@ class ButtonTest < ActionView::TestCase with_button_for @user, :submit assert_select 'form input.button[type=submit][value=Create User]' end + + test "builder should use the default class from the configuration" do + swap SimpleForm, :button_class => 'btn' do + with_button_for :post, :submit + assert_select 'form input.btn[type=submit][value=Save Post]' + end + end end