effective_style_guide 1.3.7 → 1.3.8
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18b0f17114ce0854f32a746049cb25c1b79fc53b
|
4
|
+
data.tar.gz: 120d946bd4e11ce36b5ae2ece495d85b341013cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d59129ea4789365675891e6e0cd4bbbedb6d0844e446e63511620515946fc1afefb1b3ca86002457a2011e119bf20d4fbcd9dc2402969b2a655243888ffef9c4
|
7
|
+
data.tar.gz: 4fce52f5ca8b65936aaba06c563c127c8b1369b62daf8a5e02ba815ac28289d1470b6a70fec2d675032ef77248980f5b6931d47a65a43f25cf6ea97029a52f7b
|
data/README.md
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Ensure that your custom CSS theme looks good with all Twitter Bootstrap3 html components.
|
4
4
|
|
5
|
-
Creates a
|
5
|
+
Creates a `/styleguide` page that renders the correct HTML for all bootstrap3 (v3.2.0) components.
|
6
6
|
|
7
7
|
Use this page to ensure that your custom CSS theme looks good with the bootstrap3 components.
|
8
8
|
|
9
|
-
Create a _my_component.html.erb partial in the /effective/style_guide
|
9
|
+
Create a `_my_component.html.erb` partial in the `views/effective/style_guide/` directory to add your own custom components.
|
10
10
|
|
11
11
|
Works with simple_form to ensure that the generated form HTML matches the bootstrap3 HTML.
|
12
12
|
|
@@ -42,197 +42,34 @@ Visit `/styleguide` to test how the bootstrap3 components look with your site's
|
|
42
42
|
|
43
43
|
### Add Custom Components
|
44
44
|
|
45
|
-
Create a _my_component.html.erb partial in the
|
45
|
+
Create a `_my_component.html.erb` partial in the `views/effective/style_guide/` directory.
|
46
46
|
|
47
|
-
This file will be automatically detected and included in the
|
47
|
+
This file will be automatically detected and included in the `/styleguide` page.
|
48
48
|
|
49
49
|
|
50
50
|
### simple_form
|
51
51
|
|
52
52
|
simple_form (https://github.com/plataformatec/simple_form) is a pretty good FormBuilder gem.
|
53
53
|
|
54
|
-
At this time of writing, the latest simple_form v3.2.1 includes a bootstrap3 config/initializer that
|
54
|
+
At this time of writing, the latest simple_form v3.2.1 includes a bootstrap3 config/initializer that generates correct bootstrap3 form HTML (as per bootstrap's example page).
|
55
55
|
|
56
|
-
|
56
|
+
It does a great job with vertical and inline forms, but needs a little bit of help with the horizontal forms.
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
Due to these limitations, we have created our own custom config/initializer that does generate the correct bootstrap3 form HTML.
|
61
|
-
|
62
|
-
Here is the initializer:
|
58
|
+
Add the following snippet to the bottom of the `config/initializers/simple_form_bootstrap.rb` file:
|
63
59
|
|
64
60
|
```ruby
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
:boolean => :vertical_boolean,
|
78
|
-
:check_boxes => :vertical_radio_and_checkboxes,
|
79
|
-
:radio_buttons => :vertical_radio_and_checkboxes,
|
80
|
-
|
81
|
-
:horizontal_form => {
|
82
|
-
:boolean => :horizontal_boolean,
|
83
|
-
:check_boxes => :horizontal_radio_and_checkboxes,
|
84
|
-
:radio_buttons => :horizontal_radio_and_checkboxes
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
89
|
-
b.use :html5
|
90
|
-
b.use :placeholder
|
91
|
-
b.optional :maxlength
|
92
|
-
b.optional :pattern
|
93
|
-
b.optional :min_max
|
94
|
-
b.optional :readonly
|
95
|
-
b.use :label, class: 'control-label'
|
96
|
-
|
97
|
-
b.use :input, class: 'form-control'
|
98
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
99
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
100
|
-
end
|
101
|
-
|
102
|
-
config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
103
|
-
b.use :html5
|
104
|
-
b.use :placeholder
|
105
|
-
b.optional :maxlength
|
106
|
-
b.optional :readonly
|
107
|
-
b.use :label, class: 'control-label'
|
108
|
-
|
109
|
-
b.use :input
|
110
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
111
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
112
|
-
end
|
113
|
-
|
114
|
-
config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
115
|
-
b.use :html5
|
116
|
-
b.optional :readonly
|
117
|
-
|
118
|
-
b.wrapper tag: 'div', class: 'checkbox' do |ba|
|
119
|
-
ba.use :label_input
|
120
|
-
end
|
121
|
-
|
122
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
123
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
124
|
-
end
|
125
|
-
|
126
|
-
config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
127
|
-
b.use :html5
|
128
|
-
b.optional :readonly
|
129
|
-
b.use :label_input, :class => 'control-label'
|
130
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
131
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
132
|
-
end
|
133
|
-
|
134
|
-
config.wrappers :vertical_inline_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
135
|
-
b.use :html5
|
136
|
-
b.optional :readonly
|
137
|
-
|
138
|
-
b.use :label, class: 'control-label'
|
139
|
-
|
140
|
-
b.wrapper tag: 'div', class: 'inline-radio-or-checkboxes' do |ba|
|
141
|
-
ba.use :input
|
142
|
-
end
|
143
|
-
|
144
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
145
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
146
|
-
end
|
147
|
-
|
148
|
-
config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
149
|
-
b.use :html5
|
150
|
-
b.use :placeholder
|
151
|
-
b.optional :maxlength
|
152
|
-
b.optional :pattern
|
153
|
-
b.optional :min_max
|
154
|
-
b.optional :readonly
|
155
|
-
b.use :label, class: 'col-sm-3 control-label'
|
156
|
-
|
157
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
158
|
-
ba.use :input, class: 'form-control'
|
159
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
160
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
165
|
-
b.use :html5
|
166
|
-
b.use :placeholder
|
167
|
-
b.optional :maxlength
|
168
|
-
b.optional :readonly
|
169
|
-
b.use :label, class: 'col-sm-3 control-label'
|
170
|
-
|
171
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
172
|
-
ba.use :input
|
173
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
174
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
179
|
-
b.use :html5
|
180
|
-
b.optional :readonly
|
181
|
-
|
182
|
-
b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
|
183
|
-
wr.wrapper tag: 'div', class: 'checkbox' do |ba|
|
184
|
-
ba.use :label_input, class: 'col-sm-9'
|
185
|
-
end
|
186
|
-
|
187
|
-
wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
188
|
-
wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
193
|
-
b.use :html5
|
194
|
-
b.optional :readonly
|
195
|
-
|
196
|
-
b.use :label, class: 'col-sm-3 control-label'
|
197
|
-
|
198
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
199
|
-
ba.use :input
|
200
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
201
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
config.wrappers :horizontal_inline_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
206
|
-
b.use :html5
|
207
|
-
b.optional :readonly
|
208
|
-
|
209
|
-
b.use :label, class: 'col-sm-3 control-label'
|
210
|
-
|
211
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
212
|
-
ba.wrapper tag: 'div', :class => 'inline-radio-or-checkboxes' do |bb|
|
213
|
-
bb.use :input
|
214
|
-
end
|
215
|
-
|
216
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
217
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
222
|
-
b.use :html5
|
223
|
-
b.use :placeholder
|
224
|
-
b.optional :maxlength
|
225
|
-
b.optional :pattern
|
226
|
-
b.optional :min_max
|
227
|
-
b.optional :readonly
|
228
|
-
b.use :label, class: 'sr-only'
|
229
|
-
|
230
|
-
b.use :input, class: 'form-control'
|
231
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
232
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
233
|
-
end
|
234
|
-
|
235
|
-
end
|
61
|
+
### Custom as per Effective Style Guide ###
|
62
|
+
config.browser_validations = true
|
63
|
+
|
64
|
+
config.wrapper_mappings[:horizontal_form] = {
|
65
|
+
check_boxes: :horizontal_radio_and_checkboxes,
|
66
|
+
radio_buttons: :horizontal_radio_and_checkboxes,
|
67
|
+
file: :horizontal_file_input,
|
68
|
+
boolean: :horizontal_boolean,
|
69
|
+
datetime: :horizontal_radio_and_checkboxes,
|
70
|
+
date: :horizontal_radio_and_checkboxes,
|
71
|
+
time: :horizontal_radio_and_checkboxes
|
72
|
+
}
|
236
73
|
```
|
237
74
|
|
238
75
|
To create a bootstrap3 vertical_form:
|
@@ -246,7 +83,7 @@ To create a bootstrap3 vertical_form:
|
|
246
83
|
To create a bootstrap3 horizontal_form:
|
247
84
|
|
248
85
|
```ruby
|
249
|
-
= simple_form_for(@post, :
|
86
|
+
= simple_form_for(@post, html: {class: 'form-horizontal'}, wrapper: :horizontal_form, wrapper_mappings: SimpleForm.wrapper_mappings[:horizontal_form]) do |f|
|
250
87
|
# one or more inputs....
|
251
88
|
.form-group
|
252
89
|
.col-sm-offset-3.col-sm-9= f.button :submit
|
@@ -255,39 +92,11 @@ To create a bootstrap3 horizontal_form:
|
|
255
92
|
To create a bootstrap3 inline_form:
|
256
93
|
|
257
94
|
```ruby
|
258
|
-
= simple_form_for(@post, :
|
95
|
+
= simple_form_for(@post, html: {class: 'form-inline'}, wrapper: :inline_form) do |f|
|
259
96
|
# one or more inputs....
|
260
97
|
= f.button :submit
|
261
98
|
```
|
262
99
|
|
263
|
-
In all 3 of the above examples, the proper wrappers will be used to generate the correct HTML for every type of form field.
|
264
|
-
|
265
|
-
This includes the frustrating booleans, radio and checkbox groups.
|
266
|
-
|
267
|
-
One gotcha, if you'd like to use the 'Inline checkboxes and radios' component, you will need to pass a wrapper to the f.input.
|
268
|
-
|
269
|
-
For a vertical_form or inline_form:
|
270
|
-
|
271
|
-
```ruby
|
272
|
-
= f.input :favorite_drink, :as => :check_boxes, :wrapper => :vertical_inline_radio_and_checkboxes, :collection => ['Water', 'Tea', 'Coffee', 'Soda']
|
273
|
-
```
|
274
|
-
|
275
|
-
For a horizontal_form:
|
276
|
-
|
277
|
-
```ruby
|
278
|
-
= f.input :favorite_drink, :as => :check_boxes, :wrapper => :horizontal_inline_radio_and_checkboxes, :collection => ['Water', 'Tea', 'Coffee', 'Soda']
|
279
|
-
```
|
280
|
-
|
281
|
-
And add the following CSS:
|
282
|
-
|
283
|
-
```css
|
284
|
-
form .inline-radio-or-checkboxes > span {
|
285
|
-
display: inline-block;
|
286
|
-
margin: 0px 10px 0px 0px;
|
287
|
-
}
|
288
|
-
```
|
289
|
-
|
290
|
-
|
291
100
|
## Authorization
|
292
101
|
|
293
102
|
All authorization checks are handled via the config.authorization_method found in the config/initializers/ file.
|
@@ -7,7 +7,7 @@ module Effective
|
|
7
7
|
end
|
8
8
|
|
9
9
|
ATTRIBUTES = [
|
10
|
-
:id, :title, :email, :password, :number, :range, :category, :content,
|
10
|
+
:id, :title, :email, :password, :number, :range, :category, :content, :phone,
|
11
11
|
:archived, :drink, :food, :price, :updated_at, :publish_on, :static_text
|
12
12
|
]
|
13
13
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= simple_form_for Effective::StyleGuide.new(), :html => {:class => 'form-horizontal'}, :wrapper => :horizontal_form, :wrapper_mappings => SimpleForm.wrapper_mappings[:horizontal_form], :url => '/' do |f|
|
1
|
+
= simple_form_for Effective::StyleGuide.new(), :html => {:class => 'form-horizontal'}, :wrapper => :horizontal_form, :wrapper_mappings => (SimpleForm.wrapper_mappings[:horizontal_form] || SimpleForm.wrapper_mappings), :url => '/' do |f|
|
2
2
|
= f.input :title, :hint => 'please enter a title (this is a standard text field)'
|
3
3
|
= f.input :email, :hint => 'please enter an email address (this is an email field)'
|
4
4
|
= f.input :password, :hint => 'please enter a password (this is a password field)'
|
@@ -31,20 +31,18 @@
|
|
31
31
|
:collection => EffectiveStyleGuide.colors,
|
32
32
|
:hint => 'please select a category (this is a select field)'
|
33
33
|
|
34
|
-
= f.input :content, :hint => 'please enter a whole bunch of content (this is a textarea)'
|
35
|
-
= f.input :archived, :hint => 'please select true or false (this is a boolean field)'
|
34
|
+
= f.input :content, :as => :text, :hint => 'please enter a whole bunch of content (this is a textarea)'
|
35
|
+
= f.input :archived, :as => :boolean, :hint => 'please select true or false (this is a boolean field)'
|
36
36
|
|
37
37
|
= f.input :drink,
|
38
38
|
:as => :check_boxes,
|
39
39
|
:collection => EffectiveStyleGuide.foods,
|
40
|
-
:hint => 'please select one or more drinks (this is a check_boxes
|
41
|
-
:wrapper => :horizontal_radio_and_checkboxes
|
40
|
+
:hint => 'please select one or more drinks (this is a check_boxes field)'
|
42
41
|
|
43
42
|
= f.input :food,
|
44
43
|
:as => :radio_buttons,
|
45
44
|
:collection => EffectiveStyleGuide.foods,
|
46
|
-
:hint => 'please select one food (this is a radio_buttons
|
47
|
-
:wrapper => :horizontal_radio_and_checkboxes
|
45
|
+
:hint => 'please select one food (this is a radio_buttons field)'
|
48
46
|
|
49
47
|
- if defined?(EffectiveAssets)
|
50
48
|
= f.input :files,
|
@@ -67,8 +65,14 @@
|
|
67
65
|
= f.input :updated_at, :as => :datetime, :hint => 'please enter a date and time (this is a datetime field)'
|
68
66
|
= f.input :publish_on, :as => :date, :hint => 'please enter a date (this is a date field)'
|
69
67
|
|
70
|
-
- if defined?(
|
71
|
-
= f.input :
|
68
|
+
- if defined?(EffectiveFormInputs)
|
69
|
+
= f.input :phone,
|
70
|
+
:as => :effective_tel,
|
71
|
+
:hint => 'please enter a phone number (this is an effective_tel field from EffectiveFormInputs'
|
72
|
+
|
73
|
+
= f.input :price,
|
74
|
+
:as => :effective_price,
|
75
|
+
:hint => 'please enter a price (this is an effective_price field from EffectiveFormInputs'
|
72
76
|
|
73
77
|
.form-group
|
74
78
|
.col-sm-offset-3.col-sm-9
|
@@ -79,7 +83,7 @@
|
|
79
83
|
%hr
|
80
84
|
.inline-example Form Horizontal Invalid State
|
81
85
|
|
82
|
-
= simple_form_for Effective::StyleGuide.new().tap { |s| s.valid? }, :html => {:class => 'form-horizontal'}, :wrapper => :horizontal_form, :wrapper_mappings => SimpleForm.wrapper_mappings[:horizontal_form], :url => '/' do |f|
|
86
|
+
= simple_form_for Effective::StyleGuide.new().tap { |s| s.valid? }, :html => {:class => 'form-horizontal'}, :wrapper => :horizontal_form, :wrapper_mappings => (SimpleForm.wrapper_mappings[:horizontal_form] || SimpleForm.wrapper_mappings), :url => '/' do |f|
|
83
87
|
= f.input :title, :hint => 'please enter a title (this is a standard text field)'
|
84
88
|
= f.input :email, :hint => 'please enter an email address (this is an email field)'
|
85
89
|
= f.input :password, :hint => 'please enter a password (this is a password field)'
|
@@ -112,20 +116,18 @@
|
|
112
116
|
:collection => EffectiveStyleGuide.colors,
|
113
117
|
:hint => 'please select a category (this is a select field)'
|
114
118
|
|
115
|
-
= f.input :content, :hint => 'please enter a whole bunch of content (this is a textarea)'
|
116
|
-
= f.input :archived, :
|
119
|
+
= f.input :content, :as => :text, :hint => 'please enter a whole bunch of content (this is a textarea)'
|
120
|
+
= f.input :archived, :as => :boolean, :hint => 'please select true or false (this is a boolean field)'
|
117
121
|
|
118
122
|
= f.input :drink,
|
119
123
|
:as => :check_boxes,
|
120
124
|
:collection => EffectiveStyleGuide.foods,
|
121
|
-
:hint => 'please select one or more drinks (this is a check_boxes
|
122
|
-
:wrapper => :horizontal_radio_and_checkboxes
|
125
|
+
:hint => 'please select one or more drinks (this is a check_boxes field)'
|
123
126
|
|
124
127
|
= f.input :food,
|
125
128
|
:as => :radio_buttons,
|
126
129
|
:collection => EffectiveStyleGuide.foods,
|
127
|
-
:hint => 'please select one food (this is a radio_buttons
|
128
|
-
:wrapper => :horizontal_radio_and_checkboxes
|
130
|
+
:hint => 'please select one food (this is a radio_buttons field)'
|
129
131
|
|
130
132
|
- if defined?(EffectiveAssets)
|
131
133
|
= f.input :files,
|
@@ -148,8 +150,14 @@
|
|
148
150
|
= f.input :updated_at, :as => :datetime, :hint => 'please enter a date and time (this is a datetime field)'
|
149
151
|
= f.input :publish_on, :as => :date, :hint => 'please enter a date (this is a date field)'
|
150
152
|
|
151
|
-
- if defined?(
|
152
|
-
= f.input :
|
153
|
+
- if defined?(EffectiveFormInputs)
|
154
|
+
= f.input :phone,
|
155
|
+
:as => :effective_tel,
|
156
|
+
:hint => 'please enter a phone number (this is an effective_tel field from EffectiveFormInputs)'
|
157
|
+
|
158
|
+
= f.input :price,
|
159
|
+
:as => :effective_price,
|
160
|
+
:hint => 'please enter a price (this is an effective_price field from EffectiveFormInputs)'
|
153
161
|
|
154
162
|
.form-group
|
155
163
|
.col-sm-offset-3.col-sm-9
|
@@ -38,12 +38,12 @@
|
|
38
38
|
= f.input :drink,
|
39
39
|
:as => :check_boxes,
|
40
40
|
:collection => EffectiveStyleGuide.foods,
|
41
|
-
:hint => 'please select one or more drinks (this is a check_boxes
|
41
|
+
:hint => 'please select one or more drinks (this is a check_boxes field)'
|
42
42
|
|
43
43
|
= f.input :food,
|
44
44
|
:as => :radio_buttons,
|
45
45
|
:collection => EffectiveStyleGuide.foods,
|
46
|
-
:hint => 'please select one food (this is a radio_buttons
|
46
|
+
:hint => 'please select one food (this is a radio_buttons field)'
|
47
47
|
|
48
48
|
- if defined?(EffectiveAssets)
|
49
49
|
= f.input :files,
|
@@ -66,8 +66,14 @@
|
|
66
66
|
= f.input :updated_at, :as => :datetime, :hint => 'please enter a date and time (this is a datetime field)'
|
67
67
|
= f.input :publish_on, :as => :date, :hint => 'please enter a date (this is a date field)'
|
68
68
|
|
69
|
-
- if defined?(
|
70
|
-
= f.input :
|
69
|
+
- if defined?(EffectiveFormInputs)
|
70
|
+
= f.input :phone,
|
71
|
+
:as => :effective_tel,
|
72
|
+
:hint => 'please enter a phone number (this is an effective_tel field from EffectiveFormInputs)'
|
73
|
+
|
74
|
+
= f.input :price,
|
75
|
+
:as => :effective_price,
|
76
|
+
:hint => 'please enter a price (this is an effective_price field from EffectiveFormInputs)'
|
71
77
|
|
72
78
|
= f.button :submit, 'Save', class: 'btn btn-primary'
|
73
79
|
= f.button :submit, 'Save and Add New'
|
@@ -142,8 +148,14 @@
|
|
142
148
|
= f.input :updated_at, :as => :datetime, :hint => 'please enter a date and time (this is a datetime field)'
|
143
149
|
= f.input :publish_on, :as => :date, :hint => 'please enter a date (this is a date field)'
|
144
150
|
|
145
|
-
- if defined?(
|
146
|
-
= f.input :
|
151
|
+
- if defined?(EffectiveFormInputs)
|
152
|
+
= f.input :phone,
|
153
|
+
:as => :effective_tel,
|
154
|
+
:hint => 'please enter a phone number (this is an effective_tel field from EffectiveFormInputs)'
|
155
|
+
|
156
|
+
= f.input :price,
|
157
|
+
:as => :effective_price,
|
158
|
+
:hint => 'please enter a price (this is an effective_price field from EffectiveFormInputs)'
|
147
159
|
|
148
160
|
= f.button :submit, 'Save', class: 'btn btn-primary'
|
149
161
|
= f.button :submit, 'Save and Add New'
|