effective_datatables 2.6.3 → 2.6.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 147fbd09ec680b0db8ba4a47af18f0286cd0c055
|
4
|
+
data.tar.gz: 1588dd78852406c4259c01dfb1298a4500d03271
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 142a1acc50d459b49b40d0eb9f2694811c6587fbb9018b2f75be841645dfae80b81e030fbd2241f2be8fdfab0d223e03156c4655c603d9c32b4a54ab2a30910f
|
7
|
+
data.tar.gz: aa9f267f18cfe926aca23e9cbb3432a9cce68806b21e01492f7864705fbca660aa35ca7ee5a5bd125e789f708394a3edb321eb188c5b6ba50becd2443094d0c1
|
@@ -112,26 +112,15 @@ module Effective
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def present?
|
115
|
-
total_records
|
115
|
+
total_records > 0
|
116
116
|
end
|
117
117
|
|
118
118
|
def empty?
|
119
|
-
total_records
|
119
|
+
total_records == 0
|
120
120
|
end
|
121
121
|
|
122
122
|
def total_records
|
123
|
-
@total_records ||= (
|
124
|
-
if active_record_collection?
|
125
|
-
if collection_class.connection.respond_to?(:unprepared_statement)
|
126
|
-
collection_sql = collection_class.connection.unprepared_statement { collection.to_sql }
|
127
|
-
(collection_class.connection.exec_query("SELECT COUNT(*) FROM (#{collection_sql}) AS datatables_total_count").rows[0][0] rescue 1).to_i
|
128
|
-
else
|
129
|
-
(collection_class.connection.exec_query("SELECT COUNT(*) FROM (#{collection.to_sql}) AS datatables_total_count").rows[0][0] rescue 1).to_i
|
130
|
-
end
|
131
|
-
else
|
132
|
-
collection.size
|
133
|
-
end
|
134
|
-
)
|
123
|
+
@total_records ||= (active_record_collection? ? active_record_collection_size(collection) : collection.size)
|
135
124
|
end
|
136
125
|
|
137
126
|
def view=(view_context)
|
@@ -194,12 +183,36 @@ module Effective
|
|
194
183
|
end
|
195
184
|
|
196
185
|
def active_record_collection?
|
197
|
-
collection.ancestors.include?(ActiveRecord::Base) rescue false
|
186
|
+
@active_record_collection ||= (collection.ancestors.include?(ActiveRecord::Base) rescue false)
|
198
187
|
end
|
199
188
|
|
200
189
|
def array_collection?
|
201
190
|
collection.kind_of?(Array) && collection.first.kind_of?(Array)
|
202
191
|
end
|
203
192
|
|
193
|
+
# Not every ActiveRecord query will work when calling the simple .count
|
194
|
+
# Custom selects:
|
195
|
+
# User.select(:email, :first_name).count will throw an error
|
196
|
+
# .count(:all) and .size seem to work
|
197
|
+
# Grouped Queries:
|
198
|
+
# User.all.group(:email).count will return a Hash
|
199
|
+
def active_record_collection_size(collection)
|
200
|
+
count = (collection.size rescue nil)
|
201
|
+
|
202
|
+
case count
|
203
|
+
when Integer
|
204
|
+
count
|
205
|
+
when Hash
|
206
|
+
count.size # This represents the number of displayed datatable rows, not the sum all groups (which might be more)
|
207
|
+
else
|
208
|
+
if collection.klass.connection.respond_to?(:unprepared_statement)
|
209
|
+
collection_sql = collection.klass.connection.unprepared_statement { collection.to_sql }
|
210
|
+
(collection.klass.connection.exec_query("SELECT COUNT(*) FROM (#{collection_sql}) AS datatables_total_count").rows[0][0] rescue 1)
|
211
|
+
else
|
212
|
+
(collection.klass.connection.exec_query("SELECT COUNT(*) FROM (#{collection.to_sql}) AS datatables_total_count").rows[0][0] rescue 1)
|
213
|
+
end.to_i
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
204
217
|
end
|
205
218
|
end
|
@@ -17,13 +17,7 @@ module Effective
|
|
17
17
|
col = table_tool.search(col)
|
18
18
|
|
19
19
|
if table_tool.search_terms.present? && array_tool.search_terms.blank?
|
20
|
-
|
21
|
-
# https://github.com/rails/rails/issues/15331
|
22
|
-
col_sql = collection_class.connection.unprepared_statement { col.to_sql }
|
23
|
-
self.display_records = (collection_class.connection.execute("SELECT COUNT(*) FROM (#{col_sql}) AS datatables_filtered_count").first.values.first rescue 1).to_i
|
24
|
-
else
|
25
|
-
self.display_records = (collection_class.connection.execute("SELECT COUNT(*) FROM (#{col.to_sql}) AS datatables_filtered_count").first.values.first rescue 1).to_i
|
26
|
-
end
|
20
|
+
self.display_records = active_record_collection_size(col)
|
27
21
|
end
|
28
22
|
end
|
29
23
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_datatables
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
221
|
version: '0'
|
222
222
|
requirements: []
|
223
223
|
rubyforge_project:
|
224
|
-
rubygems_version: 2.4.
|
224
|
+
rubygems_version: 2.4.5.1
|
225
225
|
signing_key:
|
226
226
|
specification_version: 4
|
227
227
|
summary: Uniquely powerful server-side searching, sorting and filtering of any ActiveRecord
|