From a5c38a9c087e33d36397afc496be7c8e01b37ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 15 May 2012 09:55:30 +0200 Subject: Revert "Remove `:disable_with` in favor of `'data-disable-with'` option from `submit_tag`, `button_tag` and `button_to` helpers." `disable_with:` is much easier to type than `"data-disable-with" =>`, and the fact it uses "data-disable-with" => is an implementation concern, it should not affect the public API. This reverts commit 683fc4db00f496e5225928afb4d4e932e0fcdc48. --- .../lib/action_view/helpers/form_tag_helper.rb | 24 +++++++++++++++++++--- actionpack/lib/action_view/helpers/url_helper.rb | 6 ++++-- 2 files changed, 25 insertions(+), 5 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb index 74c7d8fa3f..248cc2f6a3 100644 --- a/actionpack/lib/action_view/helpers/form_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb @@ -386,6 +386,9 @@ module ActionView # drivers will provide a prompt with the question specified. If the user accepts, # the form is processed normally, otherwise no action is taken. # * :disabled - If true, the user will not be able to use this input. + # * :disable_with - Value of this parameter will be used as the value for a + # disabled version of the submit button when the form is submitted. This feature is + # provided by the unobtrusive JavaScript driver. # * Any other key creates standard HTML options for the tag. # # ==== Examples @@ -398,14 +401,14 @@ module ActionView # submit_tag "Save edits", :disabled => true # # => # - # submit_tag "Complete sale", 'data-disable-with' => "Please wait..." + # submit_tag "Complete sale", :disable_with => "Please wait..." # # => # # submit_tag nil, :class => "form_submit" # # => # - # submit_tag "Edit", :class => "edit_button" - # # => + # submit_tag "Edit", :disable_with => "Editing...", :class => "edit_button" + # # => # # submit_tag "Save", :confirm => "Are you sure?" # # => @@ -413,6 +416,10 @@ module ActionView def submit_tag(value = "Save changes", options = {}) options = options.stringify_keys + if disable_with = options.delete("disable_with") + options["data-disable-with"] = disable_with + end + if confirm = options.delete("confirm") options["data-confirm"] = confirm end @@ -434,6 +441,10 @@ module ActionView # processed normally, otherwise no action is taken. # * :disabled - If true, the user will not be able to # use this input. + # * :disable_with - Value of this parameter will be + # used as the value for a disabled version of the submit + # button when the form is submitted. This feature is provided + # by the unobtrusive JavaScript driver. # * Any other key creates standard HTML options for the tag. # # ==== Examples @@ -447,11 +458,18 @@ module ActionView # # Ask me! # # # + # button_tag "Checkout", :disable_with => "Please wait..." + # # => + # def button_tag(content_or_options = nil, options = nil, &block) options = content_or_options if block_given? && content_or_options.is_a?(Hash) options ||= {} options = options.stringify_keys + if disable_with = options.delete("disable_with") + options["data-disable-with"] = disable_with + end + if confirm = options.delete("confirm") options["data-confirm"] = confirm end diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb index 7e69547dab..4986f9d8ae 100644 --- a/actionpack/lib/action_view/helpers/url_helper.rb +++ b/actionpack/lib/action_view/helpers/url_helper.rb @@ -322,11 +322,11 @@ module ActionView # # # <%= button_to('Destroy', 'http://www.example.com', :confirm => 'Are you sure?', - # :method => "delete", :remote => true) %> + # :method => "delete", :remote => true, :disable_with => 'loading...') %> # # => "
# #
# # - # # + # # # # # #
# #
" @@ -616,9 +616,11 @@ module ActionView html_options = html_options.stringify_keys html_options['data-remote'] = 'true' if link_to_remote_options?(options) || link_to_remote_options?(html_options) + disable_with = html_options.delete("disable_with") confirm = html_options.delete('confirm') method = html_options.delete('method') + html_options["data-disable-with"] = disable_with if disable_with html_options["data-confirm"] = confirm if confirm add_method_to_attributes!(html_options, method) if method -- cgit v1.2.3