table_on_steroids 0.1.1.2 → 0.1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|