From 60ed9d62826678006f0c8abde25ee779b1740c3a Mon Sep 17 00:00:00 2001 From: Izumi Wong-Horiuchi Date: Fri, 21 Mar 2014 16:28:47 -0400 Subject: [PATCH] Fix date_select option overwriting html classes with_css_classes: true option overwrites other html classes. Concatenate day month and year classes rather than overwriting. --- actionview/CHANGELOG.md | 4 ++++ .../lib/action_view/helpers/date_helper.rb | 2 +- actionview/test/template/date_helper_test.rb | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index db3fa3be86140..8c6db33be754c 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -1,3 +1,7 @@ +* `date_select` helper with option `with_css_classes: true` does not overwrite other classes. + + *Izumi Wong-Horiuchi* + * `number_to_percentage` does not crash with `Float::NAN` or `Float::INFINITY` as input. diff --git a/actionview/lib/action_view/helpers/date_helper.rb b/actionview/lib/action_view/helpers/date_helper.rb index 1738df9cac258..2efb9612aca00 100644 --- a/actionview/lib/action_view/helpers/date_helper.rb +++ b/actionview/lib/action_view/helpers/date_helper.rb @@ -965,7 +965,7 @@ def build_select(type, select_options_as_html) :name => input_name_from_type(type) }.merge!(@html_options) select_options[:disabled] = 'disabled' if @options[:disabled] - select_options[:class] = type if @options[:with_css_classes] + select_options[:class] = [select_options[:class], type].compact.join(' ') if @options[:with_css_classes] select_html = "\n" select_html << content_tag(:option, '', :value => '') + "\n" if @options[:include_blank] diff --git a/actionview/test/template/date_helper_test.rb b/actionview/test/template/date_helper_test.rb index 6f77c3c99d180..b86ae910c48ae 100644 --- a/actionview/test/template/date_helper_test.rb +++ b/actionview/test/template/date_helper_test.rb @@ -1040,6 +1040,22 @@ def test_select_date_with_css_classes_option assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]", :with_css_classes => true}) end + def test_select_date_with_css_classes_option_and_html_class_option + expected = %(\n" + + expected << %(\n" + + expected << %(\n" + + assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]", :with_css_classes => true}, { class: 'datetime optional' }) + end + def test_select_datetime expected = %(