effective_datatables 3.0.14 → 3.0.15

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: 6d0975bf88ba6ef9dfbd954c6f6bca4955dfd014
4
- data.tar.gz: 194336c0e82300fa7b574c259f37e06f6253c7ae
3
+ metadata.gz: e0a7e266b00b4bc168dbf066d2be5a0b5a3d00a8
4
+ data.tar.gz: b5b54094cdf557a848a0466c27bdb4efce57d210
5
5
  SHA512:
6
- metadata.gz: 88050576932338f0dcdeab3a1271aea0319df86e72737329014b3dc5d743e4213f24410316c3f2603d5584fd56b51b2e8dcc0ded5f7f58b0896cf05f8c035a9a
7
- data.tar.gz: 84cafb3e33dff08905bce938c00ec8c4f2976349e20f00622b263d99dfedfcf34e0334df6774efb346c742905e62160099b1b9a2a57845aeacde9cf117cc5b55
6
+ metadata.gz: 680dc369209e29efcdbce860039d2f6f9108c033f182cdcead1e3834df7cd50a6a105f548132decac8049bb16e229a08269f1089814455f04d13d49d9d9f9b90
7
+ data.tar.gz: baeb9a1a4428b1acf8eb6493fe7e63a54a4c71316177adead6b9513ac78f900c692b4808b617ba0caa89a925e226e41b0df3045091493208918fce17a78075c6
@@ -42,7 +42,6 @@ module EffectiveDatatablesPrivateHelper
42
42
  value: value,
43
43
  title: title,
44
44
  pattern: pattern,
45
- autocomplete: 'off',
46
45
  data: {'column-name' => name, 'column-index' => opts[:index]}
47
46
  }.delete_if { |k, v| v.blank? && k != :name }
48
47
 
@@ -77,24 +76,13 @@ module EffectiveDatatablesPrivateHelper
77
76
  as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_select) ? :effective_select : :select),
78
77
  collection: opts[:search][:collection],
79
78
  selected: opts[:search][:value],
80
- multiple: opts[:search][:multiple] == true,
79
+ multiple: opts[:search][:multiple],
80
+ grouped: opts[:search][:grouped],
81
+ polymorphic: opts[:search][:polymorphic],
81
82
  include_blank: include_blank,
82
83
  wrapper_html: wrapper_html,
83
84
  input_html: input_html,
84
85
  input_js: { placeholder: placeholder }
85
- when :grouped_select
86
- form.input name, label: false, required: false, value: value,
87
- as: (ActionView::Helpers::FormBuilder.instance_methods.include?(:effective_select) ? :effective_select : :grouped_select),
88
- collection: opts[:search][:collection],
89
- selected: opts[:search][:value],
90
- multiple: opts[:search][:multiple] == true,
91
- grouped: true,
92
- polymorphic: opts[:search][:polymorphic] == true,
93
- group_label_method: opts[:search][:group_label_method] || :first,
94
- group_method: opts[:search][:group_method] || :last,
95
- wrapper_html: wrapper_html,
96
- input_html: input_html,
97
- input_js: { placeholder: placeholder }
98
86
  when :bulk_actions
99
87
  input_html[:data]['role'] = 'bulk-actions-all'
100
88
 
@@ -74,6 +74,7 @@ module Effective
74
74
  fuzzy = column[:search][:fuzzy]
75
75
  term = Effective::Attribute.new(column[:as]).parse(value, name: column[:name])
76
76
  term_downcased = term.downcase if fuzzy && term.kind_of?(String)
77
+ macros = Effective::Resource.new('').macros
77
78
 
78
79
  if term == 'nil'
79
80
  return (collection.select! { |row| row[index].nil? } || collection)
@@ -102,24 +103,28 @@ module Effective
102
103
  else
103
104
  row[index] == term
104
105
  end
105
- when :resource
106
+ when *macros, :resource
106
107
  Array(row[index]).any? do |resource|
108
+ if column[:as] != :resource
109
+ resource = resource.send(column[:name])
110
+ end
111
+
112
+ matched = false
113
+
107
114
  if term.kind_of?(Integer) && resource.respond_to?(:id)
108
- resource.id == term || resource.to_param == term
115
+ matched ||= (resource.id == term || resource.to_param == term)
109
116
  elsif term.kind_of?(Array) && resource.respond_to?(:id)
110
- term.any? { |term| resource.id == term || resource.to_param == term || resource.to_param == value }
111
- else
112
- fuzzy ? resource.to_s.downcase == term_downcased : resource.to_s == term
117
+ matched ||= term.any? { |term| resource.id == term || resource.to_param == term || resource.to_param == value }
113
118
  end
119
+
120
+ matched ||= (fuzzy ? resource.to_s.downcase.include?(term_downcased) : resource.to_s == term)
114
121
  end
115
- when :string, :text, :email
122
+ else # :string, :text, :email
116
123
  if fuzzy
117
124
  row[index].to_s.downcase.include?(term_downcased)
118
125
  else
119
- row[index].to_s == term.to_s
126
+ row[index] == term || (row[index].to_s == term.to_s)
120
127
  end
121
- else
122
- row[index] == term
123
128
  end
124
129
  end || collection
125
130
  end
@@ -45,7 +45,7 @@ module Effective
45
45
 
46
46
  # A val is a computed value that is then sorted/searched after the block is run
47
47
  # You can have another block by calling .format afterwards to work on the computed value itself
48
- def val(name, action: nil, as: nil, col_class: nil, label: nil, partial: nil, partial_as: nil, responsive: 10000, search: {}, sort: true, sql_column: nil, th: nil, th_append: nil, visible: true, &compute)
48
+ def val(name, action: nil, as: nil, col_class: nil, label: nil, partial: nil, partial_as: nil, responsive: 10000, search: {}, sort: true, sql_column: false, th: nil, th_append: nil, visible: true, &compute)
49
49
  raise 'You cannot use partial: ... with the block syntax' if partial && block_given?
50
50
 
51
51
  datatable._columns[name.to_sym] = Effective::DatatableColumn.new(
@@ -24,12 +24,12 @@ module Effective
24
24
  case opts[:as]
25
25
  when *resource.macros
26
26
  opts[:resource] = Effective::Resource.new(resource.associated(name), namespace: controller_namespace)
27
- opts[:sql_column] ||= name
27
+ (opts[:sql_column] = name) if opts[:sql_column].nil?
28
28
  when Class
29
29
  if opts[:as].ancestors.include?(ActiveRecord::Base)
30
30
  opts[:resource] = Effective::Resource.new(opts[:as], namespace: controller_namespace)
31
31
  opts[:as] = :resource
32
- opts[:sql_column] ||= name
32
+ (opts[:sql_column] = name) if opts[:sql_column].nil?
33
33
  end
34
34
  when :effective_addresses
35
35
  opts[:resource] = Effective::Resource.new(resource.associated(name), namespace: controller_namespace)
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '3.0.14'.freeze
2
+ VERSION = '3.0.15'.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: 3.0.14
4
+ version: 3.0.15
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: 2017-07-05 00:00:00.000000000 Z
11
+ date: 2017-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails