module ActionView::Helpers::PrototypeHelper
def build_callbacks(options)
def build_callbacks(options) callbacks = {} options.each do |callback, code| if CALLBACKS.include?(callback) name = 'on' + callback.to_s.capitalize callbacks[name] = "function(request){#{code}}" end end callbacks end
def method_option_to_s(method)
def method_option_to_s(method) (method.is_a?(String) and !method.index("'").nil?) ? method : "'#{method}'" end
def options_for_ajax(options)
def options_for_ajax(options) js_options = build_callbacks(options) js_options['asynchronous'] = options[:type] != :synchronous js_options['method'] = method_option_to_s(options[:method]) if options[:method] js_options['insertion'] = "'#{options[:position].to_s.downcase}'" if options[:position] js_options['evalScripts'] = options[:script].nil? || options[:script] if options[:form] js_options['parameters'] = 'Form.serialize(this)' elsif options[:submit] js_options['parameters'] = "Form.serialize('#{options[:submit]}')" elsif options[:with] js_options['parameters'] = options[:with] end if protect_against_forgery? && !options[:form] if js_options['parameters'] js_options['parameters'] << " + '&" else js_options['parameters'] = "'" end js_options['parameters'] << "#{request_forgery_protection_token}=' + encodeURIComponent('#{escape_javascript form_authenticity_token}')" end options_for_javascript(js_options) end
def options_for_javascript(options)
def options_for_javascript(options) if options.empty? '{}' else "{#{options.keys.map { |k| "#{k}:#{options[k]}" }.sort.join(', ')}}" end end
def remote_function(options)
:url => { :action => :update_options }) %>">
def update_page(&block)
page.hide 'spinner'
update_page do |page|
Example:
See JavaScriptGenerator for more information.
Use this to update multiple elements on a page in an Ajax response.
Yields a JavaScriptGenerator and returns the generated JavaScript code.
def update_page(&block) JavaScriptGenerator.new(view_context, &block).to_s.html_safe end
def update_page_tag(html_options = {}, &block)
+html_options+ may be a hash of