effective_datatables 2.2.3 → 2.2.4

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: accdc49e5adcbb84639c6f04e26a080544bd8f4b
4
- data.tar.gz: 763d0016579e806d0d77b54a62caedcbf049b6df
3
+ metadata.gz: 0a1f1f2a6e87aaf8bf7f99ba7cd7d44e4e6caac9
4
+ data.tar.gz: 6841c6589deca99298224940312ab6dfe0c4a91d
5
5
  SHA512:
6
- metadata.gz: 63c01f326d91d3eac11bf530291e193f44e96b418ad2162e54a636b0cba91b4911b751c3389221841470a79ba382f4662a799fc6c133769642fe915088c3e8e4
7
- data.tar.gz: 1690d18d9e6656b9ddf3dfdeb4351203355fc6c188434dcfde87a0cc7d0d7de5a1a7690f97ec1198f3fb89dc426b00a9a0b7cf49e8cb3f3c7cc0850a3fe7af3d
6
+ metadata.gz: 27b16423b467f54c659d117251a8808208f0ec0524a419f9d5896cfaa1b976cbe22e480731e1f86129d09adf507212ce58c407a9f1bdcde688e7adfb83bbdb26
7
+ data.tar.gz: c05df8edff215a2a211c19a0b008294c553c324f77e1427d97e2d3585e1a9d68f35d9993621812838aff423aed33b1fff7c3cabfa5cccef34ea45b5a73e847f6
@@ -154,3 +154,7 @@ div.dataTables_wrapper div.dataTables_info {
154
154
  }
155
155
  }
156
156
  }
157
+
158
+ // Collapsed responsive view
159
+ table.dataTable > tbody > tr.child span.dtr-title { min-width: 175px; }
160
+ table.dataTable > tbody > tr.child span.dtr-data { white-space: nowrap; }
@@ -19,7 +19,7 @@ module EffectiveDatatablesHelper
19
19
  # https://datatables.net/reference/option/columns
20
20
  def datatable_columns(datatable)
21
21
  form = nil
22
- simple_form_for(datatable, url: '#', html: {id: "#{datatable.to_param}-form"}) { |f| form = f }
22
+ simple_form_for(:datatable_filter, url: '#', html: {id: "#{datatable.to_param}-form"}) { |f| form = f }
23
23
 
24
24
  datatable.table_columns.map do |name, options|
25
25
  {
@@ -30,44 +30,45 @@ module EffectiveDatatablesHelper
30
30
  responsivePriority: (options[:responsivePriority] || 10000), # 10,000 is datatables default
31
31
  sortable: (options[:sortable] && !datatable.simple?),
32
32
  visible: (options[:visible].respond_to?(:call) ? datatable.instance_exec(&options[:visible]) : options[:visible]),
33
- filterHtml: (datatable_header_filter(form, name, options) unless datatable.simple?),
33
+ filterHtml: (datatable_header_filter(form, name, datatable.search_terms[name], options) unless datatable.simple?),
34
34
  filterSelectedValue: options[:filter][:selected]
35
35
  }
36
36
  end.to_json()
37
37
  end
38
38
 
39
- def datatable_header_filter(form, name, opts)
39
+ def datatable_header_filter(form, name, value, opts)
40
40
  return render(partial: opts[:header_partial], locals: {form: form, name: (opts[:label] || name), column: opts}) if opts[:header_partial].present?
41
41
 
42
42
  case opts[:filter][:type]
43
43
  when :string, :text, :number
44
- form.input name, label: false, required: false, as: :string, placeholder: (opts[:label] || name),
45
- input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} }
46
-
44
+ form.input name, label: false, required: false, value: value,
45
+ as: :string,
46
+ placeholder: (opts[:label] || name),
47
+ input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} }
47
48
  when :date
48
- form.input name, label: false, required: false,
49
+ form.input name, label: false, required: false, value: value,
49
50
  as: (defined?(EffectiveFormInputs) ? :effective_date_picker : :string),
