Commit 78fa9abedf8d20754e3fdf2cfe734b9d308d8d3f
1 parent
f5a954c0
Exists in
master
and in
27 other branches
remove auto_complete plugin as it is unused and uses Prototype
Showing
6 changed files
with
0 additions
and
304 deletions
Show diff stats
vendor/plugins/auto_complete/README
... | ... | @@ -1,23 +0,0 @@ |
1 | -Example: | |
2 | - | |
3 | - # Controller | |
4 | - class BlogController < ApplicationController | |
5 | - auto_complete_for :post, :title | |
6 | - end | |
7 | - | |
8 | - # View | |
9 | - <%= text_field_with_auto_complete :post, title %> | |
10 | - | |
11 | -By default, auto_complete_for limits the results to 10 entries, | |
12 | -and sorts by the given field. | |
13 | - | |
14 | -auto_complete_for takes a third parameter, an options hash to | |
15 | -the find method used to search for the records: | |
16 | - | |
17 | - auto_complete_for :post, :title, :limit => 15, :order => 'created_at DESC' | |
18 | - | |
19 | -For more examples, see script.aculo.us: | |
20 | -* http://script.aculo.us/demos/ajax/autocompleter | |
21 | -* http://script.aculo.us/demos/ajax/autocompleter_customized | |
22 | - | |
23 | -Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license |
vendor/plugins/auto_complete/Rakefile
... | ... | @@ -1,22 +0,0 @@ |
1 | -require 'rake' | |
2 | -require 'rake/testtask' | |
3 | -require 'rake/rdoctask' | |
4 | - | |
5 | -desc 'Default: run unit tests.' | |
6 | -task :default => :test | |
7 | - | |
8 | -desc 'Test auto_complete plugin.' | |
9 | -Rake::TestTask.new(:test) do |t| | |
10 | - t.libs << 'lib' | |
11 | - t.pattern = 'test/**/*_test.rb' | |
12 | - t.verbose = true | |
13 | -end | |
14 | - | |
15 | -desc 'Generate documentation for auto_complete plugin.' | |
16 | -Rake::RDocTask.new(:rdoc) do |rdoc| | |
17 | - rdoc.rdoc_dir = 'rdoc' | |
18 | - rdoc.title = 'Auto Complete' | |
19 | - rdoc.options << '--line-numbers' << '--inline-source' | |
20 | - rdoc.rdoc_files.include('README') | |
21 | - rdoc.rdoc_files.include('lib/**/*.rb') | |
22 | -end |
vendor/plugins/auto_complete/init.rb
vendor/plugins/auto_complete/lib/auto_complete.rb
... | ... | @@ -1,47 +0,0 @@ |
1 | -module AutoComplete | |
2 | - | |
3 | - def self.included(base) | |
4 | - base.extend(ClassMethods) | |
5 | - end | |
6 | - | |
7 | - # | |
8 | - # Example: | |
9 | - # | |
10 | - # # Controller | |
11 | - # class BlogController < ApplicationController | |
12 | - # auto_complete_for :post, :title | |
13 | - # end | |
14 | - # | |
15 | - # # View | |
16 | - # <%= text_field_with_auto_complete :post, title %> | |
17 | - # | |
18 | - # By default, auto_complete_for limits the results to 10 entries, | |
19 | - # and sorts by the given field. | |
20 | - # | |
21 | - # auto_complete_for takes a third parameter, an options hash to | |
22 | - # the find method used to search for the records: | |
23 | - # | |
24 | - # auto_complete_for :post, :title, :limit => 15, :order => 'created_at DESC' | |
25 | - # | |
26 | - # For help on defining text input fields with autocompletion, | |
27 | - # see ActionView::Helpers::JavaScriptHelper. | |
28 | - # | |
29 | - # For more examples, see script.aculo.us: | |
30 | - # * http://script.aculo.us/demos/ajax/autocompleter | |
31 | - # * http://script.aculo.us/demos/ajax/autocompleter_customized | |
32 | - module ClassMethods | |
33 | - def auto_complete_for(object, method, options = {}) | |
34 | - define_method("auto_complete_for_#{object}_#{method}") do | |
35 | - find_options = { | |
36 | - :conditions => [ "LOWER(#{method}) LIKE ?", '%' + params[object][method].downcase + '%' ], | |
37 | - :order => "#{method} ASC", | |
38 | - :limit => 10 }.merge!(options) | |
39 | - | |
40 | - @items = object.to_s.camelize.constantize.find(:all, find_options) | |
41 | - | |
42 | - render :inline => "<%= auto_complete_result @items, '#{method}' %>" | |
43 | - end | |
44 | - end | |
45 | - end | |
46 | - | |
47 | -end | |
48 | 0 | \ No newline at end of file |
vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb
... | ... | @@ -1,143 +0,0 @@ |
1 | -module AutoCompleteMacrosHelper | |
2 | - # Adds AJAX autocomplete functionality to the text input field with the | |
3 | - # DOM ID specified by +field_id+. | |
4 | - # | |
5 | - # This function expects that the called action returns an HTML <ul> list, | |
6 | - # or nothing if no entries should be displayed for autocompletion. | |
7 | - # | |
8 | - # You'll probably want to turn the browser's built-in autocompletion off, | |
9 | - # so be sure to include an <tt>autocomplete="off"</tt> attribute with your text | |
10 | - # input field. | |
11 | - # | |
12 | - # The autocompleter object is assigned to a Javascript variable named <tt>field_id</tt>_auto_completer. | |
13 | - # This object is useful if you for example want to trigger the auto-complete suggestions through | |
14 | - # other means than user input (for that specific case, call the <tt>activate</tt> method on that object). | |
15 | - # | |
16 | - # Required +options+ are: | |
17 | - # <tt>:url</tt>:: URL to call for autocompletion results | |
18 | - # in url_for format. | |
19 | - # | |
20 | - # Addtional +options+ are: | |
21 | - # <tt>:update</tt>:: Specifies the DOM ID of the element whose | |
22 | - # innerHTML should be updated with the autocomplete | |
23 | - # entries returned by the AJAX request. | |
24 | - # Defaults to <tt>field_id</tt> + '_auto_complete' | |
25 | - # <tt>:with</tt>:: A JavaScript expression specifying the | |
26 | - # parameters for the XMLHttpRequest. This defaults | |
27 | - # to 'fieldname=value'. | |
28 | - # <tt>:frequency</tt>:: Determines the time to wait after the last keystroke | |
29 | - # for the AJAX request to be initiated. | |
30 | - # <tt>:indicator</tt>:: Specifies the DOM ID of an element which will be | |
31 | - # displayed while autocomplete is running. | |
32 | - # <tt>:tokens</tt>:: A string or an array of strings containing | |
33 | - # separator tokens for tokenized incremental | |
34 | - # autocompletion. Example: <tt>:tokens => ','</tt> would | |
35 | - # allow multiple autocompletion entries, separated | |
36 | - # by commas. | |
37 | - # <tt>:min_chars</tt>:: The minimum number of characters that should be | |
38 | - # in the input field before an Ajax call is made | |
39 | - # to the server. | |
40 | - # <tt>:on_hide</tt>:: A Javascript expression that is called when the | |
41 | - # autocompletion div is hidden. The expression | |
42 | - # should take two variables: element and update. | |
43 | - # Element is a DOM element for the field, update | |
44 | - # is a DOM element for the div from which the | |
45 | - # innerHTML is replaced. | |
46 | - # <tt>:on_show</tt>:: Like on_hide, only now the expression is called | |
47 | - # then the div is shown. | |
48 | - # <tt>:after_update_element</tt>:: A Javascript expression that is called when the | |
49 | - # user has selected one of the proposed values. | |
50 | - # The expression should take two variables: element and value. | |
51 | - # Element is a DOM element for the field, value | |
52 | - # is the value selected by the user. | |
53 | - # <tt>:select</tt>:: Pick the class of the element from which the value for | |
54 | - # insertion should be extracted. If this is not specified, | |
55 | - # the entire element is used. | |
56 | - # <tt>:method</tt>:: Specifies the HTTP verb to use when the autocompletion | |
57 | - # request is made. Defaults to POST. | |
58 | - def auto_complete_field(field_id, options = {}) | |
59 | - function = "var #{field_id}_auto_completer = new Ajax.Autocompleter(" | |
60 | - function << "'#{field_id}', " | |
61 | - function << "'" + (options[:update] || "#{field_id}_auto_complete") + "', " | |
62 | - function << "'#{url_for(options[:url])}'" | |
63 | - | |
64 | - js_options = {} | |
65 | - js_options[:tokens] = array_or_string_for_javascript(options[:tokens]) if options[:tokens] | |
66 | - js_options[:callback] = "function(element, value) { return #{options[:with]} }" if options[:with] | |
67 | - js_options[:indicator] = "'#{options[:indicator]}'" if options[:indicator] | |
68 | - js_options[:select] = "'#{options[:select]}'" if options[:select] | |
69 | - js_options[:paramName] = "'#{options[:param_name]}'" if options[:param_name] | |
70 | - js_options[:frequency] = "#{options[:frequency]}" if options[:frequency] | |
71 | - js_options[:method] = "'#{options[:method].to_s}'" if options[:method] | |
72 | - | |
73 | - { :after_update_element => :afterUpdateElement, | |
74 | - :on_show => :onShow, :on_hide => :onHide, :min_chars => :minChars }.each do |k,v| | |
75 | - js_options[v] = options[k] if options[k] | |
76 | - end | |
77 | - | |
78 | - function << (', ' + options_for_javascript(js_options) + ')') | |
79 | - | |
80 | - javascript_tag(function) | |
81 | - end | |
82 | - | |
83 | - # Use this method in your view to generate a return for the AJAX autocomplete requests. | |
84 | - # | |
85 | - # Example action: | |
86 | - # | |
87 | - # def auto_complete_for_item_title | |
88 | - # @items = Item.find(:all, | |
89 | - # :conditions => [ 'LOWER(description) LIKE ?', | |
90 | - # '%' + request.raw_post.downcase + '%' ]) | |
91 | - # render :inline => "<%= auto_complete_result(@items, 'description') %>" | |
92 | - # end | |
93 | - # | |
94 | - # The auto_complete_result can of course also be called from a view belonging to the | |
95 | - # auto_complete action if you need to decorate it further. | |
96 | - def auto_complete_result(entries, field, phrase = nil) | |
97 | - return unless entries | |
98 | - items = entries.map { |entry| content_tag("li", phrase ? highlight(entry[field], phrase) : h(entry[field])) } | |
99 | - content_tag("ul", items.uniq) | |
100 | - end | |
101 | - | |
102 | - # Wrapper for text_field with added AJAX autocompletion functionality. | |
103 | - # | |
104 | - # In your controller, you'll need to define an action called | |
105 | - # auto_complete_for to respond the AJAX calls, | |
106 | - # | |
107 | - def text_field_with_auto_complete(object, method, tag_options = {}, completion_options = {}) | |
108 | - (completion_options[:skip_style] ? "" : auto_complete_stylesheet) + | |
109 | - text_field(object, method, tag_options) + | |
110 | - content_tag("div", "", :id => "#{object}_#{method}_auto_complete", :class => "auto_complete") + | |
111 | - auto_complete_field("#{object}_#{method}", { :url => { :action => "auto_complete_for_#{object}_#{method}" } }.update(completion_options)) | |
112 | - end | |
113 | - | |
114 | - private | |
115 | - def auto_complete_stylesheet | |
116 | - content_tag('style', <<-EOT, :type => Mime::CSS) | |
117 | - div.auto_complete { | |
118 | - width: 350px; | |
119 | - background: #fff; | |
120 | - } | |
121 | - div.auto_complete ul { | |
122 | - border:1px solid #888; | |
123 | - margin:0; | |
124 | - padding:0; | |
125 | - width:100%; | |
126 | - list-style-type:none; | |
127 | - } | |
128 | - div.auto_complete ul li { | |
129 | - margin:0; | |
130 | - padding:3px; | |
131 | - } | |
132 | - div.auto_complete ul li.selected { | |
133 | - background-color: #ffb; | |
134 | - } | |
135 | - div.auto_complete ul strong.highlight { | |
136 | - color: #800; | |
137 | - margin:0; | |
138 | - padding:0; | |
139 | - } | |
140 | - EOT | |
141 | - end | |
142 | - | |
143 | -end |
vendor/plugins/auto_complete/test/auto_complete_test.rb
... | ... | @@ -1,67 +0,0 @@ |
1 | -require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper')) | |
2 | - | |
3 | -class AutoCompleteTest < Test::Unit::TestCase | |
4 | - include AutoComplete | |
5 | - include AutoCompleteMacrosHelper | |
6 | - | |
7 | - include ActionView::Helpers::UrlHelper | |
8 | - include ActionView::Helpers::TagHelper | |
9 | - include ActionView::Helpers::TextHelper | |
10 | - include ActionView::Helpers::FormHelper | |
11 | - include ActionView::Helpers::CaptureHelper | |
12 | - | |
13 | - def setup | |
14 | - @controller = Class.new do | |
15 | - def url_for(options) | |
16 | - url = "http://www.example.com/" | |
17 | - url << options[:action].to_s if options and options[:action] | |
18 | - url | |
19 | - end | |
20 | - end | |
21 | - @controller = @controller.new | |
22 | - end | |
23 | - | |
24 | - | |
25 | - def test_auto_complete_field | |
26 | - 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>), | |
27 | - auto_complete_field("some_input", :url => { :action => "autocomplete" }); | |
28 | - 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>), | |
29 | - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => ','); | |
30 | - 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>), | |
31 | - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => [',']); | |
32 | - 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>), | |
33 | - 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');}"); | |
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)}"); | |
41 | - 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>), | |
42 | - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :param_name => 'huidriwusch'); | |
43 | - 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>), | |
44 | - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :method => :get); | |
45 | - end | |
46 | - | |
47 | - def test_auto_complete_result | |
48 | - result = [ { :title => 'test1' }, { :title => 'test2' } ] | |
49 | - assert_equal %(<ul><li>test1</li><li>test2</li></ul>), | |
50 | - auto_complete_result(result, :title) | |
51 | - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li><li>t<strong class=\"highlight\">est</strong>2</li></ul>), | |
52 | - auto_complete_result(result, :title, "est") | |
53 | - | |
54 | - resultuniq = [ { :title => 'test1' }, { :title => 'test1' } ] | |
55 | - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li></ul>), | |
56 | - auto_complete_result(resultuniq, :title, "est") | |
57 | - end | |
58 | - | |
59 | - def test_text_field_with_auto_complete | |
60 | - assert_match %(<style type="text/css">), | |
61 | - text_field_with_auto_complete(:message, :recipient) | |
62 | - | |
63 | - 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>), | |
64 | - text_field_with_auto_complete(:message, :recipient, {}, :skip_style => true) | |
65 | - end | |
66 | - | |
67 | -end |