super 0.17.0 → 0.18.0
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/super/application_controller.rb +2 -2
- data/app/controllers/super/substructure_controller.rb +38 -1
- data/app/views/layouts/super/application.html.erb +1 -1
- data/app/views/super/application/index.csv.erb +14 -0
- data/lib/super/display.rb +2 -1
- data/lib/super/error.rb +1 -0
- data/lib/super/reset.rb +3 -0
- data/lib/super/version.rb +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f2150ed8df48ecbdc8c2e2cdc9a7e4661d5b101f3bd179fe8d6cf539dec2307
|
4
|
+
data.tar.gz: a5377bf3a75715dd13e014ba47c5eb1d14e7c24f9dfeb0aae7e29683c6a13e7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92d351640382343c76fe914a4fac0838445bf1f7d1d00884f3f20d897131d280dac0f8a6a4d66ad2bde5ee6d801a9362fc8364eb8f99dad46621f9e640bf3ada
|
7
|
+
data.tar.gz: 1027b4d5e7ebd58189f1e8aec89b93578d36a71dadfcae7a04bb59a45129ac1967b7a800876a3ef659fb2777b2490cb52e3eb2f2a391510ad06e5da12ade6e23
|
@@ -10,7 +10,7 @@ module Super
|
|
10
10
|
# Displays a list of records to the user
|
11
11
|
def index
|
12
12
|
@records = load_records
|
13
|
-
@display = display_schema.apply(action: current_action)
|
13
|
+
@display = display_schema.apply(action: current_action, format: request.format)
|
14
14
|
@view = index_view
|
15
15
|
@query_form = initialize_query_form
|
16
16
|
initialize_filter_form
|
@@ -21,7 +21,7 @@ module Super
|
|
21
21
|
# Displays a specific record to the user
|
22
22
|
def show
|
23
23
|
@record = load_record
|
24
|
-
@display = display_schema.apply(action: current_action)
|
24
|
+
@display = display_schema.apply(action: current_action, format: request.format)
|
25
25
|
@view = show_view
|
26
26
|
end
|
27
27
|
|
@@ -7,7 +7,7 @@ module Super
|
|
7
7
|
private
|
8
8
|
|
9
9
|
helper_method def model
|
10
|
-
raise NotImplementedError
|
10
|
+
raise Error::NotImplementedError
|
11
11
|
end
|
12
12
|
|
13
13
|
# This is an optional method
|
@@ -17,6 +17,16 @@ module Super
|
|
17
17
|
model.name.pluralize
|
18
18
|
end
|
19
19
|
|
20
|
+
# This defines what to set in the <title> tag. It works in conjunction with
|
21
|
+
# the `#site_title` method
|
22
|
+
#
|
23
|
+
# @return [String, void]
|
24
|
+
helper_method def page_title
|
25
|
+
model.name.pluralize
|
26
|
+
rescue Error::NotImplementedError, NameError
|
27
|
+
return nil
|
28
|
+
end
|
29
|
+
|
20
30
|
# Configures what database records are visible on load. This is an optional
|
21
31
|
# method, it defaults to "`all`" methods
|
22
32
|
#
|
@@ -188,6 +198,14 @@ module Super
|
|
188
198
|
end
|
189
199
|
end
|
190
200
|
|
201
|
+
def pagination_disabled_param
|
202
|
+
:_all_pages
|
203
|
+
end
|
204
|
+
|
205
|
+
def pagination_enabled?
|
206
|
+
!params.key?(pagination_disabled_param)
|
207
|
+
end
|
208
|
+
|
191
209
|
# Sets up pagination
|
192
210
|
#
|
193
211
|
# @return [Pagination]
|
@@ -204,6 +222,8 @@ module Super
|
|
204
222
|
#
|
205
223
|
# @return [ActiveRecord::Relation]
|
206
224
|
def paginate_records
|
225
|
+
return @records if !pagination_enabled?
|
226
|
+
|
207
227
|
@records
|
208
228
|
.limit(@pagination.limit)
|
209
229
|
.offset(@pagination.offset)
|
@@ -260,6 +280,7 @@ module Super
|
|
260
280
|
included do
|
261
281
|
helper_method :site_title
|
262
282
|
helper_method :site_navigation
|
283
|
+
helper_method :document_title
|
263
284
|
end
|
264
285
|
|
265
286
|
private
|
@@ -271,6 +292,22 @@ module Super
|
|
271
292
|
def site_navigation
|
272
293
|
Super::Navigation.new(&:all)
|
273
294
|
end
|
295
|
+
|
296
|
+
def document_title
|
297
|
+
if instance_variable_defined?(:@document_title)
|
298
|
+
return @document_title
|
299
|
+
end
|
300
|
+
|
301
|
+
document_title_segments.map(&:presence).compact.join(document_title_separator)
|
302
|
+
end
|
303
|
+
|
304
|
+
def document_title_segments
|
305
|
+
@document_title_segments ||= [page_title, site_title]
|
306
|
+
end
|
307
|
+
|
308
|
+
def document_title_separator
|
309
|
+
@document_title_separator ||= " - "
|
310
|
+
end
|
274
311
|
end
|
275
312
|
end
|
276
313
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%=
|
2
|
+
attribute_names = @display.each_attribute_name.to_a
|
3
|
+
|
4
|
+
CSV
|
5
|
+
.generate(write_headers: true, headers: attribute_names) do |csv|
|
6
|
+
@records.each do |record|
|
7
|
+
row = attribute_names.map do |attribute_name|
|
8
|
+
@display.render_attribute(template: self, record: record, column: attribute_name)
|
9
|
+
end
|
10
|
+
csv << row
|
11
|
+
end
|
12
|
+
end
|
13
|
+
.html_safe
|
14
|
+
-%>
|
data/lib/super/display.rb
CHANGED
@@ -32,10 +32,11 @@ module Super
|
|
32
32
|
yield(@fields, @schema_types)
|
33
33
|
end
|
34
34
|
|
35
|
-
def apply(action:)
|
35
|
+
def apply(action:, format:)
|
36
36
|
@action_inquirer = action
|
37
37
|
return self if !@action_inquirer.index?
|
38
38
|
return self if @schema_types.actions_called?
|
39
|
+
return self if !format.html?
|
39
40
|
@fields[:actions] = @schema_types.actions
|
40
41
|
self
|
41
42
|
end
|
data/lib/super/error.rb
CHANGED
data/lib/super/reset.rb
CHANGED
@@ -14,7 +14,10 @@ module Super
|
|
14
14
|
undef_method :destroy
|
15
15
|
|
16
16
|
Super::SubstructureController.private_instance_methods(false).each do |imethod|
|
17
|
+
next if imethod == :_layout
|
18
|
+
next if imethod == :_generate_paths_by_default
|
17
19
|
next if imethod == :navigation
|
20
|
+
next if imethod == :page_title
|
18
21
|
undef_method imethod
|
19
22
|
end
|
20
23
|
end
|
data/lib/super/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Ahn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
|
-
name: pry
|
118
|
+
name: pry-rails
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - ">="
|
@@ -212,6 +212,20 @@ dependencies:
|
|
212
212
|
- - ">="
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: rails_anonymous_controller_testing
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - ">="
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '0'
|
215
229
|
description:
|
216
230
|
email:
|
217
231
|
- engineering@zachahn.com
|
@@ -252,6 +266,7 @@ files:
|
|
252
266
|
- app/views/super/application/_sort.html.erb
|
253
267
|
- app/views/super/application/_sort_expression.html.erb
|
254
268
|
- app/views/super/application/edit.html.erb
|
269
|
+
- app/views/super/application/index.csv.erb
|
255
270
|
- app/views/super/application/index.html.erb
|
256
271
|
- app/views/super/application/new.html.erb
|
257
272
|
- app/views/super/application/nothing.html.erb
|
@@ -345,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
345
360
|
- !ruby/object:Gem::Version
|
346
361
|
version: '0'
|
347
362
|
requirements: []
|
348
|
-
rubygems_version: 3.
|
363
|
+
rubygems_version: 3.2.4
|
349
364
|
signing_key:
|
350
365
|
specification_version: 4
|
351
366
|
summary: A simple, powerful, zero dependency Rails admin framework
|