diff options
author | Vasiliy Ermolovich <younash@gmail.com> | 2011-12-24 00:44:23 +0300 |
---|---|---|
committer | Vasiliy Ermolovich <younash@gmail.com> | 2011-12-24 00:44:23 +0300 |
commit | f7669cd8344a83485d01f94e7b5896616cd57f51 (patch) | |
tree | ae8e12b164fc2354bd3de11dbf5cd71a7b147286 /actionpack | |
parent | 4d8ee28841261827c22322e769cb00c4f4fdc3e6 (diff) | |
download | rails-f7669cd8344a83485d01f94e7b5896616cd57f51.tar.gz rails-f7669cd8344a83485d01f94e7b5896616cd57f51.tar.bz2 rails-f7669cd8344a83485d01f94e7b5896616cd57f51.zip |
add ability to set a prompt string in include_blank option for date helpers, closes #4143
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/date_helper.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/date_helper_test.rb | 20 |
2 files changed, 22 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index 2806348337..cf24f27536 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -13,7 +13,7 @@ module ActionView # # * <tt>:prefix</tt> - overwrites the default prefix of "date" used for the select names. So specifying "birthday" # would give birthday[month] instead of date[month] if passed to the <tt>select_month</tt> method. - # * <tt>:include_blank</tt> - set to true if it should be possible to set an empty date. + # * <tt>:include_blank</tt> - set to true or to a prompt string if it should be possible to set an empty date. # * <tt>:discard_type</tt> - set to true if you want to discard the type part of the select name. If set to true, # the <tt>select_month</tt> method would use simply "date" (which can be overwritten using <tt>:prefix</tt>) instead # of "date[month]". @@ -887,7 +887,7 @@ module ActionView select_options.merge!(:disabled => 'disabled') if @options[:disabled] select_html = "\n" - select_html << content_tag(:option, '', :value => '') + "\n" if @options[:include_blank] + select_html << content_tag(:option, "#{ERB::Util.html_escape(@options[:include_blank]) if @options[:include_blank].kind_of?(String)}", :value => '') + "\n" if @options[:include_blank] select_html << prompt_option_tag(type, @options[:prompt]) + "\n" if @options[:prompt] select_html << select_options_as_html diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index fadfb59572..21c9083386 100644 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -1581,6 +1581,26 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal expected, date_select("post", "written_on", :include_blank => true) end + def test_date_select_with_stringified_blank + @post = Post.new + + start_year = Time.now.year-5 + end_year = Time.now.year+5 + + expected = '<input name="post[written_on(3i)]" type="hidden" id="post_written_on_3i"/>' + "\n" + expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n} + expected << "<option value=\"\">blank</option>\n" + start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) } + expected << "</select>\n" + + expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n} + expected << "<option value=\"\">blank</option>\n" + 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) } + expected << "</select>\n" + + assert_dom_equal expected, date_select("post", "written_on", :order=>[:year, :month], :include_blank=> 'blank') + end + def test_date_select_with_nil_and_blank_and_order @post = Post.new |