twitter_bootstrap_form_for 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.
data/CHANGELOG.markdown
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
Twitter Bootstrap Form For Changes
|
2
2
|
==================================
|
3
3
|
|
4
|
+
## 1.0.4 (2011-11-20) ##
|
5
|
+
- support for inline fields (closes [\#2])
|
6
|
+
|
4
7
|
## 1.0.3 (2011-11-11) ##
|
5
8
|
- ruby 1.8 compatibility for hidden fields (closes [\#20])
|
6
9
|
- produce correct labels for radio buttons (closes [\#16])
|
@@ -36,4 +39,5 @@ Twitter Bootstrap Form For Changes
|
|
36
39
|
[\#14]: https://github.com/stouset/twitter_bootstrap_form_for/issues/14
|
37
40
|
[\#7]: https://github.com/stouset/twitter_bootstrap_form_for/issues/7
|
38
41
|
[\#5]: https://github.com/stouset/twitter_bootstrap_form_for/issues/5
|
42
|
+
[\#2]: https://github.com/stouset/twitter_bootstrap_form_for/issues/2
|
39
43
|
[\#1]: https://github.com/stouset/twitter_bootstrap_form_for/issues/1
|
data/README.markdown
CHANGED
@@ -38,6 +38,15 @@ Just Rails. But you were going to use that anyway, weren't you?
|
|
38
38
|
/ input fields with custom add-ons
|
39
39
|
= user.text_field :twitter_id, 'Twitter', :class => 'medium', :add_on => :prepend do
|
40
40
|
%span.add-on @
|
41
|
+
|
42
|
+
/ select fields now have the second parameter as a label
|
43
|
+
= user.date_select :born_on, 'Born on', {}, :class => 'small'
|
44
|
+
|
45
|
+
/ inline inputs are not automatically labeled
|
46
|
+
= user.inline 'Interests' do |inline|
|
47
|
+
#{inline.text_field :interest_1, :class => 'small'},
|
48
|
+
#{inline.text_field :interest_2, :class => 'small'}, and
|
49
|
+
#{inline.text_field :interest_3, :class => 'small'}
|
41
50
|
|
42
51
|
/ group of radio buttons
|
43
52
|
= user.toggles 'Email Preferences' do
|
@@ -66,7 +75,7 @@ the functionality anticipated by Twitter Bootstrap.
|
|
66
75
|
|
67
76
|
## Known Bugs ##
|
68
77
|
|
69
|
-
- inline fields
|
78
|
+
- inline fields don't receive error markup ([issue #28])
|
70
79
|
|
71
80
|
[Twitter Bootstrap]: http://twitter.github.com/bootstrap/
|
72
|
-
[issue #
|
81
|
+
[issue #28]: https://github.com/stouset/twitter_bootstrap_form_for/issues/28
|
@@ -27,16 +27,10 @@ class TwitterBootstrapFormFor::FormBuilder < ActionView::Helpers::FormBuilder
|
|
27
27
|
# +legend+ text.
|
28
28
|
#
|
29
29
|
def inputs(legend = nil, options = {}, &block)
|
30
|
-
# stash the old field_error_proc, then override it temporarily
|
31
|
-
original_field_error_proc = template.field_error_proc
|
32
|
-
template.field_error_proc = lambda {|html_tag, instance| html_tag }
|
33
|
-
|
34
30
|
template.content_tag(:fieldset, options) do
|
35
31
|
template.concat template.content_tag(:legend, legend) unless legend.nil?
|
36
32
|
block.call
|
37
33
|
end
|
38
|
-
ensure
|
39
|
-
template.field_error_proc = original_field_error_proc
|
40
34
|
end
|
41
35
|
|
42
36
|
#
|
@@ -45,7 +39,7 @@ class TwitterBootstrapFormFor::FormBuilder < ActionView::Helpers::FormBuilder
|
|
45
39
|
# inside of here, and will not look correct unless they are.
|
46
40
|
#
|
47
41
|
def toggles(label = nil, &block)
|
48
|
-
template.content_tag(:div, :class =>
|
42
|
+
template.content_tag(:div, :class => 'clearfix') do
|
49
43
|
template.concat template.content_tag(:label, label)
|
50
44
|
template.concat template.content_tag(:div, :class => "input") {
|
51
45
|
template.content_tag(:ul, :class => "inputs-list") { block.call }
|
@@ -70,6 +64,26 @@ class TwitterBootstrapFormFor::FormBuilder < ActionView::Helpers::FormBuilder
|
|
70
64
|
super value, options
|
71
65
|
end
|
72
66
|
|
67
|
+
#
|
68
|
+
# Creates bootstrap wrapping before yielding a plain old rails builder
|
69
|
+
# to the supplied block.
|
70
|
+
#
|
71
|
+
def inline(label = nil, &block)
|
72
|
+
template.content_tag(:div, :class => 'clearfix') do
|
73
|
+
template.concat template.content_tag(:label, label) if label.present?
|
74
|
+
template.concat template.content_tag(:div, :class => 'input') {
|
75
|
+
template.content_tag(:div, :class => 'inline-inputs') do
|
76
|
+
self.fields_for(
|
77
|
+
self.object_name,
|
78
|
+
self.object,
|
79
|
+
self.options.merge(:builder => ActionView::Helpers::FormBuilder),
|
80
|
+
&block
|
81
|
+
)
|
82
|
+
end
|
83
|
+
}
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
73
87
|
INPUTS.each do |input|
|
74
88
|
define_method input do |attribute, *args, &block|
|
75
89
|
options = args.extract_options!
|
@@ -155,7 +169,7 @@ class TwitterBootstrapFormFor::FormBuilder < ActionView::Helpers::FormBuilder
|
|
155
169
|
# This merges any +classes+ passed in.
|
156
170
|
#
|
157
171
|
def _wrapper_classes(attribute, *classes)
|
158
|
-
classes.tap do |klasses|
|
172
|
+
classes.compact.tap do |klasses|
|
159
173
|
klasses.push 'error' if self.errors_on?(attribute)
|
160
174
|
end.join(' ')
|
161
175
|
end
|
@@ -9,8 +9,22 @@ module TwitterBootstrapFormFor::FormHelpers
|
|
9
9
|
options[:builder] = TwitterBootstrapFormFor::FormBuilder
|
10
10
|
|
11
11
|
# call the original method with our overridden options
|
12
|
-
|
12
|
+
_override_field_error_proc do
|
13
|
+
send method, record, *(args << options), &block
|
14
|
+
end
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
BLANK_FIELD_ERROR_PROC = lambda {|input, _| input }
|
22
|
+
|
23
|
+
def _override_field_error_proc
|
24
|
+
original_field_error_proc = self.field_error_proc
|
25
|
+
self.field_error_proc = BLANK_FIELD_ERROR_PROC
|
26
|
+
yield
|
27
|
+
ensure
|
28
|
+
self.field_error_proc = original_field_error_proc
|
29
|
+
end
|
16
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter_bootstrap_form_for
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
16
|
-
requirement: &
|
16
|
+
requirement: &70325744527840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70325744527840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: actionpack
|
27
|
-
requirement: &
|
27
|
+
requirement: &70325744526200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '3'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70325744526200
|
36
36
|
description: A custom Rails FormBuilder that assumes the use of Twitter Bootstrap
|
37
37
|
email:
|
38
38
|
- stephen@touset.org
|