Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4131

Show
Ignore:
Timestamp:
04/02/06 14:04:03 (3 years ago)
Author:
madrobby
Message:

Add additional autocompleter options [aballai, Thomas Fuchs]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r4126 r4131  
    11*SVN* 
     2 
     3* Add additional autocompleter options [aballai, Thomas Fuchs] 
    24 
    35* Fixed fragment caching of binary data on Windows #4493 [bellis@deepthought.org] 
  • trunk/actionpack/lib/action_view/helpers/java_script_macros_helper.rb

    r3985 r4131  
    102102      #                       parameters for the XMLHttpRequest. This defaults 
    103103      #                       to 'fieldname=value'. 
     104      # <tt>:frequency</tt>:: Determines the time to wait after the last keystroke 
     105      #                       for the AJAX request to be initiated. 
    104106      # <tt>:indicator</tt>:: Specifies the DOM ID of an element which will be 
    105107      #                       displayed while autocomplete is running. 
     
    120122      # <tt>:on_show</tt>::   Like on_hide, only now the expression is called 
    121123      #                       then the div is shown. 
     124      # <tt>:after_update_element</tt>::   A Javascript expression that is called when the 
     125      #                       user has selected one of the proposed values.  
     126      #                       The expression should take two variables: element and value. 
     127      #                       Element is a DOM element for the field, value 
     128      #                       is the value selected by the user. 
    122129      # <tt>:select</tt>::    Pick the class of the element from which the value for  
    123130      #                       insertion should be extracted. If this is not specified, 
     
    134141        js_options[:indicator]  = "'#{options[:indicator]}'" if options[:indicator] 
    135142        js_options[:select]     = "'#{options[:select]}'" if options[:select] 
    136  
    137         { :on_show => :onShow, :on_hide => :onHide, :min_chars => :minChars }.each do |k,v| 
     143        js_options[:frequency]  = "#{options[:frequency]}" if options[:frequency] 
     144 
     145        { :after_update_element => :afterUpdateElement,  
     146          :on_show => :onShow, :on_hide => :onHide, :min_chars => :minChars }.each do |k,v| 
    138147          js_options[v] = options[k] if options[k] 
    139148        end 
  • trunk/actionpack/test/template/java_script_macros_helper_test.rb

    r3985 r4131  
    3232    assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nvar some_input_auto_completer = new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {minChars:3})\n//]]>\n</script>), 
    3333      auto_complete_field("some_input", :url => { :action => "autocomplete" }, :min_chars => 3); 
    34     assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nvar some_input_auto_completer = new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {onHide:function(element, update){Alert('me');}})\n//]]>\n</script>), 
    35       auto_complete_field("some_input", :url => { :action => "autocomplete" }, :on_hide => "function(element, update){Alert('me');}"); 
     34    assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nvar some_input_auto_completer = new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {onHide:function(element, update){alert('me');}})\n//]]>\n</script>), 
     35      auto_complete_field("some_input", :url => { :action => "autocomplete" }, :on_hide => "function(element, update){alert('me');}"); 
     36    assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nvar some_input_auto_completer = new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {frequency:2})\n//]]>\n</script>), 
     37      auto_complete_field("some_input", :url => { :action => "autocomplete" }, :frequency => 2); 
     38    assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nvar some_input_auto_completer = new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {afterUpdateElement:function(element,value){alert('You have chosen: '+value)}})\n//]]>\n</script>), 
     39      auto_complete_field("some_input", :url => { :action => "autocomplete" },  
     40        :after_update_element => "function(element,value){alert('You have chosen: '+value)}"); 
    3641  end 
    3742