Fix label for datetime inputs, point to first select

Point the label for datetime inputs at the first select. The date order can be
overridden by i18n and on a per-input basis. Use the specified order to
discover the first select.
This commit is contained in:
George Hemmings 2012-02-04 13:56:39 +00:00
parent 10bd50dcf8
commit 151b0d8fb9
3 changed files with 25 additions and 7 deletions

View File

@ -14,7 +14,10 @@ module SimpleForm
def label_target
case input_type
when :date, :datetime
"#{attribute_name}_1i"
date_order = input_options[:order] || I18n.t('date.order')
type = date_order.first
position = ActionView::Helpers::DateTimeSelector::POSITION[type]
"#{attribute_name}_#{position}i"
when :time
"#{attribute_name}_4i"
end

View File

@ -62,14 +62,28 @@ class DateTimeInputTest < ActionView::TestCase
assert_select 'select.time option', 'minuto'
end
test 'label should point to first option when date input type' do
test 'label should use i18n to get target for date input type' do
store_translations(:en, :date => { :order => [:month, :day, :year] }) do
with_input_for :project, :created_at, :date
assert_select 'label[for=project_created_at_1i]'
assert_select 'label[for=project_created_at_2i]'
end
end
test 'label should point to first option when datetime input type' do
test 'label should use i18n to get target for datetime input type' do
store_translations(:en, :date => { :order => [:month, :day, :year] }) do
with_input_for :project, :created_at, :datetime
assert_select 'label[for=project_created_at_1i]'
assert_select 'label[for=project_created_at_2i]'
end
end
test 'label should use order to get target when date input type' do
with_input_for :project, :created_at, :date, :order => [:month, :year, :day]
assert_select 'label[for=project_created_at_2i]'
end
test 'label should use order to get target when datetime input type' do
with_input_for :project, :created_at, :datetime, :order => [:month, :year, :day]
assert_select 'label[for=project_created_at_2i]'
end
test 'label should point to first option when time input type' do

View File

@ -5,6 +5,7 @@ module MiscHelpers
yield
ensure
I18n.reload!
I18n.backend.send :init_translations
end
end