freeform 1.0.3 → 1.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 +8 -8
- data/Gemfile.lock +2 -2
- data/lib/freeform/builder/builder_mixin.rb +6 -6
- data/lib/freeform/version.rb +1 -1
- data/spec/acceptance_spec.rb +39 -1
- data/spec/builder/builder_spec.rb +11 -11
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +13493 -0
- data/spec/javascript_spec.rb +2 -2
- data/spec/persistence_spec.rb +77 -40
- metadata +1 -3
- data/vendor/assets/javascripts/jquery_nested_form.js +0 -0
- data/vendor/assets/javascripts/prototype_nested_form.js +0 -0
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
NTJlZjkyNzA0NTJlNzRhZjkyMjFjOGJmMjQyZjBkNDE5MmRiYzNjNA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
NmZjYjBkNGU2NjBhOGVlMzQ5ZTM2YTcwMDAyMTdjYzViZDFjYjNhOQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ZDMwZWJiYjljYzU5NWU3M2FkYzIxOTdkZGRlYzg2YzM4ODVmN2IzNzM2NjUy
|
|
10
|
+
YTdmODEzMDg3ODc5OGJiZmUzOTAxOTllNzBkNzI1OGZlNmVjZjBlNjY3NWM3
|
|
11
|
+
MGYxZDZmMGIwNjAzYWQyMDRlYjAzNDA2Yjg5Y2VkYzY4NTJiMDk=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ZDQzZDlkMjY1ZTYyMzZmODcyOTVkNGViNDFiZmJjMTcwZGQ0ZjIzYmU1MmVl
|
|
14
|
+
OTlkZDA4MTY2ZTEwNjdkMmYzYzU2N2I4OTNhZjdhMzU0MzM2ZDU4Yzc0ODRj
|
|
15
|
+
ZjUwYjYxNDc3YWZjMDJiYWUyZDkwY2VjMjMxODYwNGMzMzQ2ZWE=
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
freeform (1.0.
|
|
4
|
+
freeform (1.0.3)
|
|
5
5
|
activemodel
|
|
6
6
|
formtastic
|
|
7
7
|
nested_form (~> 0.3.2)
|
|
@@ -70,7 +70,7 @@ GEM
|
|
|
70
70
|
nested_form (0.3.2)
|
|
71
71
|
nokogiri (1.6.0)
|
|
72
72
|
mini_portile (~> 0.5.0)
|
|
73
|
-
polyglot (0.3.
|
|
73
|
+
polyglot (0.3.4)
|
|
74
74
|
rack (1.4.5)
|
|
75
75
|
rack-cache (1.2)
|
|
76
76
|
rack (>= 0.4)
|
|
@@ -70,7 +70,6 @@ module FreeForm
|
|
|
70
70
|
args << options
|
|
71
71
|
hidden_field(:_destroy, :value => 0) << @template.link_to(*args, &block)
|
|
72
72
|
end
|
|
73
|
-
|
|
74
73
|
def fields_for_with_nested_attributes(association_name, *args)
|
|
75
74
|
# TODO Test this better
|
|
76
75
|
block = args.pop || Proc.new { |fields| @template.render(:partial => "#{association_name.to_s.singularize}_fields", :locals => {:f => fields}) }
|
|
@@ -88,14 +87,15 @@ module FreeForm
|
|
|
88
87
|
end
|
|
89
88
|
|
|
90
89
|
def fields_for_nested_model(name, object, options, block)
|
|
91
|
-
classes = 'fields'
|
|
92
|
-
classes << ' marked_for_destruction' if object.respond_to?(:marked_for_destruction?) && object.marked_for_destruction?
|
|
93
|
-
|
|
94
90
|
perform_wrap = options.fetch(:nested_wrapper, true)
|
|
95
91
|
perform_wrap &&= options[:wrapper] != false # wrap even if nil
|
|
96
92
|
|
|
97
93
|
if perform_wrap
|
|
98
|
-
|
|
94
|
+
if object.respond_to?(:marked_for_destruction?) && object.marked_for_destruction?
|
|
95
|
+
@template.content_tag(:div, super, :class => 'fields marked_for_destruction', :style => "display: none;")
|
|
96
|
+
else
|
|
97
|
+
@template.content_tag(:div, super, :class => 'fields')
|
|
98
|
+
end
|
|
99
99
|
else
|
|
100
100
|
super
|
|
101
101
|
end
|
|
@@ -108,4 +108,4 @@ module FreeForm
|
|
|
108
108
|
assocs.join('_') + '_fields_blueprint'
|
|
109
109
|
end
|
|
110
110
|
end
|
|
111
|
-
end
|
|
111
|
+
end
|
data/lib/freeform/version.rb
CHANGED
data/spec/acceptance_spec.rb
CHANGED
|
@@ -229,7 +229,45 @@ describe FreeForm::Form do
|
|
|
229
229
|
end
|
|
230
230
|
end
|
|
231
231
|
|
|
232
|
-
context "with invalid, marked for destruction nested model", :failing => true do
|
|
232
|
+
context "with invalid form, and invalid marked for destruction nested model", :failing => true do
|
|
233
|
+
let(:attributes) do {
|
|
234
|
+
:company_name => "",
|
|
235
|
+
:project_name => "rails app",
|
|
236
|
+
"due_date(1i)" => "2014",
|
|
237
|
+
"due_date(2i)" => "10",
|
|
238
|
+
"due_date(3i)" => "30",
|
|
239
|
+
:tasks_attributes => {
|
|
240
|
+
"0" => {
|
|
241
|
+
:name => "task_1",
|
|
242
|
+
"start_date(1i)" => "2012",
|
|
243
|
+
"start_date(2i)" => "1",
|
|
244
|
+
"start_date(3i)" => "2",
|
|
245
|
+
},
|
|
246
|
+
"1" => {
|
|
247
|
+
:name => "task_2",
|
|
248
|
+
"end_date(1i)" => "2011",
|
|
249
|
+
"end_date(2i)" => "12",
|
|
250
|
+
"end_date(3i)" => "15",
|
|
251
|
+
:_destroy => "1"
|
|
252
|
+
}
|
|
253
|
+
} }
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
before(:each) do
|
|
257
|
+
form.fill(attributes)
|
|
258
|
+
form.valid?
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
it "should not be valid" do
|
|
262
|
+
form.should_not be_valid
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it "should not have errors" do
|
|
266
|
+
form.errors[:company_name].should eq(["can't be blank"])
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
context "with marked for destruction invalid nested model" do
|
|
233
271
|
let(:attributes) do {
|
|
234
272
|
:company_name => "dummycorp",
|
|
235
273
|
:project_name => "rails app",
|
|
@@ -7,8 +7,8 @@ require "spec_helper"
|
|
|
7
7
|
form_input_key :milestone
|
|
8
8
|
form_models :milestone
|
|
9
9
|
allow_destroy_on_save
|
|
10
|
-
|
|
11
|
-
property :name, :on => :milestone
|
|
10
|
+
|
|
11
|
+
property :name, :on => :milestone
|
|
12
12
|
end
|
|
13
13
|
# This wrapper just avoids CONST warnings
|
|
14
14
|
v, $VERBOSE = $VERBOSE, nil
|
|
@@ -22,9 +22,9 @@ require "spec_helper"
|
|
|
22
22
|
form_input_key :task
|
|
23
23
|
form_models :task
|
|
24
24
|
allow_destroy_on_save
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
property :name, :on => :task
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
has_many :milestones, :class => Module::MilestoneForm, :default_initializer => :milestone_initializer
|
|
29
29
|
|
|
30
30
|
def milestone_initializer
|
|
@@ -43,11 +43,11 @@ require "spec_helper"
|
|
|
43
43
|
form_input_key :project
|
|
44
44
|
form_models :project
|
|
45
45
|
allow_destroy_on_save
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
property :name, :on => :project
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
has_many :tasks, :class => Module::TaskForm, :default_initializer => :task_initializer
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
def task_initializer
|
|
52
52
|
{:task => Task.new}
|
|
53
53
|
end
|
|
@@ -58,7 +58,7 @@ require "spec_helper"
|
|
|
58
58
|
$VERBOSE = v
|
|
59
59
|
klass
|
|
60
60
|
end
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
let(:form) { form_class.new(:project => Project.new) }
|
|
63
63
|
|
|
64
64
|
let(:template) do
|
|
@@ -133,11 +133,11 @@ require "spec_helper"
|
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
it "wraps nested fields marked for destruction with an additional class" do
|
|
136
|
+
it "wraps nested fields marked for destruction with an additional class, and hides them" do
|
|
137
137
|
task = form.build_task
|
|
138
138
|
task.mark_for_destruction
|
|
139
139
|
fields = subject.fields_for(:tasks) { 'Task' }
|
|
140
|
-
fields.should eq('<div class="fields marked_for_destruction">Task</div>')
|
|
140
|
+
fields.should eq('<div class="fields marked_for_destruction" style="display: none;">Task</div>')
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
it "puts blueprint into data-blueprint attribute" do
|
|
@@ -212,4 +212,4 @@ require "spec_helper"
|
|
|
212
212
|
end
|
|
213
213
|
end
|
|
214
214
|
end
|
|
215
|
-
end
|
|
215
|
+
end
|
data/spec/dummy/db/test.sqlite3
CHANGED
|
Binary file
|