administrate-field-has_many_with_fields 0.1.0 → 0.1.1
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/Gemfile +0 -2
- data/Gemfile.lock +0 -3
- data/README.md +30 -9
- data/app/views/fields/has_many_with_fields/_form.html.erb +25 -0
- data/app/views/fields/has_many_with_fields/_index.html.erb +14 -0
- data/lib/administrate/field/has_many_with_fields.rb +0 -43
- metadata +3 -2
- data/lib/administrate/field/has_many_with_fields/version.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d49fef5b3d0f3a3d6ba60dd9193f86810cef395ebcafe1ce9bf59784bec6d6d
|
4
|
+
data.tar.gz: c3fa10616982c245a1120805294d9f2029e8c8ee65edcf9ccf971385107be3c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 691bc71229177dc6237d28a7dd0e979e8f4018f1c41abe871e8d475101436f3e7d81ff61ca179b00d36afa99d2913b6d21b137290780bea63bfb657a3f6f2c7d
|
7
|
+
data.tar.gz: 3c56b2fdbeaa5100470a082a7c7d839bcd06f5c5f5afcd479de6af690b7a4117bac41c6da74f15abb6a84eb8a0f1f8938f03de4fdabbb9679eab525eb89cdaca
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -53,8 +53,6 @@ GEM
|
|
53
53
|
diff-lcs (1.5.0)
|
54
54
|
erubi (1.10.0)
|
55
55
|
execjs (2.8.1)
|
56
|
-
factory_bot (6.2.1)
|
57
|
-
activesupport (>= 5.0.0)
|
58
56
|
ffi (1.15.5)
|
59
57
|
i18n (1.10.0)
|
60
58
|
concurrent-ruby (~> 1.0)
|
@@ -145,7 +143,6 @@ PLATFORMS
|
|
145
143
|
|
146
144
|
DEPENDENCIES
|
147
145
|
administrate-field-has_many_with_fields!
|
148
|
-
factory_bot
|
149
146
|
rake (~> 13.0)
|
150
147
|
rspec (~> 3.0)
|
151
148
|
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Administrate::Field::HasManyWithFields
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
An administrate plug-in designed to allow you to only show certain fields when rendering a `has_many` relationship instead of rendering entire collection's dashboard. Extends the `Administrate::Field::HasMany` field.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,17 +20,40 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
23
|
+
Turn the standard `has_many` relationship in your administrate dashboard from this
|
26
24
|
|
27
|
-
|
25
|
+
```ruby
|
26
|
+
class UserDashboard < Administrate::BaseDashboard
|
27
|
+
# ATTRIBUTE_TYPES
|
28
|
+
# a hash that describes the type of each of the model's fields.
|
29
|
+
#
|
30
|
+
# Each different type represents an Administrate::Field object,
|
31
|
+
# which determines how the attribute is displayed
|
32
|
+
# on pages throughout the dashboard.
|
33
|
+
ATTRIBUTE_TYPES = {
|
34
|
+
posts: Field::HasMany,
|
35
|
+
# ...
|
36
|
+
}
|
37
|
+
```
|
28
38
|
|
29
|
-
|
39
|
+
into this
|
30
40
|
|
31
|
-
|
41
|
+
```ruby
|
42
|
+
class UserDashboard < Administrate::BaseDashboard
|
43
|
+
# ATTRIBUTE_TYPES
|
44
|
+
# a hash that describes the type of each of the model's fields.
|
45
|
+
#
|
46
|
+
# Each different type represents an Administrate::Field object,
|
47
|
+
# which determines how the attribute is displayed
|
48
|
+
# on pages throughout the dashboard.
|
49
|
+
ATTRIBUTE_TYPES = {
|
50
|
+
posts: Field::HasManyWithFields.with_options(fields: [:id, :attr_1, :attr_2, :method_1]),
|
51
|
+
# ...
|
52
|
+
}
|
53
|
+
```
|
32
54
|
|
33
|
-
|
55
|
+
The standard administrate `with_options` method (limit, class_name, etc) still works because this inherits from `Administrate::Field::HasMany`. The `fields` array also works with both model attributes and model methods.
|
34
56
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/administrate-field-has_many_with_fields.
|
36
57
|
|
37
58
|
## License
|
38
59
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%#
|
2
|
+
# HasMany Form Partial
|
3
|
+
This partial renders an input element for has_many relationships.
|
4
|
+
By default, the input is a collection select box
|
5
|
+
that displays all possible records to associate with.
|
6
|
+
The collection select box supports multiple inputs,
|
7
|
+
and is augmented with [Selectize].
|
8
|
+
## Local variables:
|
9
|
+
- `f`:
|
10
|
+
A Rails form generator, used to help create the appropriate input fields.
|
11
|
+
- `field`:
|
12
|
+
An instance of [Administrate::Field::HasMany][1].
|
13
|
+
Contains helper methods for displaying a collection select box.
|
14
|
+
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/HasMany
|
15
|
+
[Selectize]: http://brianreavis.github.io/selectize.js
|
16
|
+
%>
|
17
|
+
|
18
|
+
<div class="field-unit__label">
|
19
|
+
<%= f.label field.attribute, for: "#{f.object_name}_#{field.attribute_key}" %>
|
20
|
+
</div>
|
21
|
+
<div class="field-unit__field">
|
22
|
+
<%= f.select(field.attribute_key, nil, {}, multiple: true) do %>
|
23
|
+
<%= options_for_select(field.associated_resource_options, field.selected_options) %>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%#
|
2
|
+
# HasMany Index Partial
|
3
|
+
This partial renders a has_many relationship,
|
4
|
+
to be displayed on a resource's index page.
|
5
|
+
By default, the relationship is rendered
|
6
|
+
as a count of how many objects are associated through the relationship.
|
7
|
+
## Local variables:
|
8
|
+
- `field`:
|
9
|
+
An instance of [Administrate::Field::HasMany][1].
|
10
|
+
A wrapper around the has_many relationship pulled from the database.
|
11
|
+
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/HasMany
|
12
|
+
%>
|
13
|
+
|
14
|
+
<%= pluralize(field.data.size, t("activerecord.models.#{field.attribute.to_s.singularize}", default: field.attribute.to_s.humanize.downcase.singularize, count: field.data.size)) %>
|
@@ -1,9 +1,5 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
require "administrate/order"
|
4
2
|
require "administrate/field/has_many"
|
5
|
-
# require_relative "has_many_with_fields/version"
|
6
|
-
|
7
3
|
require "administrate/field/base"
|
8
4
|
require "rails"
|
9
5
|
|
@@ -28,45 +24,6 @@ module Administrate
|
|
28
24
|
end
|
29
25
|
end
|
30
26
|
|
31
|
-
|
32
|
-
|
33
|
-
# module Administrate
|
34
|
-
# module Field
|
35
|
-
# # module HasManyWithFields
|
36
|
-
# class HasManyWithFields < Administrate::Field::HasMany
|
37
|
-
# class Error < StandardError; end
|
38
|
-
|
39
|
-
# def associated_collection(order = self.override_order)
|
40
|
-
# CollectionWithFields.new(
|
41
|
-
# associated_dashboard,
|
42
|
-
# order: order,
|
43
|
-
# fields: options[:fields],
|
44
|
-
# )
|
45
|
-
# end
|
46
|
-
|
47
|
-
# def override_order
|
48
|
-
# @order ||= Administrate::Order.new(sort_by, direction)
|
49
|
-
# end
|
50
|
-
# end
|
51
|
-
# end
|
52
|
-
# end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
# class HasManyWithFields < Administrate::Field::HasMany
|
57
|
-
# def associated_collection(order = self.override_order)
|
58
|
-
# CollectionWithFields.new(
|
59
|
-
# associated_dashboard,
|
60
|
-
# order: order,
|
61
|
-
# fields: options[:fields],
|
62
|
-
# )
|
63
|
-
# end
|
64
|
-
|
65
|
-
# def override_order
|
66
|
-
# @order ||= Administrate::Order.new(sort_by, direction)
|
67
|
-
# end
|
68
|
-
# end
|
69
|
-
|
70
27
|
class CollectionWithFields < Administrate::Page::Collection
|
71
28
|
def attributes_for(resource)
|
72
29
|
selected_attribute_names.map do |attr_name|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: administrate-field-has_many_with_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Newman
|
@@ -36,9 +36,10 @@ files:
|
|
36
36
|
- LICENSE.txt
|
37
37
|
- README.md
|
38
38
|
- Rakefile
|
39
|
+
- app/views/fields/has_many_with_fields/_form.html.erb
|
40
|
+
- app/views/fields/has_many_with_fields/_index.html.erb
|
39
41
|
- app/views/fields/has_many_with_fields/_show.html.erb
|
40
42
|
- lib/administrate/field/has_many_with_fields.rb
|
41
|
-
- lib/administrate/field/has_many_with_fields/version.rb
|
42
43
|
homepage: https://github.com/jnewman12/administrate-field-has_many_with_fields
|
43
44
|
licenses:
|
44
45
|
- MIT
|