table_on_steroids 0.1.1.11 → 0.1.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/app/controllers/concerns/table_on_steroids/table_concern.rb +15 -14
- data/lib/table_on_steroids/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f24d4f105e27626f6ac9038284f6ddff75784239fd7004fa5146cbb57c0c134
|
4
|
+
data.tar.gz: e1b9627cf54ffc485856845972d776b2614663a21cd812cf7c8030a8a510ee03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f506dea75e687c7240cdb61d10806a504cca35f311ce1213e6c51b514ac259024ecd644e9a1120c10d167755c6c470e16c9021ddb8bb00d7973ebd09dc77835
|
7
|
+
data.tar.gz: 5fb0e6809e49d51a9cce6a65cc8c4d5f8fddd38558b510e0feb0f03029197e1f6f286f6ee02479b735c318f45ea2cc9931b72580a63e25a49c4756a3b752caa2
|
data/README.md
CHANGED
@@ -123,6 +123,14 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
123
123
|
|
124
124
|
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/table_on_steroids. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
125
125
|
|
126
|
+
## Build and deploy a new version
|
127
|
+
|
128
|
+
1. Upgrade the version number
|
129
|
+
2. `gem build table_on_steroids` it will create a .gem file
|
130
|
+
3. `gem push table_on_steroids-[newversion].gem`
|
131
|
+
|
132
|
+
Adding an owner `gem owner --add {{email}} {{gem}}` (the person must have a https://rubygems.org/ account)
|
133
|
+
|
126
134
|
## License
|
127
135
|
|
128
136
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -39,7 +39,10 @@ module TableOnSteroids
|
|
39
39
|
OBJECTS_PER_PAGE = 50
|
40
40
|
end
|
41
41
|
|
42
|
-
def filter_and_order(objects, columns_on_steroid, global_search = nil, include_counts = false, all_pages = false, table_on_steroids = nil)
|
42
|
+
def filter_and_order(objects, columns_on_steroid, global_search = nil, include_counts = false, all_pages = false, table_on_steroids = nil, rows_to_display = nil)
|
43
|
+
|
44
|
+
limit = rows_to_display || OBJECTS_PER_PAGE
|
45
|
+
|
43
46
|
# execute the global search if you have one
|
44
47
|
if params[:search].present?
|
45
48
|
objects = global_search.call(objects, params[:search]) if global_search
|
@@ -50,18 +53,16 @@ module TableOnSteroids
|
|
50
53
|
# column search
|
51
54
|
objects = objects_where(objects, columns_on_steroid, t)
|
52
55
|
|
53
|
-
|
54
|
-
|
55
|
-
params[:filters]
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
objects = filter[t][:filter_lambda].call(objects, v)
|
56
|
+
filter_columns = columns_on_steroid.map{|k,v| k if v.dig(t,:filter_lambda) }.compact
|
57
|
+
filter_columns.each do |k|
|
58
|
+
filter_value = (params[:filters] && params[:filters][k]) || params[k]
|
59
|
+
if(!filter_value.blank?)
|
60
|
+
objects = columns_on_steroid[k][t][:filter_lambda].call(objects, filter_value)
|
60
61
|
end
|
61
62
|
end
|
62
63
|
|
63
64
|
#order
|
64
|
-
if params&.dig(:knowledge,:order) && (object_order = columns_on_steroid[params[:knowledge][:order]]).present?
|
65
|
+
if params&.dig(:knowledge,:order) && (object_order = columns_on_steroid[params[:knowledge][:order]]).present?
|
65
66
|
if(object_order[t] && object_order[t][:order_lambda])
|
66
67
|
direction = (params&.dig(:knowledge,:ascending).to_s == 'true') ? 'asc' : 'desc'
|
67
68
|
objects = objects.reorder(nil) if(objects.is_a?(ActiveRecord::Base) || objects.is_a?(ActiveRecord::Relation))
|
@@ -87,14 +88,14 @@ module TableOnSteroids
|
|
87
88
|
return (include_counts ? [objects, 1, objects.count] : objects) if all_pages
|
88
89
|
|
89
90
|
# GO to specific object page
|
90
|
-
page = get_page(objects, params, table_on_steroids)
|
91
|
+
page = get_page(objects, params, table_on_steroids, limit)
|
91
92
|
|
92
93
|
if objects.is_a?(ActiveRecord::Base) || objects.is_a?(ActiveRecord::Relation)
|
93
|
-
objects = objects.page(page).per(
|
94
|
+
objects = objects.page(page).per(limit)
|
94
95
|
total_pages = objects.total_pages
|
95
96
|
total_count = objects.total_count
|
96
97
|
else
|
97
|
-
objects = Kaminari.paginate_array(objects).page(page).per(
|
98
|
+
objects = Kaminari.paginate_array(objects).page(page).per(limit)
|
98
99
|
total_pages = objects.total_pages
|
99
100
|
total_count = objects.total_count
|
100
101
|
end
|
@@ -221,7 +222,7 @@ module TableOnSteroids
|
|
221
222
|
objects
|
222
223
|
end
|
223
224
|
|
224
|
-
def get_page(objects, params, table_on_steroids)
|
225
|
+
def get_page(objects, params, table_on_steroids, limit)
|
225
226
|
active_record_object_fetch_opts = table_on_steroids&.dig(:active_record_object_fetch_opts)
|
226
227
|
key_lambda = table_on_steroids&.dig(:key_lambda)
|
227
228
|
return params[:page] unless active_record_object_fetch_opts && key_lambda
|
@@ -230,7 +231,7 @@ module TableOnSteroids
|
|
230
231
|
return params[:page] unless object
|
231
232
|
|
232
233
|
index = objects.index { |o| key_lambda.call(o) == key_lambda.call(object) }
|
233
|
-
index ? index /
|
234
|
+
index ? index / limit + 1 : params[:page]
|
234
235
|
end
|
235
236
|
end
|
236
237
|
end
|
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.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marieke Gueye
|
8
8
|
- Matt Hiatt
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-06-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bootstrap-datepicker-rails
|
@@ -136,7 +136,7 @@ homepage: http://www.github.com/mariekou
|
|
136
136
|
licenses:
|
137
137
|
- MIT
|
138
138
|
metadata: {}
|
139
|
-
post_install_message:
|
139
|
+
post_install_message:
|
140
140
|
rdoc_options: []
|
141
141
|
require_paths:
|
142
142
|
- lib
|
@@ -151,9 +151,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
requirements: []
|
154
|
-
rubyforge_project:
|
154
|
+
rubyforge_project:
|
155
155
|
rubygems_version: 2.7.7
|
156
|
-
signing_key:
|
156
|
+
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: Create awesome tables for rails
|
159
159
|
test_files: []
|