mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Allow date helpers to ignore date hidden field tags. [#503 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
parent
1a478923dc
commit
570f5aad66
2 changed files with 20 additions and 2 deletions
|
@ -159,7 +159,10 @@ module ActionView
|
|||
# Returns a set of select tags (one for hour, minute and optionally second) pre-selected for accessing a specified
|
||||
# time-based attribute (identified by +method+) on an object assigned to the template (identified by +object+).
|
||||
# You can include the seconds with <tt>:include_seconds</tt>.
|
||||
#
|
||||
#
|
||||
# This method will also generate 3 input hidden tags, for the actual year, month and day unless the option
|
||||
# <tt>:ignore_date</tt> is set to +true+.
|
||||
#
|
||||
# If anything is passed in the html_options hash it will be applied to every select tag in the set.
|
||||
#
|
||||
# ==== Examples
|
||||
|
@ -655,7 +658,7 @@ module ActionView
|
|||
order.reverse.each do |param|
|
||||
# Send hidden fields for discarded elements once output has started
|
||||
# This ensures AR can reconstruct valid dates using ParseDate
|
||||
next if discard[param] && date_or_time_select.empty?
|
||||
next if discard[param] && (date_or_time_select.empty? || options[:ignore_date])
|
||||
|
||||
date_or_time_select.insert(0, self.send("select_#{param}", datetime, options_with_prefix(position[param], options.merge(:use_hidden => discard[param])), html_options))
|
||||
date_or_time_select.insert(0,
|
||||
|
|
|
@ -1198,6 +1198,21 @@ class DateHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, time_select("post", "written_on")
|
||||
end
|
||||
|
||||
def test_time_select_without_date_hidden_fields
|
||||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
||||
expected = %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
||||
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on", :ignore_date => true)
|
||||
end
|
||||
|
||||
def test_time_select_with_seconds
|
||||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
|
Loading…
Reference in a new issue