diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 75c22e8e98..46a1861f67 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Add :script option to in_place_editor to support evalScripts (closes #4194) [codyfauser@gmail.com] + * Fix mixed case enumerable methods in the JavaScript Collection Proxy (closes #4314) [codyfauser@gmail.com] * Undo accidental escaping for mail_to; add regression test. [Nicholas Seckar] diff --git a/actionpack/lib/action_view/helpers/java_script_macros_helper.rb b/actionpack/lib/action_view/helpers/java_script_macros_helper.rb index 4237909f1d..c42ee687e4 100644 --- a/actionpack/lib/action_view/helpers/java_script_macros_helper.rb +++ b/actionpack/lib/action_view/helpers/java_script_macros_helper.rb @@ -39,6 +39,7 @@ module ActionView # :options:: Pass through options to the AJAX call (see prototype's Ajax.Updater) # :with:: JavaScript snippet that should return what is to be sent # in the AJAX call, +form+ is an implicit parameter + # :script:: Instructs the in-place editor to evaluate the remote JavaScript response (default: false) def in_place_editor(field_id, options = {}) function = "new Ajax.InPlaceEditor(" function << "'#{field_id}', " @@ -54,6 +55,7 @@ module ActionView js_options['externalControl'] = "'#{options[:external_control]}'" if options[:external_control] js_options['loadTextURL'] = "'#{url_for(options[:load_text_url])}'" if options[:load_text_url] js_options['ajaxOptions'] = options[:options] if options[:options] + js_options['evalScripts'] = options[:script] if options[:script] js_options['callback'] = "function(form) { return #{options[:with]} }" if options[:with] function << (', ' + options_for_javascript(js_options)) unless js_options.empty? diff --git a/actionpack/test/template/java_script_macros_helper_test.rb b/actionpack/test/template/java_script_macros_helper_test.rb index 1a18c00e72..59fe2398e5 100644 --- a/actionpack/test/template/java_script_macros_helper_test.rb +++ b/actionpack/test/template/java_script_macros_helper_test.rb @@ -91,4 +91,11 @@ class JavaScriptMacrosHelperTest < Test::Unit::TestCase :load_text_url => { :action => "action_to_get_value" }) end + def test_in_place_editor_eval_scripts + assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {evalScripts:true})", + in_place_editor( 'id-goes-here', + :url => { :action => "action_to_set_value" }, + :script => true ) + end + end