greedo 0.0.3 → 0.0.4
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/views/greedo/_grid.html.haml +3 -1
- data/lib/greedo/grid_helper.rb +22 -10
- data/lib/greedo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48c3028f4ecf306b0c59c53b9bede17f851103cd
|
4
|
+
data.tar.gz: 7ef547c2576e93017b31013cccfee5b367772e7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96eb11d4a5dcd6f38904289d3e3e8d8fac085fbe8c6a81aaa176f0f3cd1270dcec7c6719ca10d193a567304f6a33207c6436527b170a03cce3fba23ba167e1d9
|
7
|
+
data.tar.gz: 557a57d5eb4c230c044fc0132e79d00555de86c06ac73766b264a4a64d2fb3cfec5838612de033bc5d8e84db0693fe50c9d1cb8e386a8ca25b88f950f162b1a8
|
@@ -23,4 +23,6 @@
|
|
23
23
|
= column.value
|
24
24
|
|
25
25
|
- if grid.show_pagination?
|
26
|
-
= will_paginate grid.paginator.records, param_name: param_name,
|
26
|
+
= will_paginate grid.paginator.records, param_name: param_name,
|
27
|
+
params: path_params,
|
28
|
+
renderer: BootstrapPagination::Rails
|
data/lib/greedo/grid_helper.rb
CHANGED
@@ -3,9 +3,9 @@ module Greedo
|
|
3
3
|
class Grid
|
4
4
|
attr_accessor :paginator
|
5
5
|
attr_reader :view_context, :fields, :presenter, :empty_message_text,
|
6
|
-
:order, :order_by
|
6
|
+
:order, :order_by, :path_params
|
7
7
|
|
8
|
-
def initialize(view_context:, order: nil, order_by: nil)
|
8
|
+
def initialize(view_context:, order: nil, order_by: nil, path_params: nil)
|
9
9
|
@view_context = view_context
|
10
10
|
@row_id = ->(record) { default_row_id(record) }
|
11
11
|
@fields = []
|
@@ -13,6 +13,7 @@ module Greedo
|
|
13
13
|
@empty_message_text = "No data to show."
|
14
14
|
@order = order
|
15
15
|
@order_by = order_by
|
16
|
+
@path_params = path_params
|
16
17
|
end
|
17
18
|
|
18
19
|
def configure
|
@@ -43,7 +44,7 @@ module Greedo
|
|
43
44
|
renderer = ->(record) { present(record).public_send(name) }
|
44
45
|
end
|
45
46
|
|
46
|
-
fields << Field.new(name, label, renderer, order, order_by, view_context, sort)
|
47
|
+
fields << Field.new(name, label, renderer, order, order_by, view_context, sort, path_params)
|
47
48
|
nil
|
48
49
|
end
|
49
50
|
|
@@ -102,7 +103,8 @@ module Greedo
|
|
102
103
|
end
|
103
104
|
end
|
104
105
|
|
105
|
-
Field = Struct.new(:name, :label, :renderer, :order, :order_by,
|
106
|
+
Field = Struct.new(:name, :label, :renderer, :order, :order_by,
|
107
|
+
:view_context, :sort, :path_params) do
|
106
108
|
def value(record)
|
107
109
|
renderer.call(record)
|
108
110
|
end
|
@@ -115,19 +117,23 @@ module Greedo
|
|
115
117
|
order_by == name.to_s && %w(asc desc).include?(order)
|
116
118
|
end
|
117
119
|
|
120
|
+
def params
|
121
|
+
view_context.params.merge(path_params)
|
122
|
+
end
|
123
|
+
|
118
124
|
def order_desc_path
|
119
125
|
if ordered_by? && order == "desc"
|
120
|
-
view_context.url_for(
|
126
|
+
view_context.url_for(params.merge(order: nil, order_by: nil))
|
121
127
|
else
|
122
|
-
view_context.url_for(
|
128
|
+
view_context.url_for(params.merge(order: :desc, order_by: name))
|
123
129
|
end
|
124
130
|
end
|
125
131
|
|
126
132
|
def order_asc_path
|
127
133
|
if ordered_by? && order == "asc"
|
128
|
-
view_context.url_for(
|
134
|
+
view_context.url_for(params.merge(order: nil, order_by: nil))
|
129
135
|
else
|
130
|
-
view_context.url_for(
|
136
|
+
view_context.url_for(params.merge(order: :asc, order_by: name))
|
131
137
|
end
|
132
138
|
end
|
133
139
|
|
@@ -153,16 +159,22 @@ module Greedo
|
|
153
159
|
param_name: :page,
|
154
160
|
page: params.fetch(param_name) { 1 }.to_i,
|
155
161
|
per_page: 20,
|
162
|
+
path_params: {},
|
156
163
|
order: params[:order],
|
157
164
|
order_by: params[:order_by],
|
158
165
|
&block)
|
159
|
-
grid = Grid.new(view_context: self,
|
166
|
+
grid = Grid.new(view_context: self,
|
167
|
+
order: order,
|
168
|
+
order_by: order_by,
|
169
|
+
path_params: path_params)
|
160
170
|
grid.configure(&block)
|
161
171
|
grid.paginator = Paginator.build(scope,
|
162
172
|
page: page,
|
163
173
|
per_page: per_page,
|
164
174
|
order_by: grid.ordered_by)
|
165
|
-
render partial: "greedo/grid", locals: {grid: grid,
|
175
|
+
render partial: "greedo/grid", locals: {grid: grid,
|
176
|
+
param_name: param_name,
|
177
|
+
path_params: path_params}
|
166
178
|
end
|
167
179
|
end
|
168
180
|
end
|
data/lib/greedo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: greedo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Pohorecki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|