nested_form_fields 0.5.2 → 0.5.3
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/README.md +7 -3
- data/lib/nested_form_fields/version.rb +1 -1
- data/lib/nested_form_fields.rb +12 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79ceb58abeaaaed91ae93d7f48846edc50845e26
|
4
|
+
data.tar.gz: 23e8ccd772a4b458fff7dff9cb6e84f21333502c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c849a9f26a8052210b5355c2dedfb88b27f11688b94ca2abfb127e39ef2c27c2a733e24479608a3d57b9ac7b225b111b0e175e74514d395c97f7120a226f2fa
|
7
|
+
data.tar.gz: 73c52e1d17e016e32d85f948c1c0aeb0eac3dc8e8a07f374fda4a2b4425e751035ddb272961b983ede82aafdc9cb4061499f09d4912d65d4fa66f0975548c0cc
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ And then execute:
|
|
20
20
|
|
21
21
|
$ bundle
|
22
22
|
|
23
|
-
In your application.js file add:
|
23
|
+
In your application.js file add:
|
24
24
|
|
25
25
|
//= require nested_form_fields
|
26
26
|
|
@@ -31,7 +31,7 @@ Assume you have a user model with nested videos:
|
|
31
31
|
class User < ActiveRecord::Base
|
32
32
|
has_many :videos
|
33
33
|
accepts_nested_attributes_for :videos, allow_destroy: true
|
34
|
-
end
|
34
|
+
end
|
35
35
|
|
36
36
|
Use the *nested_fields_for* helper inside your user form to add the video fields:
|
37
37
|
|
@@ -65,7 +65,11 @@ You can change the type of the element wrapping the nested fields using the *wra
|
|
65
65
|
The default wrapper element is a fieldset. To add legend element to the fieldset use:
|
66
66
|
|
67
67
|
= f.nested_fields_for :videos, legend: "Video" do |ff|
|
68
|
-
|
68
|
+
|
69
|
+
You can pass options like you would to the `content_tag` method by nesting them in a `:wrapper_options` hash:
|
70
|
+
|
71
|
+
= f.nested_fields_for :videos, wrapper_options: { class: 'row' } do |ff|
|
72
|
+
|
69
73
|
There are 4 javascipt events firing before and after addition/removal of the fields in the *nested_form_fields* namespace. Namely:
|
70
74
|
fields_adding, fields_added, fields_removing, fields_removed.
|
71
75
|
|
data/lib/nested_form_fields.rb
CHANGED
@@ -16,6 +16,7 @@ module ActionView::Helpers
|
|
16
16
|
fields_options[:builder] ||= options[:builder]
|
17
17
|
fields_options[:parent_builder] = self
|
18
18
|
fields_options[:wrapper_tag] ||= :fieldset
|
19
|
+
fields_options[:wrapper_options] ||= {}
|
19
20
|
fields_options[:namespace] = fields_options[:parent_builder].options[:namespace]
|
20
21
|
|
21
22
|
return fields_for_has_many_association_with_template(record_name, record_object, fields_options, block)
|
@@ -49,7 +50,7 @@ module ActionView::Helpers
|
|
49
50
|
|
50
51
|
output = ActiveSupport::SafeBuffer.new
|
51
52
|
association.each do |child|
|
52
|
-
output << nested_fields_wrapper(association_name, options[:wrapper_tag], options[:legend]) do
|
53
|
+
output << nested_fields_wrapper(association_name, options[:wrapper_tag], options[:legend], options[:wrapper_options]) do
|
53
54
|
fields_for_nested_model("#{name}[#{options[:child_index] || nested_child_index(name)}]", child, options, block)
|
54
55
|
end
|
55
56
|
end
|
@@ -73,7 +74,7 @@ module ActionView::Helpers
|
|
73
74
|
id: template_id(association_name),
|
74
75
|
class: for_template ? 'form_template' : nil,
|
75
76
|
style: for_template ? 'display:none' : nil ) do
|
76
|
-
nested_fields_wrapper(association_name, options[:wrapper_tag], options[:legend]) do
|
77
|
+
nested_fields_wrapper(association_name, options[:wrapper_tag], options[:legend], options[:wrapper_options]) do
|
77
78
|
association_class = (options[:class_name] || association_name).to_s.classify.constantize
|
78
79
|
fields_for_nested_model("#{name}[#{index_placeholder(association_name)}]",
|
79
80
|
association_class.new,
|
@@ -82,7 +83,6 @@ module ActionView::Helpers
|
|
82
83
|
end
|
83
84
|
end
|
84
85
|
|
85
|
-
|
86
86
|
def template_id association_name
|
87
87
|
"#{association_path(association_name)}_template"
|
88
88
|
end
|
@@ -99,13 +99,18 @@ module ActionView::Helpers
|
|
99
99
|
"#{object_name}[_destroy]"
|
100
100
|
end
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
@template.content_tag wrapper_element_type,
|
102
|
+
def nested_fields_wrapper(association_name, wrapper_element_type, legend, wrapper_options)
|
103
|
+
wrapper_options = add_default_classes_to_wrapper_options(association_name, wrapper_options)
|
104
|
+
@template.content_tag wrapper_element_type, wrapper_options do
|
105
105
|
(wrapper_element_type==:fieldset && !legend.nil?)? ( @template.content_tag(:legend, legend, class: "nested_fields") + yield ) : yield
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
+
def add_default_classes_to_wrapper_options(association_name, wrapper_options)
|
110
|
+
default_classes = ["nested_fields", "nested_#{association_path(association_name)}"]
|
111
|
+
wrapper_options[:class] = wrapper_options[:class].is_a?(String) ? wrapper_options[:class].split(" ") : wrapper_options[:class].to_a
|
112
|
+
wrapper_options[:class] += default_classes
|
113
|
+
wrapper_options
|
114
|
+
end
|
109
115
|
end
|
110
|
-
|
111
116
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nested_form_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nico Ritsche
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -252,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
252
|
version: '0'
|
253
253
|
requirements: []
|
254
254
|
rubyforge_project:
|
255
|
-
rubygems_version: 2.
|
255
|
+
rubygems_version: 2.2.2
|
256
256
|
signing_key:
|
257
257
|
specification_version: 4
|
258
258
|
summary: Rails gem for dynamically adding and removing nested has_many association
|