diff options
author | francis <francis> | 2009-05-19 00:24:59 +0000 |
---|---|---|
committer | francis <francis> | 2009-05-19 00:24:59 +0000 |
commit | ee721d7a6faa69d5b0ae5292d8280e378eb7cec9 (patch) | |
tree | bd47880b0a38e11888c35ef5aeaa7489218bd1d6 | |
parent | ed030829134ec452ccb5f12a5d4d377f54473806 (diff) |
Remove auto complete plugin
-rw-r--r-- | vendor/plugins/auto_complete/README | 23 | ||||
-rw-r--r-- | vendor/plugins/auto_complete/Rakefile | 22 | ||||
-rw-r--r-- | vendor/plugins/auto_complete/init.rb | 2 | ||||
-rw-r--r-- | vendor/plugins/auto_complete/lib/auto_complete.rb | 47 | ||||
-rw-r--r-- | vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb | 143 | ||||
-rw-r--r-- | vendor/plugins/auto_complete/test/auto_complete_test.rb | 67 |
6 files changed, 0 insertions, 304 deletions
diff --git a/vendor/plugins/auto_complete/README b/vendor/plugins/auto_complete/README deleted file mode 100644 index e08a81518..000000000 --- a/vendor/plugins/auto_complete/README +++ /dev/null @@ -1,23 +0,0 @@ -Example: - - # Controller - class BlogController < ApplicationController - auto_complete_for :post, :title - end - - # View - <%= text_field_with_auto_complete :post, title %> - -By default, auto_complete_for limits the results to 10 entries, -and sorts by the given field. - -auto_complete_for takes a third parameter, an options hash to -the find method used to search for the records: - - auto_complete_for :post, :title, :limit => 15, :order => 'created_at DESC' - -For more examples, see script.aculo.us: -* http://script.aculo.us/demos/ajax/autocompleter -* http://script.aculo.us/demos/ajax/autocompleter_customized - -Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license diff --git a/vendor/plugins/auto_complete/Rakefile b/vendor/plugins/auto_complete/Rakefile deleted file mode 100644 index 5af4e8264..000000000 --- a/vendor/plugins/auto_complete/Rakefile +++ /dev/null @@ -1,22 +0,0 @@ -require 'rake' -require 'rake/testtask' -require 'rake/rdoctask' - -desc 'Default: run unit tests.' -task :default => :test - -desc 'Test auto_complete plugin.' -Rake::TestTask.new(:test) do |t| - t.libs << 'lib' - t.pattern = 'test/**/*_test.rb' - t.verbose = true -end - -desc 'Generate documentation for auto_complete plugin.' -Rake::RDocTask.new(:rdoc) do |rdoc| - rdoc.rdoc_dir = 'rdoc' - rdoc.title = 'Auto Complete' - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.rdoc_files.include('README') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/vendor/plugins/auto_complete/init.rb b/vendor/plugins/auto_complete/init.rb deleted file mode 100644 index 87bf027de..000000000 --- a/vendor/plugins/auto_complete/init.rb +++ /dev/null @@ -1,2 +0,0 @@ -ActionController::Base.send :include, AutoComplete -ActionController::Base.helper AutoCompleteMacrosHelper
\ No newline at end of file diff --git a/vendor/plugins/auto_complete/lib/auto_complete.rb b/vendor/plugins/auto_complete/lib/auto_complete.rb deleted file mode 100644 index 4afc7c2e8..000000000 --- a/vendor/plugins/auto_complete/lib/auto_complete.rb +++ /dev/null @@ -1,47 +0,0 @@ -module AutoComplete - - def self.included(base) - base.extend(ClassMethods) - end - - # - # Example: - # - # # Controller - # class BlogController < ApplicationController - # auto_complete_for :post, :title - # end - # - # # View - # <%= text_field_with_auto_complete :post, title %> - # - # By default, auto_complete_for limits the results to 10 entries, - # and sorts by the given field. - # - # auto_complete_for takes a third parameter, an options hash to - # the find method used to search for the records: - # - # auto_complete_for :post, :title, :limit => 15, :order => 'created_at DESC' - # - # For help on defining text input fields with autocompletion, - # see ActionView::Helpers::JavaScriptHelper. - # - # For more examples, see script.aculo.us: - # * http://script.aculo.us/demos/ajax/autocompleter - # * http://script.aculo.us/demos/ajax/autocompleter_customized - module ClassMethods - def auto_complete_for(object, method, options = {}) - define_method("auto_complete_for_#{object}_#{method}") do - find_options = { - :conditions => [ "LOWER(#{method}) LIKE ?", '%' + params[object][method].downcase + '%' ], - :order => "#{method} ASC", - :limit => 10 }.merge!(options) - - @items = object.to_s.camelize.constantize.find(:all, find_options) - - render :inline => "<%= auto_complete_result @items, '#{method}' %>" - end - end - end - -end
\ No newline at end of file diff --git a/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb b/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb deleted file mode 100644 index 1d25ee47b..000000000 --- a/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +++ /dev/null @@ -1,143 +0,0 @@ -module AutoCompleteMacrosHelper - # Adds AJAX autocomplete functionality to the text input field with the - # DOM ID specified by +field_id+. - # - # This function expects that the called action returns an HTML <ul> list, - # or nothing if no entries should be displayed for autocompletion. - # - # You'll probably want to turn the browser's built-in autocompletion off, - # so be sure to include an <tt>autocomplete="off"</tt> attribute with your text - # input field. - # - # The autocompleter object is assigned to a Javascript variable named <tt>field_id</tt>_auto_completer. - # This object is useful if you for example want to trigger the auto-complete suggestions through - # other means than user input (for that specific case, call the <tt>activate</tt> method on that object). - # - # Required +options+ are: - # <tt>:url</tt>:: URL to call for autocompletion results - # in url_for format. - # - # Addtional +options+ are: - # <tt>:update</tt>:: Specifies the DOM ID of the element whose - # innerHTML should be updated with the autocomplete - # entries returned by the AJAX request. - # Defaults to <tt>field_id</tt> + '_auto_complete' - # <tt>:with</tt>:: A JavaScript expression specifying the - # parameters for the XMLHttpRequest. This defaults - # to 'fieldname=value'. - # <tt>:frequency</tt>:: Determines the time to wait after the last keystroke - # for the AJAX request to be initiated. - # <tt>:indicator</tt>:: Specifies the DOM ID of an element which will be - # displayed while autocomplete is running. - # <tt>:tokens</tt>:: A string or an array of strings containing - # separator tokens for tokenized incremental - # autocompletion. Example: <tt>:tokens => ','</tt> would - # allow multiple autocompletion entries, separated - # by commas. - # <tt>:min_chars</tt>:: The minimum number of characters that should be - # in the input field before an Ajax call is made - # to the server. - # <tt>:on_hide</tt>:: A Javascript expression that is called when the - # autocompletion div is hidden. The expression - # should take two variables: element and update. - # Element is a DOM element for the field, update - # is a DOM element for the div from which the - # innerHTML is replaced. - # <tt>:on_show</tt>:: Like on_hide, only now the expression is called - # then the div is shown. - # <tt>:after_update_element</tt>:: A Javascript expression that is called when the - # user has selected one of the proposed values. - # The expression should take two variables: element and value. - # Element is a DOM element for the field, value - # is the value selected by the user. - # <tt>:select</tt>:: Pick the class of the element from which the value for - # insertion should be extracted. If this is not specified, - # the entire element is used. - # <tt>:method</tt>:: Specifies the HTTP verb to use when the autocompletion - # request is made. Defaults to POST. - def auto_complete_field(field_id, options = {}) - function = "var #{field_id}_auto_completer = new Ajax.Autocompleter(" - function << "'#{field_id}', " - function << "'" + (options[:update] || "#{field_id}_auto_complete") + "', " - function << "'#{url_for(options[:url])}'" - - js_options = {} - js_options[:tokens] = array_or_string_for_javascript(options[:tokens]) if options[:tokens] - js_options[:callback] = "function(element, value) { return #{options[:with]} }" if options[:with] - js_options[:indicator] = "'#{options[:indicator]}'" if options[:indicator] - js_options[:select] = "'#{options[:select]}'" if options[:select] - js_options[:paramName] = "'#{options[:param_name]}'" if options[:param_name] - js_options[:frequency] = "#{options[:frequency]}" if options[:frequency] - js_options[:method] = "'#{options[:method].to_s}'" if options[:method] - - { :after_update_element => :afterUpdateElement, - :on_show => :onShow, :on_hide => :onHide, :min_chars => :minChars }.each do |k,v| - js_options[v] = options[k] if options[k] - end - - function << (', ' + options_for_javascript(js_options) + ')') - - javascript_tag(function) - end - - # Use this method in your view to generate a return for the AJAX autocomplete requests. - # - # Example action: - # - # def auto_complete_for_item_title - # @items = Item.find(:all, - # :conditions => [ 'LOWER(description) LIKE ?', - # '%' + request.raw_post.downcase + '%' ]) - # render :inline => "<%= auto_complete_result(@items, 'description') %>" - # end - # - # The auto_complete_result can of course also be called from a view belonging to the - # auto_complete action if you need to decorate it further. - def auto_complete_result(entries, field, phrase = nil) - return unless entries - items = entries.map { |entry| content_tag("li", phrase ? highlight(entry[field], phrase) : h(entry[field])) } - content_tag("ul", items.uniq) - end - - # Wrapper for text_field with added AJAX autocompletion functionality. - # - # In your controller, you'll need to define an action called - # auto_complete_for to respond the AJAX calls, - # - def text_field_with_auto_complete(object, method, tag_options = {}, completion_options = {}) - (completion_options[:skip_style] ? "" : auto_complete_stylesheet) + - text_field(object, method, tag_options) + - content_tag("div", "", :id => "#{object}_#{method}_auto_complete", :class => "auto_complete") + - auto_complete_field("#{object}_#{method}", { :url => { :action => "auto_complete_for_#{object}_#{method}" } }.update(completion_options)) - end - - private - def auto_complete_stylesheet - content_tag('style', <<-EOT, :type => Mime::CSS) - div.auto_complete { - width: 350px; - background: #fff; - } - div.auto_complete ul { - border:1px solid #888; - margin:0; - padding:0; - width:100%; - list-style-type:none; - } - div.auto_complete ul li { - margin:0; - padding:3px; - } - div.auto_complete ul li.selected { - background-color: #ffb; - } - div.auto_complete ul strong.highlight { - color: #800; - margin:0; - padding:0; - } - EOT - end - -end diff --git a/vendor/plugins/auto_complete/test/auto_complete_test.rb b/vendor/plugins/auto_complete/test/auto_complete_test.rb deleted file mode 100644 index dc9a5c91d..000000000 --- a/vendor/plugins/auto_complete/test/auto_complete_test.rb +++ /dev/null @@ -1,67 +0,0 @@ -require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper')) - -class AutoCompleteTest < Test::Unit::TestCase - include AutoComplete - include AutoCompleteMacrosHelper - - include ActionView::Helpers::UrlHelper - include ActionView::Helpers::TagHelper - include ActionView::Helpers::TextHelper - include ActionView::Helpers::FormHelper - include ActionView::Helpers::CaptureHelper - - def setup - @controller = Class.new do - def url_for(options) - url = "http://www.example.com/" - url << options[:action].to_s if options and options[:action] - url - end - end - @controller = @controller.new - end - - - def test_auto_complete_field - 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', {})\n//]]>\n</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }); - 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', {tokens:','})\n//]]>\n</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => ','); - 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', {tokens:[',']})\n//]]>\n</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => [',']); - 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>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :min_chars => 3); - 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>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :on_hide => "function(element, update){alert('me');}"); - 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>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :frequency => 2); - 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>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, - :after_update_element => "function(element,value){alert('You have chosen: '+value)}"); - 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', {paramName:'huidriwusch'})\n//]]>\n</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :param_name => 'huidriwusch'); - 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', {method:'get'})\n//]]>\n</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :method => :get); - end - - def test_auto_complete_result - result = [ { :title => 'test1' }, { :title => 'test2' } ] - assert_equal %(<ul><li>test1</li><li>test2</li></ul>), - auto_complete_result(result, :title) - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li><li>t<strong class=\"highlight\">est</strong>2</li></ul>), - auto_complete_result(result, :title, "est") - - resultuniq = [ { :title => 'test1' }, { :title => 'test1' } ] - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li></ul>), - auto_complete_result(resultuniq, :title, "est") - end - - def test_text_field_with_auto_complete - assert_match %(<style type="text/css">), - text_field_with_auto_complete(:message, :recipient) - - 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>), - text_field_with_auto_complete(:message, :recipient, {}, :skip_style => true) - end - -end |