table_on_steroids 0.1.1.5 → 0.1.1.6

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
  SHA256:
3
- metadata.gz: 7d2770c294afbaf743ff369c3e9a933e17ccb338c72b6f54882221d2c5747798
4
- data.tar.gz: 1d277ff42c505cd979cb3abf64410257b29d84cb5c58c5dfd9b561deeb8c9527
3
+ metadata.gz: 8366b8de497d16595ce9014b84a6f5474a3acb31b7cdfb9d36b32b6f339843e8
4
+ data.tar.gz: '085a992475e3ca1190308f07bc786cbfea8a6e2d450842d1fbca381b769a86a0'
5
5
  SHA512:
6
- metadata.gz: ead00f19adf88d70a2addd2c16a863aabab9c5f5aceff2ad8152536fbaaf87c31a96a489ad58b000226b0439fc34885e6a8eb57475fe9a8187915bdfc06dbabc
7
- data.tar.gz: a04166b1d09e162e881628b0ac6a3d959301dea94234a1ba7e9257919518ac6a7ba2b24c2b5c4bffb65e95ac96c39957ba1490f3b98804372459d1c8d07abc5b
6
+ metadata.gz: 1417185b5afcf7f76fc62bfe647c8c755edae0addc1f07e857f035198e6c05c91af934f1ffb5f203bb339c9926ab33b4f13e3c653079d88f7900a5ccdf7ce1fa
7
+ data.tar.gz: 00032b6d606863e17298ed5e9f59aafc6bded91c2333401f752d47b2e5b22ae555d49e3e74c037f688872fa7a0bc74d36603e00220b7a599a9ef0dcc7760e853
@@ -37,11 +37,11 @@ module TableOnSteroids
37
37
  OBJECTS_PER_PAGE = 50
38
38
  end
39
39
 
40
- def filter_and_order(objects, columns_on_steroid, global_search=nil, include_counts=false, all_pages=false )
40
+ def filter_and_order(objects, columns_on_steroid, global_search=nil, include_counts=false, all_pages=false, table_on_steroids=nil )
41
41
  # execute the global search if you have one
42
42
  if(params[:search].present?)
43
43
  objects = global_search.call(objects,params[:search]) if global_search
44
- objects = all_column_search(objects,columns_on_steroid, params[:search]) if !global_search
44
+ objects = all_column_search(objects, columns_on_steroid, params[:search], table_on_steroids) if !global_search
45
45
  end
46
46
 
47
47
  [:activerecord, :array].each do |t|
@@ -64,7 +64,7 @@ module TableOnSteroids
64
64
  objects = objects.reorder(nil) if(objects.is_a?(ActiveRecord::Base) || objects.is_a?(ActiveRecord::Relation))
65
65
  objects = object_order[t][:order_lambda].call(objects)
66
66
  end
67
- elsif ( object_order = columns_on_steroid.select{ |c,v| v[t] && v[t][:default_order] }.first&.last).present?
67
+ elsif ( object_order = columns_on_steroid.select{ |c,v| v[t] && v[t][:default_order] }.first&.last).present?
68
68
  if(object_order[t] && object_order[t][:order_lambda])
69
69
  objects = objects.reorder(nil) if(objects.is_a?(ActiveRecord::Base) || objects.is_a?(ActiveRecord::Relation))
70
70
  objects = object_order[t][:order_lambda].call(objects)
@@ -104,8 +104,11 @@ module TableOnSteroids
104
104
  end
105
105
  end
106
106
 
107
- def all_column_search(objects, columns_on_steroid, query)
108
- matched_object_ids = []
107
+ def all_column_search(objects, columns_on_steroid, query, table_on_steroids=nil)
108
+ global_search_key = table_on_steroids&.dig(:global_search_key) || :id
109
+ global_search_key_params = {}
110
+ matched_object_keys = []
111
+
109
112
  [:activerecord, :array].each do |t|
110
113
  columns_on_steroid.each do |key, value|
111
114
  if(value[t].present? && ((value[t][:search_lambda].present? && !["date","integer"].include?(value[:datatype])) || value[t][:global_search_lambda].present?))
@@ -114,11 +117,13 @@ module TableOnSteroids
114
117
  else
115
118
  objects_returned = value[t][:search_lambda].call(objects, query)
116
119
  end
117
- objects_returned.each{|o| matched_object_ids << o.id } if(objects_returned)
120
+ objects_returned.each{|o| matched_object_keys << o[global_search_key] } if(objects_returned)
118
121
  end
119
122
  end
120
123
  end
121
- objects = objects.where(id: matched_object_ids.uniq)
124
+
125
+ global_search_key_params[global_search_key] = matched_object_keys.uniq
126
+ objects = objects.where(global_search_key_params)
122
127
  end
123
128
 
124
129
 
@@ -1,3 +1,3 @@
1
1
  module TableOnSteroids
2
- VERSION = '0.1.1.5'
2
+ VERSION = '0.1.1.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_on_steroids
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.5
4
+ version: 0.1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marieke Gueye
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-08-05 00:00:00.000000000 Z
12
+ date: 2019-08-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bootstrap-datepicker-rails