50
51
  placeholder: (opts[:label] || name),
51
52
  input_group: false,
52
53
  input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
53
54
  input_js: { useStrict: true, keepInvalid: true }
54
55
  when :datetime
55
- form.input name, label: false, required: false,
56
+ form.input name, label: false, required: false, value: value,
56
57
  as: (defined?(EffectiveFormInputs) ? :effective_date_time_picker : :string),
57
58
  placeholder: (opts[:label] || name),
58
59
  input_group: false,
59
- input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
60
+ input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
60
61
  input_js: { useStrict: true, keepInvalid: true } # Keep invalid format like "2015-11" so we can still filter by year, month or day
61
62
  when :select, :boolean
62
- form.input name, label: false, required: false,
63
+ form.input name, label: false, required: false, value: value,
63
64
  as: (defined?(EffectiveFormInputs) ? :effective_select : :select),
64
65
  collection: opts[:filter][:values],
65
66
  multiple: opts[:filter][:multiple] == true,
66
67
  include_blank: (opts[:label] || name.titleize),
67
- input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
68
+ input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
68
69
  input_js: { placeholder: (opts[:label] || name.titleize) }
69
70
  when :grouped_select
70
- form.input name, label: false, required: false,
71
+ form.input name, label: false, required: false, value: value,
71
72
  as: (defined?(EffectiveFormInputs) ? :effective_select : :grouped_select),
72
73
  collection: opts[:filter][:values],
73
74
  multiple: opts[:filter][:multiple] == true,
@@ -76,7 +77,7 @@ module EffectiveDatatablesHelper
76
77
  polymorphic: opts[:filter][:polymorphic] == true,
77
78
  group_label_method: opts[:filter][:group_label_method] || :first,
78
79
  group_method: opts[:filter][:group_method] || :last,
79
- input_html: { name: nil, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
80
+ input_html: { name: nil, value: value, autocomplete: 'off', data: {'column-name' => opts[:name], 'column-index' => opts[:index]} },
80
81
  input_js: { placeholder: (opts[:label] || name.titleize) }
81
82
  end
82
83
  end
@@ -30,9 +30,6 @@ module Effective
30
30
  if @default_order.present? && !table_columns.key?((@default_order.keys.first rescue nil))
31
31
  raise "default_order :#{(@default_order.keys.first rescue 'nil')} must exist as a table_column or array_column"
32
32
  end
33
-
34
- # Any pre-selected search terms should be assigned now
35
- search_terms.each { |column, term| self.send("#{column}=", term) }
36
33
  end
37
34
 
38
35
  def table_columns
@@ -142,11 +139,11 @@ module Effective
142
139
  end
143
140
 
144
141
  def table_tool
145
- @table_tool ||= ActiveRecordDatatableTool.new(self, table_columns.select { |_, col| col[:array_column] == false })
142
+ @table_tool ||= ActiveRecordDatatableTool.new(self, table_columns.reject { |_, col| col[:array_column] })
146
143
  end
147
144
 
148
145
  def array_tool
149
- @array_tool ||= ArrayDatatableTool.new(self, table_columns.select { |_, col| col[:array_column] == true })
146
+ @array_tool ||= ArrayDatatableTool.new(self, table_columns.select { |_, col| col[:array_column] })
150
147
  end
151
148
 
152
149
  def active_record_collection?
@@ -27,7 +27,6 @@ module Effective
27
27
  end
28
28
  raise "You cannot use both partial: ... and proc: ..." if options[:partial] && options[:proc]
29
29
 
30
- self.class.send(:attr_accessor, name)
31
30
  (@table_columns ||= HashWithIndifferentAccess.new())[name] = options
32
31
  end
33
32
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '2.2.3'.freeze
2
+ VERSION = '2.2.4'.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.3
4
+ version: 2.2.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: 2015-12-11 00:00:00.000000000 Z
11
+ date: 2015-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails