mongoid-data_table 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mongoid/data_table/proxy.rb +20 -15
- data/lib/mongoid/data_table/version.rb +2 -2
- metadata +10 -15
@@ -40,7 +40,7 @@ module Mongoid
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def conditions
|
43
|
-
criteria.order_by(order_by_conditions).where(filter_conditions).where(filter_field_conditions)
|
43
|
+
criteria.clone.order_by(order_by_conditions).where(filter_conditions).where(filter_field_conditions)
|
44
44
|
end
|
45
45
|
|
46
46
|
def to_hash(&inline_block)
|
@@ -67,7 +67,7 @@ module Mongoid
|
|
67
67
|
protected
|
68
68
|
|
69
69
|
def order_by_conditions
|
70
|
-
order_params = params.select { |k,v| k =~ /(i|s)Sort(Col|Dir)_\d+/ }
|
70
|
+
order_params = params.dup.select { |k,v| k =~ /(i|s)Sort(Col|Dir)_\d+/ }
|
71
71
|
return options[:order_by] || [] if order_params.blank?
|
72
72
|
order_params.select { |k,v| k =~ /iSortCol_\d+/ }.sort_by(&:first).map do |col,field|
|
73
73
|
i = /iSortCol_(\d+)/.match(col)[1]
|
@@ -78,28 +78,27 @@ module Mongoid
|
|
78
78
|
def filter_conditions
|
79
79
|
return unless (query = params[:sSearch]).present?
|
80
80
|
|
81
|
-
|
81
|
+
b_regex = Boolean.set(params["bRegex"])
|
82
|
+
|
83
|
+
{
|
84
|
+
"$or" => klass.data_table_searchable_fields.map { |field|
|
85
|
+
{ field => (b_regex === true) ? data_table_regex(query) : query }
|
86
|
+
}
|
87
|
+
}
|
82
88
|
end
|
83
89
|
|
84
90
|
def filter_field_conditions
|
85
|
-
|
91
|
+
params.dup.select { |k,v| k =~ /sSearch_\d+/ }.inject({}) do |h,(k,v)|
|
86
92
|
i = /sSearch_(\d+)/.match(k)[1]
|
87
93
|
|
88
94
|
field_name = fields[i.to_i]
|
89
|
-
field = klass.fields[field_name]
|
90
|
-
field_type = field.respond_to?(:type) ? field.type :
|
95
|
+
#field = klass.fields.dup[field_name]
|
96
|
+
#field_type = field.respond_to?(:type) ? field.type : Object
|
91
97
|
|
92
98
|
query = params["sSearch_#{i}"]
|
99
|
+
b_regex = Boolean.set(params["bRegex_#{i}"])
|
93
100
|
|
94
|
-
h[field_name] = (
|
95
|
-
begin
|
96
|
-
Regexp.new(query)
|
97
|
-
rescue RegexpError
|
98
|
-
Regexp.new(Regexp.escape(query))
|
99
|
-
end
|
100
|
-
else
|
101
|
-
query
|
102
|
-
end) if query.present?
|
101
|
+
h[field_name] = (b_regex === true) ? data_table_regex(query) : query if query.present?
|
103
102
|
h
|
104
103
|
end
|
105
104
|
end
|
@@ -126,6 +125,12 @@ module Mongoid
|
|
126
125
|
end
|
127
126
|
end
|
128
127
|
|
128
|
+
def data_table_regex(query)
|
129
|
+
Regexp.new(query, Regexp::IGNORECASE)
|
130
|
+
rescue RegexpError
|
131
|
+
Regexp.new(Regexp.escape(query), Regexp::IGNORECASE)
|
132
|
+
end
|
133
|
+
|
129
134
|
def method_missing(method, *args, &block) #:nodoc:
|
130
135
|
collection.send(method, *args, &block)
|
131
136
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mongoid-data_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jason Dew
|
@@ -15,6 +15,7 @@ date: 2011-05-17 00:00:00 Z
|
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
18
|
+
prerelease: false
|
18
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
20
|
none: false
|
20
21
|
requirements:
|
@@ -22,10 +23,10 @@ dependencies:
|
|
22
23
|
- !ruby/object:Gem::Version
|
23
24
|
version: 3.0.0
|
24
25
|
type: :runtime
|
25
|
-
prerelease: false
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: will_paginate
|
29
|
+
prerelease: false
|
29
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
31
|
none: false
|
31
32
|
requirements:
|
@@ -33,10 +34,10 @@ dependencies:
|
|
33
34
|
- !ruby/object:Gem::Version
|
34
35
|
version: 3.0.pre2
|
35
36
|
type: :runtime
|
36
|
-
prerelease: false
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: bson_ext
|
40
|
+
prerelease: false
|
40
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
42
|
none: false
|
42
43
|
requirements:
|
@@ -44,10 +45,10 @@ dependencies:
|
|
44
45
|
- !ruby/object:Gem::Version
|
45
46
|
version: 1.3.0
|
46
47
|
type: :development
|
47
|
-
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: mongoid
|
51
|
+
prerelease: false
|
51
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
53
|
none: false
|
53
54
|
requirements:
|
@@ -55,10 +56,10 @@ dependencies:
|
|
55
56
|
- !ruby/object:Gem::Version
|
56
57
|
version: 2.0.1
|
57
58
|
type: :development
|
58
|
-
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: mocha
|
62
|
+
prerelease: false
|
62
63
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
64
|
none: false
|
64
65
|
requirements:
|
@@ -66,10 +67,10 @@ dependencies:
|
|
66
67
|
- !ruby/object:Gem::Version
|
67
68
|
version: 0.9.12
|
68
69
|
type: :development
|
69
|
-
prerelease: false
|
70
70
|
version_requirements: *id005
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rspec
|
73
|
+
prerelease: false
|
73
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
75
|
none: false
|
75
76
|
requirements:
|
@@ -77,10 +78,10 @@ dependencies:
|
|
77
78
|
- !ruby/object:Gem::Version
|
78
79
|
version: 2.6.0
|
79
80
|
type: :development
|
80
|
-
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: shoulda
|
84
|
+
prerelease: false
|
84
85
|
requirement: &id007 !ruby/object:Gem::Requirement
|
85
86
|
none: false
|
86
87
|
requirements:
|
@@ -88,10 +89,10 @@ dependencies:
|
|
88
89
|
- !ruby/object:Gem::Version
|
89
90
|
version: 2.11.3
|
90
91
|
type: :development
|
91
|
-
prerelease: false
|
92
92
|
version_requirements: *id007
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: watchr
|
95
|
+
prerelease: false
|
95
96
|
requirement: &id008 !ruby/object:Gem::Requirement
|
96
97
|
none: false
|
97
98
|
requirements:
|
@@ -99,7 +100,6 @@ dependencies:
|
|
99
100
|
- !ruby/object:Gem::Version
|
100
101
|
version: "0.7"
|
101
102
|
type: :development
|
102
|
-
prerelease: false
|
103
103
|
version_requirements: *id008
|
104
104
|
description: Simple data preparation from Mongoid to the jQuery DataTables plugin
|
105
105
|
email:
|
@@ -145,18 +145,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
145
|
requirements:
|
146
146
|
- - ">="
|
147
147
|
- !ruby/object:Gem::Version
|
148
|
-
hash: 1445524431539221366
|
149
|
-
segments:
|
150
|
-
- 0
|
151
148
|
version: "0"
|
152
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
150
|
none: false
|
154
151
|
requirements:
|
155
152
|
- - ">="
|
156
153
|
- !ruby/object:Gem::Version
|
157
|
-
hash: 1445524431539221366
|
158
|
-
segments:
|
159
|
-
- 0
|
160
154
|
version: "0"
|
161
155
|
requirements: []
|
162
156
|
|
@@ -172,3 +166,4 @@ test_files:
|
|
172
166
|
- spec/unit/mongoid-data_table_spec.rb
|
173
167
|
- spec/unit/mongoid/data_table/proxy_spec.rb
|
174
168
|
- spec/unit/mongoid/data_table_spec.rb
|
169
|
+
has_rdoc:
|