Permalink
Browse files

Fixed JavaScriptHelper#link_to_function and JavaScriptHelper#button_t…

…o_function to have the script argument be optional [DHH]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5039 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 7441b19 commit 8c9ce617c9989c74209235f68ba4497b905234fd @dhh dhh committed Sep 6, 2006
View
@@ -1,5 +1,13 @@
*SVN*
+* Fixed JavaScriptHelper#link_to_function and JavaScriptHelper#button_to_function to have the script argument be optional [DHH]. So what used to require a nil, like this:
+
+ link_to("Hider", nil, :class => "hider_link") { |p| p[:something].hide }
+
+ ...can be written like this:
+
+ link_to("Hider", :class => "hider_link") { |p| p[:something].hide }
+
* Update to script.aculo.us 1.6.3 [Thomas Fuchs]
* Update to Prototype 1.5.0_rc1 [sam]
@@ -79,7 +79,10 @@ module JavaScriptHelper
# };
# return false;">Show me more</a>
#
- def link_to_function(name, function = '', html_options = {}, &block)
+ def link_to_function(name, *args, &block)
+ html_options = args.last.is_a?(Hash) ? args.pop : {}
+ function = args[0] || ''
+
html_options.symbolize_keys!
function = update_page(&block) if block_given?
content_tag(
@@ -104,7 +107,13 @@ def link_to_function(name, function = '', html_options = {}, &block)
# button_to_function "Details" do |page|
# page[:details].visual_effect :toggle_slide
# end
- def button_to_function(name, function = '', html_options = {}, &block)
+ # button_to_function "Details", :class => "details_button" do |page|
+ # page[:details].visual_effect :toggle_slide
+ # end
+ def button_to_function(name, *args, &block)
+ html_options = args.last.is_a?(Hash) ? args.pop : {}
+ function = args[0] || ''
+
html_options.symbolize_keys!
function = update_page(&block) if block_given?
tag(:input, html_options.merge({
@@ -38,6 +38,12 @@ def test_link_to_function_with_rjs_block
assert_dom_equal %(<a href="#" onclick="Element.update(&quot;header&quot;, &quot;&lt;h1&gt;Greetings&lt;/h1&gt;&quot;);; return false;">Greet me!</a>), html
end
+ def test_link_to_function_with_rjs_block_and_options
+ html = link_to_function( "Greet me!", :class => "updater" ) do |page|
+ page.replace_html 'header', "<h1>Greetings</h1>"
+ end
+ assert_dom_equal %(<a href="#" class="updater" onclick="Element.update(&quot;header&quot;, &quot;&lt;h1&gt;Greetings&lt;/h1&gt;&quot;);; return false;">Greet me!</a>), html
+ end
def test_button_to_function
assert_dom_equal %(<input type="button" onclick="alert('Hello world!');" value="Greeting" />),
@@ -50,4 +56,11 @@ def test_button_to_function_with_rjs_block
end
assert_dom_equal %(<input type="button" onclick="Element.update(&quot;header&quot;, &quot;&lt;h1&gt;Greetings&lt;/h1&gt;&quot;);;" value="Greet me!" />), html
end
+
+ def test_button_to_function_with_rjs_block_and_options
+ html = button_to_function( "Greet me!", :class => "greeter" ) do |page|
+ page.replace_html 'header', "<h1>Greetings</h1>"
+ end
+ assert_dom_equal %(<input type="button" class="greeter" onclick="Element.update(&quot;header&quot;, &quot;&lt;h1&gt;Greetings&lt;/h1&gt;&quot;);;" value="Greet me!" />), html
+ end
end

0 comments on commit 8c9ce61

Please sign in to comment.