CollectionHelpers now accepts a readonly option
This commit is contained in:
parent
fd56a78c0e
commit
dfac1b188e
@ -44,7 +44,7 @@ def instantiate_builder(builder_class, item, value, text, html_options)
|
||||
def default_html_options_for_collection(item, value) #:nodoc:
|
||||
html_options = @html_options.dup
|
||||
|
||||
[:checked, :selected, :disabled].each do |option|
|
||||
[:checked, :selected, :disabled, :readonly].each do |option|
|
||||
current_value = @options[option]
|
||||
next if current_value.nil?
|
||||
|
||||
|
@ -68,6 +68,23 @@ def with_collection_check_boxes(*args, &block)
|
||||
assert_no_select 'input[type=radio][value=false][disabled=disabled]'
|
||||
end
|
||||
|
||||
test 'collection radio accepts multiple readonly items' do
|
||||
collection = [[1, true], [0, false], [2, 'other']]
|
||||
with_collection_radio_buttons :user, :active, collection, :last, :first, :readonly => [true, false]
|
||||
|
||||
assert_select 'input[type=radio][value=true][readonly=readonly]'
|
||||
assert_select 'input[type=radio][value=false][readonly=readonly]'
|
||||
assert_no_select 'input[type=radio][value=other][readonly=readonly]'
|
||||
end
|
||||
|
||||
test 'collection radio accepts single readonly item' do
|
||||
collection = [[1, true], [0, false]]
|
||||
with_collection_radio_buttons :user, :active, collection, :last, :first, :readonly => true
|
||||
|
||||
assert_select 'input[type=radio][value=true][readonly=readonly]'
|
||||
assert_no_select 'input[type=radio][value=false][readonly=readonly]'
|
||||
end
|
||||
|
||||
test 'collection radio accepts html options as input' do
|
||||
collection = [[1, true], [0, false]]
|
||||
with_collection_radio_buttons :user, :active, collection, :last, :first, {}, :class => 'special-radio'
|
||||
@ -325,6 +342,33 @@ def with_collection_check_boxes(*args, &block)
|
||||
assert_no_select 'input[type=checkbox][value=2][disabled=disabled]'
|
||||
end
|
||||
|
||||
test 'collection check boxes accepts multiple readonly items' do
|
||||
collection = (1..3).map{|i| [i, "Category #{i}"] }
|
||||
with_collection_check_boxes :user, :category_ids, collection, :first, :last, :readonly => [1, 3]
|
||||
|
||||
assert_select 'input[type=checkbox][value=1][readonly=readonly]'
|
||||
assert_select 'input[type=checkbox][value=3][readonly=readonly]'
|
||||
assert_no_select 'input[type=checkbox][value=2][readonly=readonly]'
|
||||
end
|
||||
|
||||
test 'collection check boxes accepts single readonly item' do
|
||||
collection = (1..3).map{|i| [i, "Category #{i}"] }
|
||||
with_collection_check_boxes :user, :category_ids, collection, :first, :last, :readonly => 1
|
||||
|
||||
assert_select 'input[type=checkbox][value=1][readonly=readonly]'
|
||||
assert_no_select 'input[type=checkbox][value=3][readonly=readonly]'
|
||||
assert_no_select 'input[type=checkbox][value=2][readonly=readonly]'
|
||||
end
|
||||
|
||||
test 'collection check boxes accepts a proc to readonly items' do
|
||||
collection = (1..3).map{|i| [i, "Category #{i}"] }
|
||||
with_collection_check_boxes :user, :category_ids, collection, :first, :last, :readonly => proc { |i| i.first == 1 }
|
||||
|
||||
assert_select 'input[type=checkbox][value=1][readonly=readonly]'
|
||||
assert_no_select 'input[type=checkbox][value=3][readonly=readonly]'
|
||||
assert_no_select 'input[type=checkbox][value=2][readonly=readonly]'
|
||||
end
|
||||
|
||||
test 'collection check boxes accepts html options' do
|
||||
collection = [[1, 'Category 1'], [2, 'Category 2']]
|
||||
with_collection_check_boxes :user, :category_ids, collection, :first, :last, {}, :class => 'check'
|
||||
|
Loading…
Reference in New Issue
Block a user