Skip to content
Newer
Older
100644 480 lines (351 sloc) 18.9 KB
420b4ce @justinfrench sick of updating the README with every version bump :)
authored Apr 22, 2009
1 h1. Formtastic
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
2
3 Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications.
4
09d957d textilized the README so that it looks pretty pretty on GitHub
Justin French authored Apr 29, 2008
5 h2. The Story
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
6
2d4a72b @justinfrench big update to the README
authored Feb 16, 2009
7 One day, I finally had enough, so I opened up my text editor, and wrote a DSL for how I'd like to author forms:
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
8
09d957d textilized the README so that it looks pretty pretty on GitHub
Justin French authored Apr 29, 2008
9 <pre>
7e3874a @justinfrench trying to fix README formatting of <'s at the start of lines
authored Aug 13, 2008
10 <% semantic_form_for @article do |form| %>
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
11
0b370ba @justinfrench Renamed input_field_set() to just inputs() and added a shorthand vers…
authored Jan 6, 2009
12 <% form.inputs :name => "Basic" do %>
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
13 <%= form.input :title %>
14 <%= form.input :body %>
1db292f @sprsquish update README to reflect association attribute changes
sprsquish authored Feb 28, 2009
15 <%= form.input :section %>
16 <%= form.input :publication_state, :as => :radio %>
9997ce6 @josevalim Added more information about inputs :for in README.
josevalim authored Mar 7, 2009
17 <%= form.input :category %>
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
18 <%= form.input :allow_comments, :label => "Allow commenting on this article" %>
19 <% end %>
20
0b370ba @justinfrench Renamed input_field_set() to just inputs() and added a shorthand vers…
authored Jan 6, 2009
21 <% form.inputs :name => "Advanced" do %>
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
22 <%= form.input :keywords, :required => false, :hint => "Example: ruby, rails, forms" %>
7e3874a @justinfrench trying to fix README formatting of <'s at the start of lines
authored Aug 14, 2008
23 <%= form.input :extract, :required => false %>
24 <%= form.input :description, :required => false %>
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
25 <%= form.input :url_title, :required => false %>
7e3874a @justinfrench trying to fix README formatting of <'s at the start of lines
authored Aug 14, 2008
26 <% end %>
27
05ae54d @josevalim Fixed nested attributes example in README
josevalim authored Mar 22, 2009
28 <% form.inputs :name => "Author", :for => :author do |author_form| %>
29 <%= author_form.input :first_name %>
30 <%= author_form.input :last_name %>
9997ce6 @josevalim Added more information about inputs :for in README.
josevalim authored Mar 7, 2009
31 <% end %>
32
353618e @markmansour Extending Formtastic can be done by overriding the semantic_form_buil…
markmansour authored Jan 13, 2009
33 <% form.buttons do %>
34 <%= form.commit_button %>
7e3874a @justinfrench trying to fix README formatting of <'s at the start of lines
authored Aug 14, 2008
35 <% end %>
09d957d textilized the README so that it looks pretty pretty on GitHub
Justin French authored Apr 29, 2008
36
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
37 <% end %>
09d957d textilized the README so that it looks pretty pretty on GitHub
Justin French authored Apr 29, 2008
38 </pre>
39
6734cfd @justinfrench sme typos and cleanups in the readme
authored Jul 21, 2008
40 I also wrote the accompanying HTML output I expected, favoring something very similar to the fieldsets, lists and other semantic elements Aaron Gustafson presented in "Learning to Love Forms":http://www.slideshare.net/AaronGustafson/learning-to-love-forms-web-directions-south-07, hacking together enough Ruby to prove it could be done.
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
41
42
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
43 h2. It's better than _SomeOtherFormBuilder_ because...
44
f02b136 @justinfrench rearranged and beefed up the 'it's better than...' README section
authored Mar 1, 2009
45 * it can handle @belongs_to@ associations (like Post belongs_to :author), rendering a select or set of radio inputs with choices from the parent model
46 * it can handle @has_many@ and @has_and_belongs_to_many@ associations (like Post has_many :tags), rendering a multi-select with choices from the child models
47 * it's Rails 2.3-ready (including nested forms)
48 * it has internationalization (I18n)!
49 * it's _really_ quick to get started with a basic form in place (4 lines), then go back to add in more detail if you need it
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
50 * there's heaps of elements, id and class attributes for you to hook in your CSS and JS
f9b8879 @justinfrench fix README typo
authored Mar 4, 2009
51 * it handles real world stuff like inline hints, inline error messages & help text
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
52 * it doesn't hijack or change any of the standard Rails form inputs, so you can still use them as expected (even mix and match)
f02b136 @justinfrench rearranged and beefed up the 'it's better than...' README section
authored Mar 1, 2009
53 * it's got absolutely awesome spec coverage
54 * there's a bunch of people using and working on it (it's not just one developer building half a solution)
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
55
56
15e0bd9 updated the README a little to match last night's slides
Justin French authored May 30, 2008
57 h2. Why?
58
59 * web apps = lots of forms
60 * forms are so friggin' boring to code
61 * semantically rich & accessible forms really are possible
62 * the "V" is way behind the "M" and "C" in Rails' MVC – it's the ugly sibling
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
63 * best practices and common patterns have to start somewhere
15e0bd9 updated the README a little to match last night's slides
Justin French authored May 29, 2008
64 * i need a challenge
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
65
66
15e0bd9 updated the README a little to match last night's slides
Justin French authored May 29, 2008
67 h2. Opinions
68
69 * it should be easier to do things the right way than the wrong way
70 * sometimes _more mark-up_ is better
71 * elements and attribute hooks are _gold_ for stylesheet authors
72 * make the common things we do easy, yet still ensure uncommon things are still possible
73
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
74
3dd6455 @justinfrench Link to RDoc URL in README
authored Jul 3, 2009
75 h2. Documentation
76
77 RDoc documentation _should_ be automatically generated after each commit and made available on the "rdoc.info website":http://rdoc.info/projects/justinfrench/formtastic.
78
79
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
80 h2. Installation
81
2bf5b23 @justinfrench updated README to reflect gemcutter gem source
authored Oct 21, 2009
82 The gem is hosted on gemcutter, so if you haven't already, add it as a gem source:
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
83
84 <pre>
2bf5b23 @justinfrench updated README to reflect gemcutter gem source
authored Oct 21, 2009
85 sudo gem sources -a http://gemcutter.org/
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
86 </pre>
87
2bf5b23 @justinfrench updated README to reflect gemcutter gem source
authored Oct 21, 2009
88 Then install the Formtastic gem:q
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
89
90 <pre>
2bf5b23 @justinfrench updated README to reflect gemcutter gem source
authored Oct 21, 2009
91 sudo gem install formtastic
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
92 </pre>
93
2bf5b23 @justinfrench updated README to reflect gemcutter gem source
authored Oct 21, 2009
94 Optionally, run @./script/generate formtastic@ to copy the following files into your app:
fc29eaa @justinfrench Combined the "formtastic_config" and "formtastic_stylesheets" generat…
authored Oct 11, 2009
95
96 * config/initializers/formtastic.rb (a commented out Formtastic config initializer)
97 * public/stylesheets/formtastic.css
98 * public/stylesheets/formtastic_changes.css
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
99
5c1ce48 @justinfrench moved the stylesheets stuff up with installation
authored Oct 21, 2009
100 A proof-of-concept stylesheet is provided which you can include in your layout. Customization is best achieved by overriding these styles in an additional stylesheet so that the Formtastic styles can be updated without clobbering your changes. If you want to use these stylesheets, add both to your layout:
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
101
5c1ce48 @justinfrench moved the stylesheets stuff up with installation
authored Oct 21, 2009
102 <pre>
103 <%= stylesheet_link_tag "formtastic" %>
104 <%= stylesheet_link_tag "formtastic_changes" %>
105 </pre>
2526d2c @justinfrench Going back to generators instead of Rake tasks for copying stylesheet…
authored Oct 11, 2009
106
c89e985 @justinfrench updating README with gem/plugin installation instructions
authored Mar 8, 2009
107
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
108 h2. Usage
109
110 Forms are really boring to code... you want to get onto the good stuff as fast as possible.
111
60da134 @justinfrench small README fix since we changed which fields are rendered by default
authored Apr 19, 2009
112 This renders a set of inputs (one for _most_ columns in the database table, and one for each ActiveRecord belongs_to association), followed by a submit button:
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
113
114 <pre>
115 <% semantic_form_for @user do |form| %>
116 <%= form.inputs %>
117 <%= form.buttons %>
118 <% end %>
119 </pre>
120
121 If you want to specify the order of the fields, skip some of the fields or even add in fields that Formtastic couldn't detect, you can pass in a list of field names to @inputs@ and list of button names to @buttons@:
122
123 <pre>
124 <% semantic_form_for @user do |form| %>
125 <%= form.inputs :title, :body, :section, :categories, :created_at %>
126 <%= form.buttons :commit %>
127 <% end %>
128 </pre>
129
130 If you want control over the input type Formtastic uses for each field, you can expand the @inputs@ and @buttons@ blocks. This specifies the :section input should be a set of radio buttons (rather than the default select box), and that the :created_at field should be a string (rather than the default datetime selects):
131
132 <pre>
133 <% semantic_form_for @post do |form| %>
134 <% form.inputs do %>
135 <%= form.input :title %>
136 <%= form.input :body %>
137 <%= form.input :section, :as => :radio %>
138 <%= form.input :categories %>
139 <%= form.input :created_at, :as => :string %>
140 <% end %>
141 <% form.buttons do %>
142 <%= form.commit_button %>
143 <% end %>
144 <% end %>
145 </pre>
146
a45853c @justinfrench small README typo
authored Apr 19, 2009
147 If you want to customize the label text, or render some hint text below the field, specify which fields are required/optional, or break the form into two fieldsets, the DSL is pretty comprehensive:
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
148
149 <pre>
150 <% semantic_form_for @post do |form| %>
151 <% form.inputs :name => "Basic", :id => "basic" do %>
152 <%= form.input :title %>
153 <%= form.input :body %>
154 <% end %>
155 <% form.inputs :name => "Advanced Options", :id => "advanced" do %>
156 <%= form.input :slug, :label => "URL Title", :hint => "Created automatically if left blank", :required => false %>
157 <%= form.input :section, :as => :radio %>
158 <%= form.input :user, :label => "Author", :label_method => :full_name, %>
159 <%= form.input :categories, :required => false %>
160 <%= form.input :created_at, :as => :string, :label => "Publication Date", :required => false %>
161 <% end %>
162 <% form.buttons do %>
163 <%= form.commit_button %>
164 <% end %>
165 <% end %>
166 </pre>
167
8cbbf04 @josevalim Added button_html to customize buttons.
josevalim authored Apr 12, 2009
168
9997ce6 @josevalim Added more information about inputs :for in README.
josevalim authored Mar 7, 2009
169 Nested forms (Rails 2.3) are also supported. You can do it in the Rails way:
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
170
171 <pre>
05ae54d @josevalim Fixed nested attributes example in README
josevalim authored Mar 22, 2009
172 <% semantic_form_for @post do |form| %>
173 <%= form.inputs :title, :body, :created_at %>
41a6754 @josevalim Another README fix.
josevalim authored Mar 24, 2009
174 <% form.semantic_fields_for :author do |author| %>
05ae54d @josevalim Fixed nested attributes example in README
josevalim authored Mar 22, 2009
175 <%= author.inputs :first_name, :last_name, :name => 'Author' %>
41a6754 @josevalim Another README fix.
josevalim authored Mar 23, 2009
176 <% end %>
05ae54d @josevalim Fixed nested attributes example in README
josevalim authored Mar 22, 2009
177 <%= form.buttons %>
9997ce6 @josevalim Added more information about inputs :for in README.
josevalim authored Mar 7, 2009
178 <% end %>
179 </pre>
180
6fd1bd2 @justinfrench improving the documentation in README
authored Apr 19, 2009
181 Or the Formtastic way with the @:for@ option:
9997ce6 @josevalim Added more information about inputs :for in README.
josevalim authored Mar 7, 2009
182
183 <pre>
05ae54d @josevalim Fixed nested attributes example in README
josevalim authored Mar 22, 2009
184 <% semantic_form_for @post do |form| %>
185 <%= form.inputs :title, :body, :created_at %>
186 <%= form.inputs :first_name, :last_name, :for => :author, :name => "Author" %>
187 <%= form.buttons %>
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
188 <% end %>
189 </pre>
190
6fd1bd2 @justinfrench improving the documentation in README
authored Apr 19, 2009
191 When working in has many association, you can even supply "%i" in your fieldset name that it will be properly interpolated with the child index. For example:
d5e3b0a @josevalim Added nested child nindex support.
josevalim authored Mar 24, 2009
192
193 <pre>
194 <% semantic_form_for @post do |form| %>
195 <%= form.inputs %>
196 <%= form.inputs :name => 'Category #%i', :for => :categories %>
197 <%= form.buttons %>
198 <% end %>
199 </pre>
200
6fd1bd2 @justinfrench improving the documentation in README
authored Apr 19, 2009
201
202 Customize HTML attributes for any input using the @:input_html@ option. Typically his is used to disable the input, change the size of a text field, change the rows in a textarea, or even to add a special class to an input to attach special behavior like "autogrow":http://plugins.jquery.com/project/autogrow textareas:
203
204 <pre>
205 <% semantic_form_for @post do |form| %>
206 <%= form.input :title, :input_html => { :size => 60 } %>
207 <%= form.input :body, :input_html => { :class => 'autogrow' } %>
208 <%= form.input :created_at, :input_html => { :disabled => true } %>
209 <%= form.buttons %>
210 <% end %>
211 </pre>
212
213 The same can be done for buttons with the @:button_html@ option:
214
215 <pre>
216 <% semantic_form_for @post do |form| %>
217 ...
218 <% form.buttons do %>
219 <%= form.commit_button :button_html => { :class => "primary" } %>
220 <% end %>
221 <% end %>
222 </pre>
223
224 Customize the HTML attributes for the @<li>@ wrapper around every input with the @:wrapper_html@ option hash. There's one special key in the hash (:class), which will actually _append_ your string of classes to the existing classes provided by Formtastic (like "required string error")
225
226 <pre>
227 <% semantic_form_for @post do |form| %>
228 <%= form.input :title, :wrapper_html => { :class => "important" } %>
229 <%= form.input :body %>
230 <%= form.input :description, :wrapper_html => { :style => "display:none;" } %>
231 ...
232 <% end %>
233 </pre>
234
235
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
236
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
237 h2. The Available Inputs
238
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
239 * :select (a select menu) - default for ActiveRecord associations (belongs_to, has_many, has_and_belongs_to_many)
be644f7 @josevalim Updated documentation.
josevalim authored May 9, 2009
240 * :check_boxes (a set of check_box inputs) - alternative to :select has_many and has_and_belongs_to_many associations
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
241 * :radio (a set of radio inputs) - alternative to :select for ActiveRecord belongs_to associations
07380d4 @josevalim Added :time_zone input information to README.
josevalim authored Apr 18, 2009
242 * :time_zone (a select input) - default for :string column types with 'time_zone' in the method name
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
243 * :password (a password input) - default for :string column types with 'password' in the method name
244 * :text (a textarea) - default for :text column types
245 * :date (a date select) - default for :date column types
246 * :datetime (a date and time select) - default for :datetime and :timestamp column types
247 * :time (a time select) - default for :time column types
248 * :boolean (a checkbox) - default for :boolean column types
249 * :string (a text field) - default for :string column types
250 * :numeric (a text field, like string) - default for :integer, :float and :decimal column types
945b76c @sprsquish Add detection for Paperclip and AttachmentFu attributes.
sprsquish authored Feb 16, 2009
251 * :file (a file field) - default for paperclip or attachment_fu attributes
8239478 @justinfrench Added :as => :country as a new input option (default for :string colu…
authored May 12, 2009
252 * :country (a select menu of country names) - default for :string columns named "country", requires a country_select plugin to be installed
2e9e7c5 @josevalim Added :as => :hidden support.
josevalim authored May 20, 2009
253 * :hidden (a hidden field) - creates a hidden field (added for compatibility)
8239478 @justinfrench Added :as => :country as a new input option (default for :string colu…
authored May 11, 2009
254
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
255
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
256 The documentation is pretty good for each of these (what it does, what the output is, what the options are, etc) so go check it out.
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
257
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 3, 2009
258 h2. Internationalization (I18n)
259
260 Formtastic got some neat I18n-features. ActiveRecord object names and attributes are, by default, taken from calling @object.human_name and @object.human_attribute_name(attr) respectively. There are a few words specific to Formtastic that can be translated. See lib/locale/en.yml for more information.
261
71ef99f @justinfrench nuked the configuration copy/paste from the README, linked to the gen…
authored Oct 21, 2009
262
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
263 h3. Label/Hint-localization
264
265 Formtastic supports localized *labels* and *hints* using the I18n API for more advanced usage. Your forms can now be DRYer and more flexible than ever, and still fully localized. This is how:
266
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
267 Basic localization (labels only, with ActiveRecord):
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
268
269 <pre>
270 <% semantic_form_for @post do |form| %>
271 <%= form.input :title %> # => :label => I18n.t('activerecord.attributes.user.title') or 'Title'
272 <%= form.input :body %> # => :label => I18n.t('activerecord.attributes.user.body') or 'Body'
273 <%= form.input :section %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
274 <% end %>
275 </pre>
276
277 *Note:* This is perfectly fine if you just want your labels to be translated using *ActiveRecord I18n attribute translations*, and you don't use input hints. But what if you do? And what if you don't want same labels in all forms?
278
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
279 Enhanced localization (labels + hints + titles/legends, with Formtastic):
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
280
281 1. Enable I18n lookups by default (@config/initializers/formtastic.rb@):
282
283 <pre>
284 Formtastic::SemanticFormBuilder.i18n_lookups_by_default = true
285 </pre>
286
287 2. Add some cool label-translations/variants (@config/locale/en.yml@):
288
289 <pre>
290 en:
291 formtastic:
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
292 titles:
293 post_details: "Post details"
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
294 labels:
295 post:
296 title: "Choose a title..."
297 body: "Write something..."
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
298 edit:
299 title: "Edit title"
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
300 hints:
301 post:
302 title: "Choose a good title for you post."
303 body: "Write something inspiring here."
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
304 actions:
305 create: "Create my {{model}}"
306 update: "Save changes"
307 dummie: "Launch!"
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
308 </pre>
309
310 *Note:* We are using English here still, but you get the point.
311
312 3. ...and now you'll get:
313
314 <pre>
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
315 <% semantic_form_for Post.new do |form| %>
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
316 <% inputs do %>
317 <%= form.input :title %> # => :label => "Choose a title...", :hint => "Choose a good title for you post."
318 <%= form.input :body %> # => :label => "Write something...", :hint => "Write something inspiring here."
319 <%= form.input :section %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
320 <% end %>
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
321 <% buttons do %>
322 <%= form.commit_button %> # => "Create my {{model}}"
323 <% end %>
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
324 <% end %>
325 </pre>
326
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
327 4. Localized titles (a.k.a. legends):
328
329 _Note: Slightly different because Formtastic can't guess how you group fields in a form._
330
331 <pre>
332 <% semantic_form_for @post do |form| %>
333 <% inputs :title => :post_details do %> # => :title => "Post details"
334 # ...
335 <% end %>
336 # ...
337 <% end %>
338 </pre>
339
340 5. Override I18n settings:
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
341
342 <pre>
343 <% semantic_form_for @post do |form| %>
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
344 <% inputs do %>
345 <%= form.input :title %> # => :label => "Choose a title...", :hint => "Choose a good title for you post."
346 <%= form.input :body, :hint => false %> # => :label => "Write something..."
347 <%= form.input :section, :label => 'Some section' %> # => :label => 'Some section'
348 <% end %>
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
349 <% buttons do %>
350 <%= form.commit_button :dummie %> # => "Launch!"
351 <% end %>
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
352 <% end %>
353 </pre>
354
355 If I18n-lookups is disabled, i.e.:
356
357 <pre>
358 Formtastic::SemanticFormBuilder.i18n_lookups_by_default = false
359 </pre>
360
361 ...then you can enable I18n within the forms instead:
362
363 <pre>
364 <% semantic_form_for @post do |form| %>
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
365 <% inputs do %>
366 <%= form.input :title, :label => true %> # => :label => "Choose a title..."
367 <%= form.input :body, :label => true %> # => :label => "Write something..."
368 <%= form.input :section, :label => true %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
369 <% end %>
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
370 % buttons do %>
371 <%= form.commit_button true %> # => "Save changes" (if we are in edit that is...)
372 <% end %>
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
373 <% end %>
374 </pre>
375
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
376 6. Advanced I18n lookups
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
377
378 For more flexible forms; Formtastic find translations using a bottom-up approach taking the following variables in account:
379
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
380 * @MODEL@, e.g. "post"
381 * @ACTION@, e.g. "edit"
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
382 * @KEY/ATTRIBUTE@, e.g. "title", :my_custom_key, ...
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
383
384 ...in the following order:
385
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
386 1. @formtastic.{titles,labels,hints,actions}.MODEL.ACTION.ATTRIBUTE@ # By model and action
387 2. @formtastic.{titles,labels,hints,actions}.MODEL.ATTRIBUTE@ # By model
388 3. @formtastic.{titles,labels,hints,actions}.ATTRIBUTE@ # Global default
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
389
390 ...which means that you can define translations like this:
391
392 <pre>
393 en:
394 formtastic:
395 labels:
396 title: "Title" # Default global value
397 article:
398 body: "Article content"
399 post:
400 new:
401 title: "Choose a title..."
402 body: "Write something..."
403 edit:
404 title: "Edit title"
405 body: "Edit body"
406 </pre>
407
4aca8cd @grimen New I18n-features:
grimen authored Oct 24, 2009
408 Values for @labels@/@hints@/@actions@ are can take values: @String@ (explicit value), @Symbol@ (i18n-lookup-key relative to the current "type", e.g. actions:), @true@ (force I18n lookup), @false@ (force no I18n lookup). Titles (legends) can only take: @String@ and @Symbol@ - true/false have no meaning.
75782e1 @grimen Updated I18n-instructions in README; on the I18n-support for fieldset…
grimen authored Sep 16, 2009
409
71ef99f @justinfrench nuked the configuration copy/paste from the README, linked to the gen…
authored Oct 21, 2009
410
94ce3ec @grimen Documentation for the new I18n features for labels/hints.
grimen authored Aug 2, 2009
411 h2. ValidationReflection plugin
412
413 If you have the "ValidationReflection":http://github.com/redinger/validation_reflection plugin installed, you won't have to specify the :required option (it checks the validations on the model instead).
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
414
415
71ef99f @justinfrench nuked the configuration copy/paste from the README, linked to the gen…
authored Oct 21, 2009
416 h2. Configuration
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
417
71ef99f @justinfrench nuked the configuration copy/paste from the README, linked to the gen…
authored Oct 21, 2009
418 Run @./script/generate formtastic@ to copy a commented out config file into @config/initializers/formtastic.rb@. You can "view the configuration file on GitHub":http://github.com/justinfrench/formtastic/blob/master/generators/formtastic/templates/formtastic.rb
3a32b4a @josevalim Updated README with new configuration options.
josevalim authored Mar 4, 2009
419
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
420
09d957d textilized the README so that it looks pretty pretty on GitHub
Justin French authored Apr 29, 2008
421 h2. Status
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
422
61d0056 @justinfrench * updated the status to reflect that this is a release candidate
authored Oct 21, 2009
423 Formtastic has been in active development for about a year. We've just recently jumped to an 0.9 version number, signalling that we consider this a 1.0 release candidate, and that the API won't change significantly for the 1.x series.
c5d02e6 @justinfrench link to the wiki for the roadmap to 1.0 in README
authored Feb 16, 2009
424
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
425
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
426 h2. Dependencies
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
427
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
428 There are none, but...
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
429
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
430 * if you have the "ValidationReflection":http://github.com/redinger/validation_reflection plugin is installed, you won't have to specify the :required option (it checks the validations on the model instead)
8239478 @justinfrench Added :as => :country as a new input option (default for :string colu…
authored May 11, 2009
431 * if you want to use the :country input, you'll need to install the "iso-3166-country-select plugin":http://github.com/rails/iso-3166-country-select (or any other country_select plugin with the same API)
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
432 * rspec, rspec_hpricot_matchers and rcov gems (plus any of their own dependencies) are required for the test suite
dcf8beb Initial Commit
Justin French authored Apr 7, 2008
433
0b370ba @justinfrench Renamed input_field_set() to just inputs() and added a shorthand vers…
authored Jan 6, 2009
434
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
435 h2. Compatibility
0b370ba @justinfrench Renamed input_field_set() to just inputs() and added a shorthand vers…
authored Jan 6, 2009
436
9af5cc8 @justinfrench Big update and re-organization of the README:
authored Feb 28, 2009
437 I'm only testing Formtastic with the latest Rails 2.2.x stable release, and it should be fine under Rails 2.3 as well (including nested forms). Patches are welcome to allow backwards compatibility, but I don't have the energy!
0b370ba @justinfrench Renamed input_field_set() to just inputs() and added a shorthand vers…
authored Jan 6, 2009
438
439
67a799f @grimen Made method_required? respect the :if conditional on validates_presen…
grimen authored Sep 3, 2009
440 h2. Got TextMate?
441
442 Well...there's a TextMate-bundle in town, dedicated to make usage of Formtastic in the TextMate editor even more of a breeze:
443
444 "Formtastic.tmbundle":http://github.com/grimen/formtastic_tmbundle
2d4a72b @justinfrench big update to the README
authored Feb 16, 2009
445
61d0056 @justinfrench * updated the status to reflect that this is a release candidate
authored Oct 21, 2009
446
83b9eb1 @justinfrench updated the contributors list
authored Apr 2, 2009
447 h2. Contributors
448
2ddd0bb @justinfrench Welcome Jose as a core maintainer :)
authored Apr 28, 2009
449 Formtastic is maintained by "Justin French":http://justinfrench.com and "José Valim":http://github.com/josevalim, but it wouldn't be as awesome as it is today if it weren't for the wonderful contributions of these fine, fine coders.
ba3ce05 @justinfrench updated the README a little with contributors and some other busy work
authored Jun 27, 2008
450
66c49e6 @justinfrench updated contributors list in README
authored Apr 18, 2009
451 * "Jeff Smick":http://github.com/sprsquish
452 * "Tien Dung":http://github.com/tiendung
453 * "Mark Mansour":http://stateofflux.com
454 * "Andy Pearson":http://github.com/andypearson
455 * "negonicrac":http://github.com/negonicrac
5a39443 @justinfrench bulking up the documentation and readme with the different inputs ava…
authored Jun 28, 2008
456 * "Xavier Shay":http://rhnh.net
15ff964 @justinfrench Added Pat and negonicrac to contributors.
authored Jan 6, 2009
457 * "Pat Allan":http://github.com/freelancing-god
83b9eb1 @justinfrench updated the contributors list
authored Apr 2, 2009
458 * "Gareth Townsend":http://github.com/quamen
66c49e6 @justinfrench updated contributors list in README
authored Apr 18, 2009
459 * "Sascha Hoellger":http://github.com/mitnal
460 * "Andrew Carpenter":http://github.com/andrewcarpenter
83b9eb1 @justinfrench updated the contributors list
authored Apr 2, 2009
461 * "Jack Dempsey":http://github.com/jackdempsey/
66c49e6 @justinfrench updated contributors list in README
authored Apr 18, 2009
462 * "Greg Fitzgerald":http://github.com/gregf/
463 * "Hector E. Gomez Morales":http://github.com/hectoregm
464 * "Ben Hamill":http://blog.benhamill.com/
83b9eb1 @justinfrench updated the contributors list
authored Apr 2, 2009
465 * "Simon Chiu":http://github.com/tolatomeow
66c49e6 @justinfrench updated contributors list in README
authored Apr 18, 2009
466 * "Bin Dong":http://github.com/dongbin
2d4a72b @justinfrench big update to the README
authored Feb 16, 2009
467
5af0311 @justinfrench updated the README to pimp the google group more
authored Apr 2, 2009
468
469 h2. Hey, join the Google group!
470
471 Please join the "Formtastic Google Group":http://groups.google.com.au/group/formtastic, especially if you'd like to talk about a new feature, or report a bug.
472
473
ba3ce05 @justinfrench updated the README a little with contributors and some other busy work
authored Jun 27, 2008
474 h2. Project Info
475
dc3ace9 @justinfrench more on the README
authored Dec 8, 2008
476 Formtastic is hosted on Github: http://github.com/justinfrench/formtastic/, where your contributions, forkings, comments and feedback are greatly welcomed.
ba3ce05 @justinfrench updated the README a little with contributors and some other busy work
authored Jun 27, 2008
477
478
25d0c7a @justinfrench fleshed out a 'roadmap to 1.0' in the README
authored Dec 8, 2008
479 Copyright (c) 2007-2008 Justin French, released under the MIT license.
Something went wrong with that request. Please try again.