Skip to content

Commit

Permalink
Implement submit_to_remote as a wrapper around a more generic button_…
Browse files Browse the repository at this point in the history
…to_remote

Removed the "return false" from submit_to_remote onclick end as
button input elements have no default behavior to cancel.

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
  • Loading branch information
tarmo authored and lifo committed Oct 6, 2008
1 parent 8e50f0f commit 51b9866
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 15 deletions.
2 changes: 2 additions & 0 deletions actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*Edge*

* Make PrototypeHelper#submit_to_remote a wrapper around PrototypeHelper#button_to_remote. [Tarmo Tänav]

* Set HttpOnly for the cookie session store's cookie. #1046

* Added FormTagHelper#image_submit_tag confirm option #784 [Alastair Brunton]
Expand Down
18 changes: 6 additions & 12 deletions actionpack/lib/action_view/helpers/prototype_helper.rb
Expand Up @@ -405,32 +405,26 @@ def remote_form_for(record_or_name_or_array, *args, &proc)
# # Generates: <input name="create_btn" onclick="new Ajax.Request('/testing/create',
# # {asynchronous:true, evalScripts:true, parameters:Form.serialize(this.form)});
# # return false;" type="button" value="Create" />
# <%= button_to_remote 'create_btn', 'Create', :url => { :action => 'create' } %>
# <%= submit_to_remote 'create_btn', 'Create', :url => { :action => 'create' } %>
#
# # Submit to the remote action update and update the DIV succeed or fail based
# # on the success or failure of the request
# #
# # Generates: <input name="update_btn" onclick="new Ajax.Updater({success:'succeed',failure:'fail'},
# # '/testing/update', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this.form)});
# # return false;" type="button" value="Update" />
# <%= button_to_remote 'update_btn', 'Update', :url => { :action => 'update' },
# <%= submit_to_remote 'update_btn', 'Update', :url => { :action => 'update' },
# :update => { :success => "succeed", :failure => "fail" }
#
# <tt>options</tt> argument is the same as in form_remote_tag.
#
# Note: This method used to be called submit_to_remote, but that's now just an alias for button_to_remote
def button_to_remote(name, value, options = {})
def submit_to_remote(name, value, options = {})
options[:with] ||= 'Form.serialize(this.form)'

options[:html] ||= {}
options[:html][:type] = 'button'
options[:html][:onclick] = "#{remote_function(options)}; return false;"
options[:html][:name] = name
options[:html][:value] = value
html_options = options.delete(:html) || {}
html_options[:name] = name

tag("input", options[:html], false)
button_to_remote(value, options, html_options)
end
alias_method :submit_to_remote, :button_to_remote

# Returns '<tt>eval(request.responseText)</tt>' which is the JavaScript function
# that +form_remote_tag+ can call in <tt>:complete</tt> to evaluate a multiple
Expand Down
6 changes: 3 additions & 3 deletions actionpack/test/template/prototype_helper_test.rb
Expand Up @@ -218,9 +218,9 @@ def test_on_callbacks

end

def test_button_to_remote
assert_dom_equal %(<input name=\"More beer!\" onclick=\"new Ajax.Updater('empty_bottle', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this.form)}); return false;\" type=\"button\" value=\"1000000\" />),
button_to_remote("More beer!", 1_000_000, :update => "empty_bottle")
def test_submit_to_remote
assert_dom_equal %(<input name=\"More beer!\" onclick=\"new Ajax.Updater('empty_bottle', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this.form)});\" type=\"button\" value=\"1000000\" />),
submit_to_remote("More beer!", 1_000_000, :update => "empty_bottle")
end

def test_observe_field
Expand Down

0 comments on commit 51b9866

Please sign in to comment.