rails-jquery-autocomplete 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -1
- data/README.md +24 -30
- data/lib/rails-jquery-autocomplete/orm/active_record.rb +32 -8
- data/lib/rails-jquery-autocomplete/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a1346b1232c8b075f528ed7febe0ad71acfe963
|
4
|
+
data.tar.gz: 8c520a4fd5310b32717974bc85631ae943187a55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8366b4f9a586efc35cafc47270bb0588f6f1e4083931c2ca8279a8e27ac35585c0f7b61a321f75d0521a3e0579e56b743903555e69c2541771dfba644ab4bed
|
7
|
+
data.tar.gz: e09d682607f6999ede171e01c69e4376554ea17e4bb3c4a6122fdb16e1325c93b6c2b7b98bfd36516e8e86650e8f27cf962f3c4c64c5ead617352f6bdada07e3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
* 1.0.3
|
4
|
+
* Fixes issue with SQLITE to support schemas
|
3
5
|
* 1.0.2
|
4
6
|
* Fixes compatibility with newer versions of Simple Form gem
|
5
7
|
* Fixes issue of not propagating events and issue of selected value not a string
|
@@ -9,7 +11,7 @@
|
|
9
11
|
* Option to enable/disable no matches found labeling
|
10
12
|
* 1.0.0
|
11
13
|
* Adds support for Rails 4
|
12
|
-
|
14
|
+
|
13
15
|
___
|
14
16
|
|
15
17
|
Changes from here on are for the rails3-jquery-autocomplete gem release versions
|
data/README.md
CHANGED
@@ -3,9 +3,7 @@
|
|
3
3
|
1. This is the officially maintained fork of
|
4
4
|
[rails3-jquery-autocomplete](http://github.com/crowdint/rails3-jquery-autocomplete)
|
5
5
|
2. All new features and support of Rails 4 and above will occur here
|
6
|
-
going forward.
|
7
|
-
the previous fork. No new features will be added there, but bug fixes &
|
8
|
-
security patches will continue until Rails 3 is EOL.
|
6
|
+
going forward. Rails 3 is also supported on this fork; bug fixes and security fixes for Rails 3 will continue until Rails 3 is EOL.
|
9
7
|
|
10
8
|
# rails-jquery-autocomplete
|
11
9
|
|
@@ -89,21 +87,21 @@ Just add it to your app/assets/javascripts/application.js file
|
|
89
87
|
|
90
88
|
### Demo Application by [Yifei](https://github.com/yifeiwu)
|
91
89
|
|
92
|
-
A live demo can be seen
|
90
|
+
A live demo can be seen
|
93
91
|
|
94
92
|
[here](https://rocky-thicket-9286.herokuapp.com/)
|
95
93
|
|
96
94
|
[source](https://github.com/yifeiwu/rails4-autocomplete-demo)
|
97
95
|
|
98
|
-
As a new developer, I had some issues getting this to work by following the documentation. However after trying some things and reading [Yoni Weisbrod](http://www.yoniweisbrod.com/autocomplete-magic-with-rails/)'s blog post, I was able to make the autocomplete work and implement a few useful features.
|
96
|
+
As a new developer, I had some issues getting this to work by following the documentation. However after trying some things and reading [Yoni Weisbrod](http://www.yoniweisbrod.com/autocomplete-magic-with-rails/)'s blog post, I was able to make the autocomplete work and implement a few useful features.
|
99
97
|
|
100
98
|
##Some implemented features
|
101
99
|
|
102
|
-
1. The css has been changed such that the results show up better against the box of suggestions. See `<app/assets/stylesheets/food.scss>` for details. I obtained this from a gist(forgive me I don't remember who the author is at the moment, please contact me if you do and I'll give credit). Upon mouseover/arrowkey presses, the selection will be highlighted.
|
100
|
+
1. The css has been changed such that the results show up better against the box of suggestions. See `<app/assets/stylesheets/food.scss>` for details. I obtained this from a gist(forgive me I don't remember who the author is at the moment, please contact me if you do and I'll give credit). Upon mouseover/arrowkey presses, the selection will be highlighted.
|
103
101
|
|
104
|
-
2. One Yoni's improvements, you can click on a suggested item to submit the search, instead of having to click on the submit button after clicking on the item. This is an example of how to hook onto the *railsAutocomplete.select* event.
|
102
|
+
2. One Yoni's improvements, you can click on a suggested item to submit the search, instead of having to click on the submit button after clicking on the item. This is an example of how to hook onto the *railsAutocomplete.select* event.
|
105
103
|
|
106
|
-
3. The autocomplete is implemented in the context of a search form with a simple scope search(see the food model and controller).
|
104
|
+
3. The autocomplete is implemented in the context of a search form with a simple scope search(see the food model and controller).
|
107
105
|
|
108
106
|
### Model Example
|
109
107
|
|
@@ -130,7 +128,7 @@ This will create an action _autocomplete_brand_name_ on your controller, don't f
|
|
130
128
|
resources :products do
|
131
129
|
get :autocomplete_brand_name, :on => :collection
|
132
130
|
end
|
133
|
-
|
131
|
+
|
134
132
|
Verify this path using `rake routes`, you will need it later for the **view** section.
|
135
133
|
|
136
134
|
### Options
|
@@ -194,27 +192,30 @@ Only the object's id and the column you are searching on will be returned in JSO
|
|
194
192
|
|
195
193
|
#### :hstore
|
196
194
|
|
197
|
-
|
195
|
+
Added option to support searching in hstore columns.
|
198
196
|
|
199
|
-
|
197
|
+
Pass a hash with two keys: `:method` and `:key` with values: the hstore field name and the key of the hstore to search.
|
200
198
|
|
201
|
-
|
199
|
+
e.g `autocomplete :feature, :name, :hstore => {:method => 'name_translations', :key => 'en'}`
|
202
200
|
|
203
201
|
|
204
202
|
#### :scopes
|
205
|
-
|
206
|
-
|
203
|
+
|
204
|
+
Added option to use scopes. Pass scopes in an array.
|
205
|
+
e.g `:scopes => [:scope1, :scope2]`
|
207
206
|
|
208
207
|
#### :column_name
|
209
|
-
|
210
|
-
|
208
|
+
|
209
|
+
By default autocomplete uses method name as column name. Now it can be specified using column_name options
|
210
|
+
`:column_name => 'name'`
|
211
211
|
|
212
212
|
#### json encoder
|
213
|
+
|
213
214
|
Autocomplete uses Yajl as JSON encoder/decoder, but you can specify your own
|
214
215
|
|
215
216
|
class ProductsController < Admin::BaseController
|
216
217
|
autocomplete :brand, :name do |items|
|
217
|
-
|
218
|
+
CustomJSON::Encoder.encode(items)
|
218
219
|
end
|
219
220
|
end
|
220
221
|
|
@@ -253,10 +254,10 @@ NOTE: Setting the `:multiple` option to `true` will result in the chosen values
|
|
253
254
|
|
254
255
|
To have the first item be automatically focused on when the autocomplete menu is shown, add the `'data-auto-focus'` option and set it to `true`.
|
255
256
|
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
257
|
+
form_for @product do |f|
|
258
|
+
f.autocomplete_field :brand_names, autocomplete_brand_name_products_path,
|
259
|
+
'data-auto-focus' => true
|
260
|
+
end
|
260
261
|
|
261
262
|
Now your autocomplete code is unobtrusive, Rails style.
|
262
263
|
|
@@ -269,10 +270,10 @@ To configure the behaviour if no matches are found, you can set the following op
|
|
269
270
|
|
270
271
|
These will change the behaviour globally. To set them on a single input field use:
|
271
272
|
|
272
|
-
f.autocomplete_field :brand_names, autocomplete_brand_name_products_path,
|
273
|
+
f.autocomplete_field :brand_names, autocomplete_brand_name_products_path,
|
273
274
|
'data-showNoMatches' => false
|
274
275
|
#or
|
275
|
-
f.autocomplete_field :brand_names, autocomplete_brand_name_products_path,
|
276
|
+
f.autocomplete_field :brand_names, autocomplete_brand_name_products_path,
|
276
277
|
'data-noMatchesLabel' => 'no brands found'
|
277
278
|
|
278
279
|
|
@@ -469,10 +470,3 @@ the future. Thanks!
|
|
469
470
|
|
470
471
|
Everyone on [this list](https://github.com/crowdint/rails3-jquery-autocomplete/contributors)
|
471
472
|
|
472
|
-
# About the Author
|
473
|
-
|
474
|
-
[Crowd Interactive](http://www.crowdint.com) is an American web design and development company that happens to work in Colima, Mexico.
|
475
|
-
We specialize in building and growing online retail stores. We don’t work with everyone – just companies we believe in. Call us today to see if there’s a fit.
|
476
|
-
Find more info [here](http://www.crowdint.com)!
|
477
|
-
|
478
|
-
|
@@ -5,7 +5,11 @@ module RailsJQueryAutocomplete
|
|
5
5
|
order = options[:order]
|
6
6
|
|
7
7
|
table_prefix = model ? "#{model.table_name}." : ""
|
8
|
-
|
8
|
+
if sqlite?
|
9
|
+
order || "LOWER(#{method}) ASC"
|
10
|
+
else
|
11
|
+
order || "LOWER(#{table_prefix}#{method}) ASC"
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
def active_record_get_autocomplete_items(parameters)
|
@@ -18,7 +22,6 @@ module RailsJQueryAutocomplete
|
|
18
22
|
limit = get_autocomplete_limit(options)
|
19
23
|
order = active_record_get_autocomplete_order(method, options, model)
|
20
24
|
|
21
|
-
|
22
25
|
items = (::Rails::VERSION::MAJOR * 10 + ::Rails::VERSION::MINOR) >= 40 ? model.where(nil) : model.scoped
|
23
26
|
|
24
27
|
scopes.each { |scope| items = items.send(scope) } unless scopes.empty?
|
@@ -32,8 +35,16 @@ module RailsJQueryAutocomplete
|
|
32
35
|
end
|
33
36
|
|
34
37
|
def get_autocomplete_select_clause(model, method, options)
|
35
|
-
|
36
|
-
|
38
|
+
if sqlite?
|
39
|
+
table_name = model.quoted_table_name
|
40
|
+
([
|
41
|
+
"#{table_name}.#{model.connection.quote_column_name(model.primary_key)} as #{model.primary_key}",
|
42
|
+
"#{table_name}.#{model.connection.quote_column_name(method)} as #{method}"
|
43
|
+
] + (options[:extra_data].blank? ? [] : options[:extra_data]))
|
44
|
+
else
|
45
|
+
table_name = model.table_name
|
46
|
+
(["#{table_name}.#{model.primary_key}", "#{table_name}.#{method}"] + (options[:extra_data].blank? ? [] : options[:extra_data]))
|
47
|
+
end
|
37
48
|
end
|
38
49
|
|
39
50
|
def get_autocomplete_where_clause(model, term, method, options)
|
@@ -42,15 +53,28 @@ module RailsJQueryAutocomplete
|
|
42
53
|
like_clause = (postgres?(model) ? 'ILIKE' : 'LIKE')
|
43
54
|
if options[:hstore]
|
44
55
|
["LOWER(#{table_name}.#{method} -> '#{options[:hstore][:key]}') LIKE ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]
|
56
|
+
elsif sqlite?
|
57
|
+
["LOWER(#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]
|
45
58
|
else
|
46
59
|
["LOWER(#{table_name}.#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]
|
47
60
|
end
|
48
61
|
end
|
49
62
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
63
|
+
protected
|
64
|
+
|
65
|
+
def sqlite?
|
66
|
+
begin
|
67
|
+
return ::ActiveRecord::Base.connection.to_s.match(/SQLite/)
|
68
|
+
rescue ::ActiveRecord::ConnectionNotEstablished
|
69
|
+
return false
|
70
|
+
end
|
71
|
+
return false
|
72
|
+
end
|
73
|
+
|
74
|
+
def postgres?(model)
|
75
|
+
# Figure out if this particular model uses the PostgreSQL adapter
|
76
|
+
model.connection.class.to_s.match(/PostgreSQLAdapter/)
|
77
|
+
end
|
54
78
|
end
|
55
79
|
end
|
56
80
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-jquery-autocomplete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Padilla
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-10-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -180,8 +180,22 @@ dependencies:
|
|
180
180
|
- - "~>"
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '1.5'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: byebug
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
183
197
|
description: Use jQuery's autocomplete plugin with Rails 4+.
|
184
|
-
email: david
|
198
|
+
email: david@padilla.cc joiey.seeley@gmail.com sundusahmedyousuf@gmail.com
|
185
199
|
executables: []
|
186
200
|
extensions: []
|
187
201
|
extra_rdoc_files: []
|
@@ -239,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
253
|
version: '0'
|
240
254
|
requirements: []
|
241
255
|
rubyforge_project:
|
242
|
-
rubygems_version: 2.4.
|
256
|
+
rubygems_version: 2.4.5.1
|
243
257
|
signing_key:
|
244
258
|
specification_version: 4
|
245
259
|
summary: Use jQuery's autocomplete plugin with Rails 4+.
|