effective_datatables 2.2.8 → 2.2.9

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: 2af972536144f8c3940510fc6811d59f30393aec
4
- data.tar.gz: 3003738442753405ea9d6dcaa6c662214dd76acc
3
+ metadata.gz: 99a0e48de4d1453860a82b74815a0e47193b8de9
4
+ data.tar.gz: 892fab84eb5edc1523446d657847ac73db8f7eb2
5
5
  SHA512:
6
- metadata.gz: 1f91d80262d5e37a287a2cb9dad39f99ae4fd54a2f07d46cd051bf2c5ab9f626603ecc82e27fc1e6ae1a2e94db6f31374bc90b8c6f3fca752a7ca663b264d37e
7
- data.tar.gz: 1a5ebaa445aba77f54120bcf866c0bf8d780879df6ddebefd0e77a43a1c1974568330f51bf23294787ea7d66109c2a14867687bae75a65b79d4d9e1eafe1f66e
6
+ metadata.gz: 457be0de8ea476c17861eeab5c55779f2fbb8ee36f265b60b51b302093acfa05a8b448789507d2b57a01380c3ab625ab3a76f2a9bf123b34c30912e0e4c44788
7
+ data.tar.gz: ebcecde45ee471804a00bd459860ac88763a0c34f22f2748e1e144fc972256acf9f2d1232308920b6b8159b5f5438cedc847aef024f6842ec45a0398bc9b881d
@@ -47,21 +47,21 @@ module EffectiveDatatablesHelper
47
47
  input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} }
48
48
  when :date
49
49
  form.input name, label: false, required: false, value: value,
50
- as: (defined?(EffectiveFormInputs) ? :effective_date_picker : :string),
50
+ as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_date_picker) ? :effective_date_picker : :string),
51
51
  placeholder: (opts[:label] || name),
52
52
  input_group: false,
53
53
  input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
54
54
  input_js: { useStrict: true, keepInvalid: true }
55
55
  when :datetime
56
56
  form.input name, label: false, required: false, value: value,
57
- as: (defined?(EffectiveFormInputs) ? :effective_date_time_picker : :string),
57
+ as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_date_time_picker) ? :effective_date_time_picker : :string),
58
58
  placeholder: (opts[:label] || name),
59
59
  input_group: false,
60
60
  input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
61
61
  input_js: { useStrict: true, keepInvalid: true } # Keep invalid format like "2015-11" so we can still filter by year, month or day
62
62
  when :select, :boolean
63
63
  form.input name, label: false, required: false, value: value,
64
- as: (defined?(EffectiveFormInputs) ? :effective_select : :select),
64
+ as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_select) ? :effective_select : :select),
65
65
  collection: opts[:filter][:values],
66
66
  selected: opts[:filter][:selected],
67
67
  multiple: opts[:filter][:multiple] == true,
@@ -70,7 +70,7 @@ module EffectiveDatatablesHelper
70
70
  input_js: { placeholder: (opts[:label] || name.titleize) }
71
71
  when :grouped_select
72
72
  form.input name, label: false, required: false, value: value,
73
- as: (defined?(EffectiveFormInputs) ? :effective_select : :grouped_select),
73
+ as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_select) ? :effective_select : :grouped_select),
74
74
  collection: opts[:filter][:values],
75
75
  selected: opts[:filter][:selected],
76
76
  multiple: opts[:filter][:multiple] == true,
@@ -112,10 +112,17 @@ module Effective
112
112
 
113
113
  # After everything is initialized
114
114
  # Compute any col[:if] and assign an index
115
- table_columns.select do |_, col|
116
- col[:if] == nil || (col[:if].respond_to?(:call) ? (view || self).instance_exec(&col[:if]) : col[:if])
117
- end.each_with_index { |(_, col), index| col[:index] = index }
118
-
115
+ count = 0
116
+ table_columns.each do |name, col|
117
+ if display_column?(col)
118
+ col[:index] = count
119
+ count += 1
120
+ else
121
+ # deleting rather than using `table_columns.select` above in order to maintain
122
+ # this hash as a type of HashWithIndifferentAccess
123
+ table_columns.delete(name)
124
+ end
125
+ end
119
126
  end
120
127
 
121
128
  def initialize_table_column_filter(column, belongs_to, has_many)
@@ -193,7 +200,15 @@ module Effective
193
200
  end.merge(filter.symbolize_keys)
194
201
  end
195
202
 
203
+ private
196
204
 
205
+ def display_column?(col)
206
+ if col[:if].respond_to?(:call)
207
+ (view || self).instance_exec(&col[:if])
208
+ else
209
+ col.fetch(:if, true)
210
+ end
211
+ end
197
212
  end
198
213
  end
199
214
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '2.2.8'.freeze
2
+ VERSION = '2.2.9'.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: 2.2.8
4
+ version: 2.2.9
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-01-06 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails