freeform 1.0.4 → 1.0.5
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 +1 -1
- data/lib/freeform/builder/builder_mixin.rb +8 -3
- data/lib/freeform/form/nested.rb +8 -8
- data/lib/freeform/form/property.rb +15 -9
- data/lib/freeform/form.rb +62 -12
- data/lib/freeform/version.rb +1 -1
- data/spec/acceptance_spec.rb +105 -4
- data/spec/behavior_spec.rb +48 -0
- data/spec/dummy/app/controllers/projects_controller.rb +8 -2
- data/spec/dummy/app/forms/task_form.rb +3 -2
- data/spec/dummy/app/views/projects/new.html.erb +2 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +27711 -0
- data/spec/javascript_spec.rb +1 -2
- data/vendor/assets/javascripts/jquery_freeform.js +10 -5
- metadata +4 -9
- data/spec/dummy/app/assets/javascripts/prototype.js +0 -6082
- data/spec/dummy/app/assets/javascripts/prototype_events_test.js +0 -20
- data/spec/dummy/app/views/projects/without_intermediate_inputs.html.erb +0 -11
- data/vendor/assets/javascripts/prototype_freeform.js +0 -69
data/spec/javascript_spec.rb
CHANGED
@@ -3,11 +3,10 @@ require 'spec_helper'
|
|
3
3
|
describe 'JavaScript Behavior', :js => true do
|
4
4
|
include Capybara::DSL
|
5
5
|
|
6
|
-
[:jquery
|
6
|
+
[:jquery].each do |js_framework|
|
7
7
|
|
8
8
|
url = case js_framework
|
9
9
|
when :jquery then '/projects/new'
|
10
|
-
when :prototype then '/projects/new?type=prototype'
|
11
10
|
end
|
12
11
|
|
13
12
|
context "with #{js_framework}" do
|
@@ -22,6 +22,7 @@
|
|
22
22
|
context = context.replace(new RegExp('\\[' + current[1] + '\\]\\[(new_)?\\d+\\]$'), '');
|
23
23
|
}
|
24
24
|
|
25
|
+
|
25
26
|
// context will be something like this for a brand new form:
|
26
27
|
// project[tasks_attributes][1255929127459][assignments_attributes][1255929128105]
|
27
28
|
// or for an edit form:
|
@@ -45,7 +46,7 @@
|
|
45
46
|
|
46
47
|
// Make a unique ID for the new child
|
47
48
|
var regexp = new RegExp('new_' + assoc, 'g');
|
48
|
-
var new_id = this.newId();
|
49
|
+
var new_id = this.newId(assoc);
|
49
50
|
content = $.trim(content.replace(regexp, new_id));
|
50
51
|
|
51
52
|
var field = this.insertFields(content, assoc, link);
|
@@ -55,7 +56,11 @@
|
|
55
56
|
.trigger({ type: 'nested:fieldAdded:' + assoc, field: field });
|
56
57
|
return false;
|
57
58
|
},
|
58
|
-
newId: function() {
|
59
|
+
newId: function(assoc) {
|
60
|
+
// Instead, I should try to count the number of matches so far, then add 1
|
61
|
+
// return new Date().getTime();
|
62
|
+
// This is close, but it doesn't work if there is not link_to_remove
|
63
|
+
// return $('div.fields a[data-association*="' + assoc + '"]').length;
|
59
64
|
return new Date().getTime();
|
60
65
|
},
|
61
66
|
insertFields: function(content, assoc, link) {
|
@@ -69,13 +74,13 @@
|
|
69
74
|
removeFields: function(e) {
|
70
75
|
var $link = $(e.currentTarget),
|
71
76
|
assoc = $link.data('association'); // Name of child to be removed
|
72
|
-
|
77
|
+
|
73
78
|
var hiddenField = $link.prev('input[type=hidden]');
|
74
79
|
hiddenField.val('1');
|
75
|
-
|
80
|
+
|
76
81
|
var field = $link.closest('.fields');
|
77
82
|
field.hide();
|
78
|
-
|
83
|
+
|
79
84
|
field
|
80
85
|
.trigger({ type: 'nested:fieldRemoved', field: field })
|
81
86
|
.trigger({ type: 'nested:fieldRemoved:' + assoc, field: field });
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freeform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- brycesenz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -210,6 +210,7 @@ files:
|
|
210
210
|
- lib/generators/freeform/install_generator.rb
|
211
211
|
- lib/tasks/freeform_tasks.rake
|
212
212
|
- spec/acceptance_spec.rb
|
213
|
+
- spec/behavior_spec.rb
|
213
214
|
- spec/builder/builder_spec.rb
|
214
215
|
- spec/builder/view_helper_spec.rb
|
215
216
|
- spec/dummy/README.rdoc
|
@@ -219,8 +220,6 @@ files:
|
|
219
220
|
- spec/dummy/app/assets/javascripts/jquery.js
|
220
221
|
- spec/dummy/app/assets/javascripts/jquery_events_test.js
|
221
222
|
- spec/dummy/app/assets/javascripts/projects.js
|
222
|
-
- spec/dummy/app/assets/javascripts/prototype.js
|
223
|
-
- spec/dummy/app/assets/javascripts/prototype_events_test.js
|
224
223
|
- spec/dummy/app/assets/stylesheets/application.css
|
225
224
|
- spec/dummy/app/assets/stylesheets/companies.css
|
226
225
|
- spec/dummy/app/assets/stylesheets/projects.css
|
@@ -241,7 +240,6 @@ files:
|
|
241
240
|
- spec/dummy/app/views/companies/new.html.erb
|
242
241
|
- spec/dummy/app/views/layouts/application.html.erb
|
243
242
|
- spec/dummy/app/views/projects/new.html.erb
|
244
|
-
- spec/dummy/app/views/projects/without_intermediate_inputs.html.erb
|
245
243
|
- spec/dummy/bin/bundle
|
246
244
|
- spec/dummy/bin/rails
|
247
245
|
- spec/dummy/bin/rake
|
@@ -281,7 +279,6 @@ files:
|
|
281
279
|
- spec/persistence_spec.rb
|
282
280
|
- spec/spec_helper.rb
|
283
281
|
- vendor/assets/javascripts/jquery_freeform.js
|
284
|
-
- vendor/assets/javascripts/prototype_freeform.js
|
285
282
|
homepage: https://github.com/brycesenz/freeform
|
286
283
|
licenses:
|
287
284
|
- MIT
|
@@ -309,6 +306,7 @@ summary: FreeForm lets you compose forms however you like, explicitly guiding ho
|
|
309
306
|
each field maps back to your domain models. No more accepting nested attributes!
|
310
307
|
test_files:
|
311
308
|
- spec/acceptance_spec.rb
|
309
|
+
- spec/behavior_spec.rb
|
312
310
|
- spec/builder/builder_spec.rb
|
313
311
|
- spec/builder/view_helper_spec.rb
|
314
312
|
- spec/dummy/README.rdoc
|
@@ -318,8 +316,6 @@ test_files:
|
|
318
316
|
- spec/dummy/app/assets/javascripts/jquery.js
|
319
317
|
- spec/dummy/app/assets/javascripts/jquery_events_test.js
|
320
318
|
- spec/dummy/app/assets/javascripts/projects.js
|
321
|
-
- spec/dummy/app/assets/javascripts/prototype.js
|
322
|
-
- spec/dummy/app/assets/javascripts/prototype_events_test.js
|
323
319
|
- spec/dummy/app/assets/stylesheets/application.css
|
324
320
|
- spec/dummy/app/assets/stylesheets/companies.css
|
325
321
|
- spec/dummy/app/assets/stylesheets/projects.css
|
@@ -340,7 +336,6 @@ test_files:
|
|
340
336
|
- spec/dummy/app/views/companies/new.html.erb
|
341
337
|
- spec/dummy/app/views/layouts/application.html.erb
|
342
338
|
- spec/dummy/app/views/projects/new.html.erb
|
343
|
-
- spec/dummy/app/views/projects/without_intermediate_inputs.html.erb
|
344
339
|
- spec/dummy/bin/bundle
|
345
340
|
- spec/dummy/bin/rails
|
346
341
|
- spec/dummy/bin/rake
|