Skip to content

Commit

Permalink
Do not use disable_with when it set to false
Browse files Browse the repository at this point in the history
If automatically_disable_submit_tag is set to false then disable_with
is ignored, as result in all cases where disable_with is explicitly set
to false will produce unexpected result
  • Loading branch information
igor04 committed Sep 3, 2020
1 parent 3d27653 commit a0fe1e7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
7 changes: 3 additions & 4 deletions actionview/lib/action_view/helpers/form_tag_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -897,16 +897,15 @@ def sanitize_to_id(name)
end

def set_default_disable_with(value, tag_options)
return unless ActionView::Base.automatically_disable_submit_tag
data = tag_options["data"]

unless tag_options["data-disable-with"] == false || (data && data["disable_with"] == false)
if tag_options["data-disable-with"] == false || (data && data["disable_with"] == false)
data.delete("disable_with") if data
elsif ActionView::Base.automatically_disable_submit_tag
disable_with_text = tag_options["data-disable-with"]
disable_with_text ||= data["disable_with"] if data
disable_with_text ||= value.to_s.clone
tag_options.deep_merge!("data" => { "disable_with" => disable_with_text })
else
data.delete("disable_with") if data
end

tag_options.delete("data-disable-with")
Expand Down
10 changes: 10 additions & 0 deletions actionview/test/template/form_tag_helper_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -538,6 +538,16 @@ def test_empty_submit_tag_with_opt_out
ActionView::Base.automatically_disable_submit_tag = true
end

def test_empty_submit_tag_with_opt_out_and_explicit_disabling
ActionView::Base.automatically_disable_submit_tag = false
assert_dom_equal(
%(<input name='commit' type="submit" value="Save" />),
submit_tag("Save", data: { disable_with: false })
)
ensure
ActionView::Base.automatically_disable_submit_tag = true
end

def test_submit_tag_having_data_disable_with_string
assert_dom_equal(
%(<input data-disable-with="Processing..." data-confirm="Are you sure?" name='commit' type="submit" value="Save" />),
Expand Down

0 comments on commit a0fe1e7

Please sign in to comment.