table_on_steroids 0.1.1.2 → 0.1.1.3

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: c9d0db1565b5c92a644b129ec08263c56cb174ce00de3a415111d3683cf65958
4
- data.tar.gz: b5db441dbd5e78723cd4ca3d7ae59737784fc0363e28915b3cb4d16825aa5e9b
3
+ metadata.gz: c9c5c3440b05a59bd943f908ac5b945b4070bab690e5316339181513c434ecc4
4
+ data.tar.gz: 5e9ab8b1e41d446dfe14184c2e898d1097f2e068416a69c5104d042a17098663
5
5
  SHA512:
6
- metadata.gz: 4c1b1094fc0231cec8167781e05e154ccc9fe02e04fc3c14399ecb55b9b91fface474df8897df1cadc8dabc6f617a31319f51ca845bad0b7d703984ca9c6b01b
7
- data.tar.gz: b0574a3eebd51d591b43c3f922155bef2d54c9f585726e5f0d4a4182eab74af5c71ef8b97c472211f8041dfdd381c202a9184119a9d621d570ab1d2665b1b5a7
6
+ metadata.gz: 40e0bdd265c1ea29797b5efdf1778535fee90867dd1b456cebc1d203e0f8c558cf5e1cecec64a06523e7aea431b48756d96fed9f75d9983483d16d319bfc5c99
7
+ data.tar.gz: 60fe2980de7cb7847b7f84da88a0306b6c5ba21469338da8ed1d0e2ee9048c7bd663f30104e1b6741d999c955e1b1b6f05b77beef505c66c8da5e8e8c65b1618
@@ -39,7 +39,10 @@ module TableOnSteroids
39
39
 
40
40
  def filter_and_order(objects, columns_on_steroid, global_search=nil, include_counts=false, all_pages=false )
41
41
  # execute the global search if you have one
42
- objects = global_search.call(objects,params[:search]) if global_search && params[:search].present?
42
+ if(params[:search].present?)
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
45
+ end
43
46
 
44
47
  [:activerecord, :array].each do |t|
45
48
 
@@ -98,6 +101,23 @@ module TableOnSteroids
98
101
  end
99
102
  end
100
103
  end
104
+
105
+ def all_column_search(objects, columns_on_steroid, query)
106
+ matched_object_ids = []
107
+ [:activerecord, :array].each do |t|
108
+ columns_on_steroid.each do |key, value|
109
+ if(value[t].present? && ((value[t][:search_lambda].present? && !["date","integer"].include?(value[:datatype])) || value[t][:global_search_lambda].present?))
110
+ if(value[t][:global_search_lambda].present?)
111
+ objects_returned = value[t][:global_search_lambda].call(objects, query)
112
+ else
113
+ objects_returned = value[t][:search_lambda].call(objects, query)
114
+ end
115
+ objects_returned.each{|o| matched_object_ids << o.id } if(objects_returned)
116
+ end
117
+ end
118
+ end
119
+ objects = objects.where(id: matched_object_ids.uniq)
120
+ end
101
121
 
102
122
 
103
123
  def objects_where(objects, columns_on_steroid, t)
@@ -137,7 +157,7 @@ module TableOnSteroids
137
157
  end
138
158
 
139
159
  def object_where_integer(integer, operator, value)
140
- case operator
160
+ case operator
141
161
  when "<",">=" then
142
162
  return integer.to_f < value.to_f
143
163
  when "=" then
@@ -168,7 +188,6 @@ module TableOnSteroids
168
188
 
169
189
  objects = objects.where(where_sql, *values)
170
190
  end
171
-
172
191
  objects
173
192
  end
174
193
  end
@@ -13,6 +13,10 @@
13
13
  <% csv_image ||= nil %>
14
14
  <% param_hash = CGI::parse(request.query_string) %>
15
15
  <% expected_column_keys = columns.map{|col,col_values| col }+columns.map{|col,col_values|("search_" + col)}+columns.map{|col,col_values|("search_operator_" + col)} %>
16
+ <% column_search_lambdas = columns.collect{|k,v|
17
+ (!v.dig(:datatype) && v.dig(:activerecord,:search_lambda)) || v.dig(:activerecord,:global_search_lambda) ||
18
+ (!v.dig(:datatype) && v.dig(:array,:search_lambda)) || v.dig(:array,:global_search_lambda) }.compact %>
19
+
16
20
  <div class="table-on-steroids" id="<%= table_on_steroid_id %>">
17
21
  <%= form_tag request.path, method: "get", id: ("knowledge_base_filters" + table_on_steroid_id) do %>
18
22
  <% param_hash.select{ |k,v| !expected_column_keys.include?(k) && !["utf8","columns[]"].include?(k) }.each do |k,v| %>
@@ -20,15 +24,15 @@
20
24
  <% end %>
21
25
  <%end%>
22
26
  <div class="row">
23
- <div class="col-8 col-sn-12">
27
+ <div class="col-6 col-sn-12">
24
28
  <div class="header-text-h1">
25
29
  <% if title %>
26
30
  <%= title %>
27
31
  <% end %>
28
32
  </div>
29
33
  </div>
30
- <div class="col-8 col-sn-12" style="text-align:right">
31
- <% if(search_lambda) %>
34
+ <div class="col-6 col-sn-12" style="text-align:right;margin-bottom:10px">
35
+ <% if(search_lambda || !column_search_lambdas.empty?) %>
32
36
  <%= text_field_tag 'search', params[:search], placeholder: 'Search ..', onchange: "$('#knowledge_base_filters#{table_on_steroid_id}').submit();", class: 'form-control global-search', form: "knowledge_base_filters#{table_on_steroid_id}" %>
33
37
  <% end %>
34
38
  </div>
@@ -1,3 +1,3 @@
1
1
  module TableOnSteroids
2
- VERSION = "0.1.1.2"
2
+ VERSION = "0.1.1.3"
3
3
  end
Binary file
Binary file
@@ -7,7 +7,7 @@ require "table_on_steroids/version"
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = "table_on_steroids"
9
9
  spec.version = TableOnSteroids::VERSION
10
- spec.authors = ["Marieke Gueye", "Matt Hyatt"]
10
+ spec.authors = ["Marieke Gueye", "Matt Hiatt"]
11
11
  spec.email = ["marieke@obvious.ly"]
12
12
 
13
13
  spec.summary = %q{Create awesome tables for rails}
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_on_steroids
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.2
4
+ version: 0.1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marieke Gueye
8
- - Matt Hyatt
8
+ - Matt Hiatt
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-05-21 00:00:00.000000000 Z
12
+ date: 2019-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bootstrap-datepicker-rails
@@ -125,6 +125,8 @@ files:
125
125
  - bin/setup
126
126
  - lib/table_on_steroids.rb
127
127
  - lib/table_on_steroids/version.rb
128
+ - table_on_steroids-0.1.1.2.gem
129
+ - table_on_steroids-0.1.2.0.gem
128
130
  - table_on_steroids.gemspec
129
131
  - vendor/assets/images/csv.png
130
132
  - vendor/assets/javascripts/table_on_steroids.js