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 +4 -4
- data/app/controllers/concerns/table_on_steroids/table_concern.rb +22 -3
- data/app/views/table_on_steroids/_table_on_steroids.html.erb +7 -3
- data/lib/table_on_steroids/version.rb +1 -1
- data/table_on_steroids-0.1.1.2.gem +0 -0
- data/table_on_steroids-0.1.2.0.gem +0 -0
- data/table_on_steroids.gemspec +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9c5c3440b05a59bd943f908ac5b945b4070bab690e5316339181513c434ecc4
|
4
|
+
data.tar.gz: 5e9ab8b1e41d446dfe14184c2e898d1097f2e068416a69c5104d042a17098663
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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-
|
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-
|
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>
|
Binary file
|
Binary file
|
data/table_on_steroids.gemspec
CHANGED
@@ -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
|
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.
|
4
|
+
version: 0.1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marieke Gueye
|
8
|
-
- Matt
|
8
|
+
- Matt Hiatt
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
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
|