diff --git a/actionpack/lib/action_view/helpers/scriptaculous_helper.rb b/actionpack/lib/action_view/helpers/scriptaculous_helper.rb index f7a9daf606..69fab27ac8 100644 --- a/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +++ b/actionpack/lib/action_view/helpers/scriptaculous_helper.rb @@ -192,6 +192,9 @@ def drop_receiving_element_js(element_id, options = {}) #:nodoc: options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept] options[:hoverclass] = "'#{options[:hoverclass]}'" if options[:hoverclass] + # Confirmation happens during the onDrop callback, so it can be removed from the options + options.delete(:confirm) if options[:confirm] + %(Droppables.add(#{element_id.to_json}, #{options_for_javascript(options)});) end end diff --git a/actionpack/test/template/scriptaculous_helper_test.rb b/actionpack/test/template/scriptaculous_helper_test.rb index 8d55804fee..91856ff980 100644 --- a/actionpack/test/template/scriptaculous_helper_test.rb +++ b/actionpack/test/template/scriptaculous_helper_test.rb @@ -88,8 +88,10 @@ def test_drop_receiving_element drop_receiving_element("droptarget1", :accept => 'products', :update => 'infobox') assert_dom_equal %(), drop_receiving_element("droptarget1", :accept => ['tshirts','mugs'], :update => 'infobox') - end + assert_dom_equal %(), + drop_receiving_element('droptarget1', :hoverclass=>'dropready', :url=>{:action=>'update_drop'}, :confirm => 'Are you sure?') + end def protect_against_forgery? false end