para 0.9.0 → 0.9.2
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/assets/javascripts/para/inputs/nested_many.coffee +14 -8
- data/app/controllers/para/admin/nested_forms_controller.rb +1 -0
- data/app/views/para/admin/nested_forms/show.html.haml +10 -1
- data/app/views/para/admin/resources/_remote_nested_form.html.haml +1 -1
- data/app/views/para/inputs/_nested_many.html.haml +1 -0
- data/app/views/para/inputs/_nested_one.html.haml +2 -2
- data/app/views/para/inputs/nested_many/_container.html.haml +1 -1
- data/app/views/para/inputs/nested_one/_container.html.haml +1 -1
- data/lib/para/form_builder/nested_form.rb +8 -0
- data/lib/para/inputs/nested_many_input.rb +3 -1
- data/lib/para/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 36e1d56aa604b3827cc9e483a65deb72827424890f9125ee83cb43ca5d7e34ed
|
|
4
|
+
data.tar.gz: bf514778435313e925dbd1222bd85393f842416ac7a58833a21d02d45edc4eb9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb0433062dd44b4b6f4b1278604e94cc751c586bee5196118cab5d7feaba6fe011df5e0900410ce1f2a65e78e88723e6e7cee8d22c82864dce99a52d2866d95c
|
|
7
|
+
data.tar.gz: 1d4fabf4b0160ae3e7fdbc238a8c047a93c7d1c69a8d07c89d4f1f565ba61d1cf452f17baa4db52e8180036bcae99df775d714fabc876208bd36d518ff6f927e
|
|
@@ -5,7 +5,7 @@ class Para.NestedManyField
|
|
|
5
5
|
@initializeOrderable()
|
|
6
6
|
@initializeCocoon()
|
|
7
7
|
|
|
8
|
-
@$field.on 'shown.bs.collapse',
|
|
8
|
+
@$field.on 'shown.bs.collapse', @stoppingPropagation(@collapseShown)
|
|
9
9
|
|
|
10
10
|
initializeOrderable: ->
|
|
11
11
|
@orderable = @$field.hasClass('orderable')
|
|
@@ -21,11 +21,17 @@ class Para.NestedManyField
|
|
|
21
21
|
$(el).find('.resource-position-field').val(i)
|
|
22
22
|
|
|
23
23
|
initializeCocoon: ->
|
|
24
|
-
@$fieldsList.on 'cocoon:after-insert',
|
|
25
|
-
@$fieldsList.on 'cocoon:before-remove',
|
|
26
|
-
@$fieldsList.on 'cocoon:after-remove',
|
|
24
|
+
@$fieldsList.on 'cocoon:after-insert', @afterInsertField
|
|
25
|
+
@$fieldsList.on 'cocoon:before-remove', @beforeRemoveField
|
|
26
|
+
@$fieldsList.on 'cocoon:after-remove', @afterRemoveField
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
stoppingPropagation: (callback) =>
|
|
29
|
+
(e, args...) =>
|
|
30
|
+
e.stopPropagation()
|
|
31
|
+
callback(e, args...)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
afterInsertField: (e, $element) =>
|
|
29
35
|
if ($collapsible = $element.find('[data-open-on-insert="true"]')).length
|
|
30
36
|
@openInsertedField($collapsible)
|
|
31
37
|
|
|
@@ -36,21 +42,21 @@ class Para.NestedManyField
|
|
|
36
42
|
|
|
37
43
|
$element.simpleForm()
|
|
38
44
|
|
|
39
|
-
beforeRemoveField: (e, $element)
|
|
45
|
+
beforeRemoveField: (e, $element) =>
|
|
40
46
|
$nextEl = $element.next()
|
|
41
47
|
# Remove attributes mappings field for new records since it will try to
|
|
42
48
|
# create an empty nested resource otherwise
|
|
43
49
|
$nextEl.remove() if $nextEl.is('[data-attributes-mappings]') and not $element.is('[data-persisted]')
|
|
44
50
|
|
|
45
51
|
# When a sub field is removed, update every sub field position
|
|
46
|
-
afterRemoveField:
|
|
52
|
+
afterRemoveField: =>
|
|
47
53
|
@handleOrderingUpdated();
|
|
48
54
|
|
|
49
55
|
openInsertedField: ($field) ->
|
|
50
56
|
$target = $($field.attr('href'))
|
|
51
57
|
$target.collapse('show')
|
|
52
58
|
|
|
53
|
-
collapseShown: (e)
|
|
59
|
+
collapseShown: (e) =>
|
|
54
60
|
$target = $(e.target)
|
|
55
61
|
|
|
56
62
|
if $target.is("[data-rendered]") or $target.data("rendered")
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
- nested_form = nil
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
-# Initialize an unredered form builder that will only be used to create the nested fields
|
|
4
|
+
-# by using the yielded block form builder argument.
|
|
5
|
+
-#
|
|
6
|
+
-# The form's object name is set through the provided :object_name param to ensure that
|
|
7
|
+
-# the form inputs are named correctly in the loading form.
|
|
8
|
+
-#
|
|
9
|
+
-# Builder options allow to customize the options passed to the form builder to customize
|
|
10
|
+
-# the rendered partials.
|
|
11
|
+
-#
|
|
12
|
+
- para_form_for(@object, @builder_options.merge(url: "")) do |form|
|
|
4
13
|
- form.object_name = @object_name
|
|
5
14
|
- nested_form = capture do
|
|
6
15
|
= render(partial: find_partial_for(@model, :remote_nested_form), locals: { form: form, model: @model, object: @object, object_name: @object_name })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
= render partial: find_partial_for(model,
|
|
1
|
+
= render partial: find_partial_for(model, form.nested_fields_partial_name), locals: { form: form }
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
.fields-list{ id: dom_identifier }
|
|
3
3
|
= form.simple_fields_for attribute_name, resources, nested_attribute_name: attribute_name, orderable: orderable, track_attribute_mappings: render_partial do |nested_form|
|
|
4
4
|
= render partial: find_partial_for(model, 'nested_many/container', partial_dir: 'inputs'), locals: { form: nested_form, model: nested_form.object.class, subclass: subclass, nested_locals: nested_locals, inset: inset, uncollapsed: uncollapsed, render_partial: render_partial, remote_partial_params: remote_partial_params }
|
|
5
|
+
|
|
5
6
|
-# Add button
|
|
6
7
|
- if add_button
|
|
7
8
|
- if subclass
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
= render partial: find_partial_for(model, 'nested_one/container', partial_dir: 'inputs'), locals: { nested_form: nested_form, form: form, model: nested_form.object.class, subclass: subclass, nested_locals: nested_locals }
|
|
7
7
|
|
|
8
8
|
- else
|
|
9
|
-
= render partial: find_partial_for(model,
|
|
9
|
+
= render partial: find_partial_for(model, form.nested_fields_partial_name), locals: { form: nested_form, parent: form.object }.merge(nested_locals)
|
|
10
10
|
|
|
11
11
|
- if defined?(subclass) && subclass
|
|
12
|
-
= render partial: 'para/inputs/nested_one/add_with_subclasses', locals: { form: form, model: model, dom_identifier: dom_identifier, nested_locals: nested_locals, attribute_name: attribute_name, subclasses: subclasses, add_button_label: add_button_label, add_button_class: add_button_class, subclass: subclass }
|
|
12
|
+
= render partial: 'para/inputs/nested_one/add_with_subclasses', locals: { form: form, model: model, dom_identifier: dom_identifier, nested_locals: nested_locals, attribute_name: attribute_name, subclasses: subclasses, add_button_label: add_button_label, add_button_class: add_button_class, subclass: subclass }
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
.panel-collapse.form-inputs.collapse{ id: form.nested_resource_dom_id, class: ('in' if uncollapsed && form.object.persisted?), data: { rendered: render_partial, render_path: @component.path(remote_partial_params), id: form.object.id, :"object-name" => form.object_name, :"model-name" => model.name } }
|
|
15
15
|
.panel-body{ data: { :"nested-form-container" => true } }
|
|
16
16
|
- if render_partial
|
|
17
|
-
= render partial: find_partial_for(model,
|
|
17
|
+
= render partial: find_partial_for(model, form.nested_fields_partial_name), locals: { form: form }.merge(nested_locals)
|
|
18
18
|
- else
|
|
19
19
|
= fa_icon "spinner spin"
|
|
20
20
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
%i.fa.fa-angle-up
|
|
7
7
|
|
|
8
8
|
.panel-body.panel-collapse.form-inputs.collapse{ id: nested_form.nested_resource_dom_id }
|
|
9
|
-
= render partial: find_partial_for(model,
|
|
9
|
+
= render partial: find_partial_for(model, form.nested_fields_partial_name), locals: { form: nested_form, parent: nested_form.object }.merge(nested_locals)
|
|
@@ -76,6 +76,14 @@ module Para
|
|
|
76
76
|
nested? && options[:parent_builder].object
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
+
# Returns the partial name to be looked up for rendering used inside the nested
|
|
80
|
+
# fields partials, for the nested fields container and the remote nested fields
|
|
81
|
+
# partial.
|
|
82
|
+
#
|
|
83
|
+
def nested_fields_partial_name
|
|
84
|
+
:fields
|
|
85
|
+
end
|
|
86
|
+
|
|
79
87
|
private
|
|
80
88
|
|
|
81
89
|
def default_resource_name
|
|
@@ -3,7 +3,7 @@ module Para
|
|
|
3
3
|
class NestedManyInput < NestedBaseInput
|
|
4
4
|
attr_reader :resource
|
|
5
5
|
|
|
6
|
-
def input(
|
|
6
|
+
def input(_wrapper_options = nil)
|
|
7
7
|
input_html_options[:class] << "nested-many"
|
|
8
8
|
|
|
9
9
|
orderable = options.fetch(:orderable, model.orderable?)
|
|
@@ -40,6 +40,8 @@ module Para
|
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
private
|
|
44
|
+
|
|
43
45
|
def parent_model
|
|
44
46
|
@parent_model ||= @builder.object.class
|
|
45
47
|
end
|
data/lib/para/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: para
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Valentin Ballestrino
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|