mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add :script option to in_place_editor to support evalScripts (closes #4194) [codyfauser@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3985 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
a6cfb4e0e4
commit
f49ba114db
3 changed files with 11 additions and 0 deletions
|
@ -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]
|
||||
|
|
|
@ -39,6 +39,7 @@ module ActionView
|
|||
# <tt>:options</tt>:: Pass through options to the AJAX call (see prototype's Ajax.Updater)
|
||||
# <tt>:with</tt>:: JavaScript snippet that should return what is to be sent
|
||||
# in the AJAX call, +form+ is an implicit parameter
|
||||
# <tt>:script</tt>:: 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?
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue