effective_datatables 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86c4a4ce9bbbe51c5b6a37624ab041e0150130a7
4
- data.tar.gz: 5601231c343b39b14aeb87b5e5e04c7086f26c4d
3
+ metadata.gz: c823dd7f44e5191f730076d3fec30747fa5332b8
4
+ data.tar.gz: 30ac156546c0fcd154abc0e3e144fe5a8ea7ab75
5
5
  SHA512:
6
- metadata.gz: c4a50e770e239cbef09f544414d4f18a78471140e456309536672e61e40e192de1c2e5ad25d7e98ae9d4fc8e1964c4c3e3a8649e639fb8cb4442b14eb87bd65e
7
- data.tar.gz: 8edc669655778534cddfc4e74e31811740759574d0f0597b2e2b033211084014a397340e14a9b48177f499c02009538658d4c883ccb7682ac65f5b9ff30857ea
6
+ metadata.gz: acb37922961188b750bf9b69f77fde79b06571b67274dcb76a6918d0a927020cc897a2e353898dfd12199c6f09b911bd79027add70f2e42c7971e1037a44e698
7
+ data.tar.gz: 8a2f0c023604461e9a03ea95f65bc6016efa786e012c58767085fa732152bcd0be4aa16d750eb2c954d552502c9b032113bb45b3ceda5dce36b0750068d32540
@@ -70,6 +70,12 @@ module Effective
70
70
  rescue => e
71
71
  collection
72
72
  end
73
+ when :obfuscated_id
74
+ if (deobfuscated_id = collection.deobfuscate(term)) == term # We weren't able to deobfuscate it, so this is an Invalid ID
75
+ collection.where("#{column} = :term", :term => 0)
76
+ else
77
+ collection.where("#{column} = :term", :term => deobfuscated_id)
78
+ end
73
79
  when :integer
74
80
  collection.where("#{column} = :term", :term => term.to_i)
75
81
  when :year
@@ -228,6 +228,8 @@ module Effective
228
228
  view.instance_exec(obj, collection, self, &opts[:proc])
229
229
  elsif opts[:type] == :belongs_to
230
230
  val = (obj.send(name) rescue nil).to_s
231
+ elsif opts[:type] == :obfuscated_id
232
+ (obj.send(:to_param) rescue nil).to_s
231
233
  else
232
234
  val = (obj.send(name) rescue nil)
233
235
  val = (obj[opts[:array_index]] rescue nil) if val == nil
@@ -310,9 +312,19 @@ module Effective
310
312
  cols[name][:name] ||= name
311
313
  cols[name][:label] ||= name.titleize
312
314
  cols[name][:column] ||= (sql_table && sql_column) ? "\"#{sql_table.name}\".\"#{sql_column.name}\"" : name
313
- cols[name][:type] ||= (belong_tos.key?(name) ? :belongs_to : sql_column.try(:type)).presence || :string
314
315
  cols[name][:width] ||= nil
315
316
  cols[name][:sortable] = true if cols[name][:sortable] == nil
317
+
318
+ cols[name][:type] ||= (
319
+ if belong_tos.key?(name)
320
+ :belongs_to
321
+ elsif name == 'id' && collection.respond_to?(:deobfuscate)
322
+ :obfuscated_id
323
+ else
324
+ sql_column.try(:type).presence || :string
325
+ end
326
+ )
327
+
316
328
  cols[name][:filter] = initialize_table_column_filter(cols[name][:filter], cols[name][:type], belong_tos[name])
317
329
 
318
330
  if cols[name][:partial]
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.freeze
3
3
  end
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: 1.0.1
4
+ version: 1.0.2
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: 2014-12-24 00:00:00.000000000 Z
11
+ date: 2014-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  version: '0'
173
173
  requirements: []
174
174
  rubyforge_project:
175
- rubygems_version: 2.2.0
175
+ rubygems_version: 2.4.3
176
176
  signing_key:
177
177
  specification_version: 4
178
178
  summary: Uniquely powerful server-side searching, sorting and filtering of any ActiveRecord