effective_datatables 4.13.3 → 4.13.5

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
  SHA256:
3
- metadata.gz: 195e2fea792167d2a115b603eca328921936b989a2ee8250f927f2dc0e7c9135
4
- data.tar.gz: 945313e0c3188ece78cd3a89ec0cad517f1e72b65424b51718887d1670d477ca
3
+ metadata.gz: 1a652ec20b06f01718d88cbc9c6d78e6905c44239c577009b6df777d02432975
4
+ data.tar.gz: 6f148f5dd453d595ae3bca1592b179974802c2b3c6b83d0051bd6043ce39533e
5
5
  SHA512:
6
- metadata.gz: 8a833adb0cdd8b0f98775b2245b1a6fd5d08c5237ba0f01e42e3e34fe3e170073e40c70d1d43af4670f9fbad2e838a8540be6d9d33cbbb987fb2ec97e6fbcc11
7
- data.tar.gz: 6f3e823b061a30a69499dab532a2b385233409ef9c72b24a91aac25c7527244e88dfd304bff9ca2cf824ebc3b864b6b38e3ab503f79f361d1d89dccaca2031e2
6
+ metadata.gz: e9c0d5927da2c915118f5b0347591b38a8e355f1d2860548523da04a3cfd6b3dac10d66181f353552bc4bcfa63ba218d2254c55a38e3ad8c89c7869dcdfaadd2
7
+ data.tar.gz: 32b2a35689ca9591d7729b2ec72164c6b699d81dfbca19fd54948f866a952f364c9d5713db0617ad19deb285f1151be78b8bb8a961158d2833f3eaa8a2de76a8
@@ -182,6 +182,10 @@ module Effective
182
182
  attributes[:downloadable] != false
183
183
  end
184
184
 
185
+ def skip_save_state?
186
+ attributes[:skip_save_state] == true
187
+ end
188
+
185
189
  # Whether the filters must be rendered as a <form> or we can keep the normal <div> behaviour
186
190
  def _filters_form_required?
187
191
  _form[:verb].present?
@@ -12,6 +12,7 @@ module Effective
12
12
 
13
13
  def load_cookie!
14
14
  return unless EffectiveDatatables.save_state
15
+ return if skip_save_state?
15
16
  return unless (view.cookies rescue false) # Rails 6.1 view doesn't respond_to?(:cookies)
16
17
 
17
18
  @dt_cookie = view.cookies.signed['_effective_dt']
@@ -36,6 +37,7 @@ module Effective
36
37
 
37
38
  def save_cookie!
38
39
  return unless EffectiveDatatables.save_state
40
+ return if skip_save_state?
39
41
  return unless (view.cookies rescue false)
40
42
 
41
43
  @dt_cookie ||= []
@@ -22,7 +22,7 @@ module Effective
22
22
  CSV.generate do |csv|
23
23
  csv << csv_header()
24
24
 
25
- collection.send(csv_collection_method) do |resources|
25
+ collection.find_in_batches do |resources|
26
26
  resources = arrayize(resources, csv: true)
27
27
  format(resources, csv: true)
28
28
  finalize(resources)
@@ -30,6 +30,10 @@ module Effective
30
30
  datatable.attributes[:downloadable] = bool
31
31
  end
32
32
 
33
+ def skip_save_state!
34
+ datatable.attributes[:skip_save_state] = true
35
+ end
36
+
33
37
  # A col has its internal values sorted/searched before the block is run
34
38
  # Anything done in the block, is purely a format on the after sorted/ordered value
35
39
  # the original object == the computed value, which is yielded to the format block
@@ -68,7 +68,7 @@ module Effective
68
68
  elsif opts[:format] && rendered.key?(name)
69
69
  dsl_tool.instance_exec(value, row, rendered[name][row_index], &opts[:format])
70
70
  elsif opts[:format]
71
- dsl_tool.instance_exec(value, row, &opts[:format])
71
+ dsl_tool.instance_exec(value, row, &opts[:format]).to_s
72
72
  elsif opts[:partial]
73
73
  rendered[name][row_index]
74
74
  else
@@ -88,6 +88,7 @@ module Effective
88
88
  end
89
89
  end
90
90
 
91
+ # Must return a string
91
92
  def format_column(value, column, csv: false)
92
93
  return if value.nil? || (column[:resource] && value.blank?)
93
94
 
@@ -114,24 +115,24 @@ module Effective
114
115
  value.respond_to?(:strftime) ? value.strftime(EffectiveDatatables.format_date) : BLANK
115
116
  when :datetime
116
117
  if csv
117
- value
118
+ value.to_s
118
119
  else
119
120
  value.respond_to?(:strftime) ? value.strftime(EffectiveDatatables.format_datetime) : BLANK
120
121
  end
121
122
  when :decimal
122
- value
123
+ value.to_s
123
124
  when :duration
124
125
  view.number_to_duration(value)
125
126
  when :effective_addresses
126
127
  csv ? value.to_html.gsub('<br>', "\n") : value.to_html
127
128
  when :effective_obfuscation
128
- value
129
+ value.to_s
129
130
  when :effective_roles
130
131
  value.join(', ')
131
132
  when :email
132
133
  csv ? value : view.mail_to(value)
133
134
  when :integer
134
- value
135
+ value.to_s
135
136
  when :percent
136
137
  case value
137
138
  when Integer ; view.number_to_percentage(value / 1000.0, precision: 3).gsub('.000%', '%')
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '4.13.3'.freeze
2
+ VERSION = '4.13.5'.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: 4.13.3
4
+ version: 4.13.5
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: 2022-12-07 00:00:00.000000000 Z
11
+ date: 2022-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails