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

Ticket #5983: add_index_support_to_text_field_with_auto_complete.diff

File add_index_support_to_text_field_with_auto_complete.diff, 2.7 kB (added by ibroadfo, 2 years ago)

test-driven patch, implemented as per comment 2

  • actionpack/test/template/java_script_macros_helper_test.rb

    old new  
    6060 
    6161    assert_dom_equal %(<input id=\"message_recipient\" name=\"message[recipient]\" size=\"30\" type=\"text\" /><div class=\"auto_complete\" id=\"message_recipient_auto_complete\"></div><script type=\"text/javascript\">\n//<![CDATA[\nvar message_recipient_auto_completer = new Ajax.Autocompleter('message_recipient', 'message_recipient_auto_complete', 'http://www.example.com/auto_complete_for_message_recipient', {})\n//]]>\n</script>), 
    6262      text_field_with_auto_complete(:message, :recipient, {}, :skip_style => true) 
     63 
     64    assert_dom_equal %(<input id=\"message_0_recipient\" name=\"message[0][recipient]\" size=\"30\" type=\"text\" /><div class=\"auto_complete\" id=\"message_0_recipient_auto_complete\"></div><script type=\"text/javascript\">\n//<![CDATA[\nvar message_0_recipient_auto_completer = new Ajax.Autocompleter('message_0_recipient', 'message_0_recipient_auto_complete', 'http://www.example.com/auto_complete_for_message_recipient', {})\n//]]>\n</script>), 
     65      text_field_with_auto_complete(:message, :recipient, {:index => 0}, :skip_style => true) 
    6366  end 
    6467   
    6568  def test_in_place_editor_external_control 
  • actionpack/lib/action_view/helpers/java_script_macros_helper.rb

    old new  
    193193      #  
    194194      # See the RDoc on ActionController::AutoComplete to learn more about this. 
    195195      def text_field_with_auto_complete(object, method, tag_options = {}, completion_options = {}) 
     196        if(tag_options[:index]) 
     197          tag_name = "#{object}_#{tag_options[:index]}_#{method}" 
     198        else 
     199          tag_name = "#{object}_#{method}" 
     200        end 
     201 
    196202        (completion_options[:skip_style] ? "" : auto_complete_stylesheet) + 
    197203        text_field(object, method, tag_options) + 
    198         content_tag("div", "", :id => "#{object}_#{method}_auto_complete", :class => "auto_complete") + 
    199         auto_complete_field("#{object}_#{method}", { :url => { :action => "auto_complete_for_#{object}_#{method}" } }.update(completion_options)) 
     204        content_tag("div", "", :id => tag_name + "_auto_complete", :class => "auto_complete") + 
     205        auto_complete_field(tag_name, { :url => { :action => "auto_complete_for_#{object}_#{method}" } }.update(completion_options)) 
    200206      end 
    201207       
    202208      private