mongoid-data_table 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongoid-data_table (1.2.0)
4
+ mongoid-data_table (1.2.1)
5
5
  kaminari (~> 0.12.4)
6
6
  rails (>= 3.0.0)
7
7
 
@@ -54,7 +54,7 @@ GEM
54
54
  mocha (0.9.12)
55
55
  mongo (1.3.1)
56
56
  bson (>= 1.3.1)
57
- mongoid (2.1.2)
57
+ mongoid (2.1.4)
58
58
  activemodel (~> 3.0)
59
59
  mongo (~> 1.3)
60
60
  tzinfo (~> 0.3.22)
@@ -1,12 +1,27 @@
1
+ require 'json'
2
+ require 'uri'
3
+
1
4
  module Mongoid
2
5
  module DataTable
3
6
  class Proxy < ::Mongoid::Relations::Proxy
4
7
 
5
- attr_reader :klass, :controller, :options, :extension, :params, :criteria, :unscoped, :fields, :aliases, :locals
8
+ attr_reader :klass,
9
+ :controller,
10
+ :cookies,
11
+ :cookie,
12
+ :options,
13
+ :extension,
14
+ :params,
15
+ :criteria,
16
+ :unscoped,
17
+ :fields,
18
+ :aliases,
19
+ :locals
6
20
 
7
21
  def initialize(klass, controller, options = {}, &block)
8
22
  @klass = klass
9
23
  @controller = controller
24
+ @cookies = @controller.send(:cookies)
10
25
  @options = klass.data_table_options.merge(options)
11
26
  @extension = block || options[:dataset] || klass.data_table_dataset || default_data_table_dataset
12
27
 
@@ -19,6 +34,9 @@ module Mongoid
19
34
  @locals = options[:locals] || {}
20
35
 
21
36
  params[:iDisplayLength] = conditions.count if (params[:iDisplayLength].to_i rescue 0) == -1
37
+
38
+ @cookie = @cookies["SpryMedia_DataTables_#{options[:sInstance]}"]
39
+ @cookie = ::JSON.load(@cookie) if @cookie.is_a?(String)
22
40
  end
23
41
 
24
42
  def collection(force = false)
@@ -30,6 +48,49 @@ module Mongoid
30
48
  (@collection = nil).nil?
31
49
  end
32
50
 
51
+ def load_cookie!
52
+ if cookie.present?
53
+
54
+ state_params = HashWithIndifferentAccess.new.tap do |h|
55
+
56
+ h[:iDisplayStart] = cookie['iStart']
57
+ h[:iDisplayLength] = cookie['iLength']
58
+ h[:sSearch] = cookie['sFilter']
59
+
60
+ h[:iSortCol_0], h[:sSortDir_0] = (cookie['aaSorting'].first rescue [ nil, nil ])
61
+
62
+ begin
63
+ cookie['aaSearchCols'].each_with_index do |(value,regex),index|
64
+ h[:"bRegex_#{index}"] = !regex
65
+ h[:"sSearch_#{index}"] = value
66
+ end
67
+ rescue
68
+ # do nothing
69
+ end
70
+
71
+ end
72
+
73
+ params.merge!(state_params)
74
+
75
+ @collection = nil
76
+
77
+ end
78
+ return self
79
+ end
80
+
81
+ def search_fields
82
+ return [] if cookie.blank?
83
+ hash = []
84
+ begin
85
+ cookie['aaSearchCols'].each_with_index do |(value,regex),index|
86
+ hash.push(value)
87
+ end
88
+ rescue
89
+ # do nothing
90
+ end
91
+ return hash
92
+ end
93
+
33
94
  ## pagination options ##
34
95
 
35
96
  def current_page
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module DataTable
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-data_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-08-01 00:00:00.000000000Z
13
+ date: 2011-08-03 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2151493000 !ruby/object:Gem::Requirement
17
+ requirement: &2163492960 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2151493000
25
+ version_requirements: *2163492960
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: kaminari
28
- requirement: &2151491600 !ruby/object:Gem::Requirement
28
+ requirement: &2163491900 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.12.4
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2151491600
36
+ version_requirements: *2163491900
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson_ext
39
- requirement: &2151490620 !ruby/object:Gem::Requirement
39
+ requirement: &2163491060 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '1.3'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2151490620
47
+ version_requirements: *2163491060
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: mongoid
50
- requirement: &2151489540 !ruby/object:Gem::Requirement
50
+ requirement: &2163488220 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '2.1'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2151489540
58
+ version_requirements: *2163488220
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: mocha
61
- requirement: &2151488340 !ruby/object:Gem::Requirement
61
+ requirement: &2163487560 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.9.12
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2151488340
69
+ version_requirements: *2163487560
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
- requirement: &2151486400 !ruby/object:Gem::Requirement
72
+ requirement: &2163486760 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 2.6.0
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2151486400
80
+ version_requirements: *2163486760
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: shoulda
83
- requirement: &2151484940 !ruby/object:Gem::Requirement
83
+ requirement: &2163485740 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 2.11.3
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2151484940
91
+ version_requirements: *2163485740
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: watchr
94
- requirement: &2151483500 !ruby/object:Gem::Requirement
94
+ requirement: &2163485240 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '0.7'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2151483500
102
+ version_requirements: *2163485240
103
103
  description: Simple data preparation from Mongoid to the jQuery DataTables plugin
104
104
  email:
105
105
  - jason.dew@gmail.com
@@ -144,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  segments:
146
146
  - 0
147
- hash: -659170002563878159
147
+ hash: -3970432048622207732
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  segments:
155
155
  - 0
156
- hash: -659170002563878159
156
+ hash: -3970432048622207732
157
157
  requirements: []
158
158
  rubyforge_project:
159
159
  rubygems_version: 1.8.5