Added simple form for easier form building.
This commit is contained in:
parent
ca15bb1102
commit
03d84aed1d
9 changed files with 185 additions and 5 deletions
2
Gemfile
2
Gemfile
|
@ -9,7 +9,7 @@ gem "prawn", '<=0.6.3'
|
|||
gem 'haml', '>=2.0.6'
|
||||
gem "will_paginate", "~> 3.0.pre2"
|
||||
gem 'jquery-rails'
|
||||
|
||||
gem 'simple_form'
|
||||
|
||||
group :development do
|
||||
gem 'annotate'
|
||||
|
|
|
@ -78,6 +78,7 @@ GEM
|
|||
rake (>= 0.8.7)
|
||||
thor (~> 0.14.4)
|
||||
rake (0.8.7)
|
||||
simple_form (1.3.1)
|
||||
thor (0.14.6)
|
||||
treetop (1.4.9)
|
||||
polyglot (>= 0.3.1)
|
||||
|
@ -97,4 +98,5 @@ DEPENDENCIES
|
|||
mysql
|
||||
prawn (<= 0.6.3)
|
||||
rails (= 3.0.7)
|
||||
simple_form
|
||||
will_paginate (~> 3.0.pre2)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
%head
|
||||
%meta{"http-equiv" => "content-type", :content => "text/html;charset=UTF-8"}
|
||||
%title= "FoodSoft - " + (yield(:title) or controller.controller_name)
|
||||
= stylesheet_link_tag 'main', 'rails_messages', 'nav', :cache => "all_cached"
|
||||
= stylesheet_link_tag 'main', 'rails_messages', 'nav', 'simple_form', :cache => "all_cached"
|
||||
= stylesheet_link_tag "print", :media => "print"
|
||||
<!--[if lte IE 7]>
|
||||
= stylesheet_link_tag 'ie_hacks'
|
||||
|
|
77
config/initializers/simple_form.rb
Normal file
77
config/initializers/simple_form.rb
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Use this setup block to configure all options available in SimpleForm.
|
||||
SimpleForm.setup do |config|
|
||||
# Components used by the form builder to generate a complete input. You can remove
|
||||
# any of them, change the order, or even add your own components to the stack.
|
||||
# config.components = [ :placeholder, :label_input, :hint, :error ]
|
||||
|
||||
# Default tag used on hints.
|
||||
# config.hint_tag = :span
|
||||
|
||||
# CSS class to add to all hint tags.
|
||||
# config.hint_class = :hint
|
||||
|
||||
# Default tag used on errors.
|
||||
# config.error_class = :error
|
||||
|
||||
# Default tag used on errors.
|
||||
# config.error_tag = :span
|
||||
|
||||
# Method used to tidy up errors.
|
||||
# config.error_method = :first
|
||||
|
||||
# Default tag used for error notification helper.
|
||||
# config.error_notification_tag = :p
|
||||
|
||||
# CSS class to add for error notification helper.
|
||||
# config.error_notification_class = :error_notification
|
||||
|
||||
# ID to add for error notification helper.
|
||||
# config.error_notification_id = nil
|
||||
|
||||
# You can wrap all inputs in a pre-defined tag.
|
||||
# config.wrapper_tag = :div
|
||||
|
||||
# CSS class to add to all wrapper tags.
|
||||
# config.wrapper_class = :input
|
||||
|
||||
# CSS class to add to the wrapper if the field has errors.
|
||||
# config.wrapper_error_class = :field_with_errors
|
||||
|
||||
# You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
|
||||
# config.collection_wrapper_tag = nil
|
||||
|
||||
# You can wrap each item in a collection of radio/check boxes with a tag, defaulting to none.
|
||||
# config.item_wrapper_tag = nil
|
||||
|
||||
# Series of attemps to detect a default label method for collection.
|
||||
# config.collection_label_methods = [ :to_label, :name, :title, :to_s ]
|
||||
|
||||
# Series of attemps to detect a default value method for collection.
|
||||
# config.collection_value_methods = [ :id, :to_s ]
|
||||
|
||||
# How the label text should be generated altogether with the required text.
|
||||
# config.label_text = lambda { |label, required| "#{required} #{label}" }
|
||||
|
||||
# Whether attributes are required by default (or not). Default is true.
|
||||
# config.required_by_default = true
|
||||
|
||||
# Custom mappings for input types. This should be a hash containing a regexp
|
||||
# to match as key, and the input type that will be used when the field name
|
||||
# matches the regexp as value.
|
||||
# config.input_mappings = { /count/ => :integer }
|
||||
|
||||
# Collection of methods to detect if a file type was given.
|
||||
# config.file_methods = [ :file?, :public_filename ]
|
||||
|
||||
# Default priority for time_zone inputs.
|
||||
# config.time_zone_priority = nil
|
||||
|
||||
# Default priority for country inputs.
|
||||
# config.country_priority = nil
|
||||
|
||||
# Default size for text inputs.
|
||||
# config.default_input_size = 50
|
||||
|
||||
# When false, do not use translations for labels, hints or placeholders.
|
||||
# config.translate = true
|
||||
end
|
|
@ -167,4 +167,28 @@ de:
|
|||
price: Nettopreis
|
||||
user:
|
||||
password: Passwort
|
||||
first_name: Vorname
|
||||
first_name: Vorname
|
||||
|
||||
# Simple form i18n is used to build the forms
|
||||
simple_form:
|
||||
"yes": 'Ja'
|
||||
"no": 'Nein'
|
||||
required:
|
||||
text: 'benötigt'
|
||||
mark: '*'
|
||||
# You can uncomment the line below if you need to overwrite the whole required html.
|
||||
# When using html, text and mark won't be used.
|
||||
# html: '<abbr title="required">*</abbr>'
|
||||
error_notification:
|
||||
default_message: "Fehler wurden gefunden. Bitte das Formular überprüfen."
|
||||
# Labels and hints examples
|
||||
# labels:
|
||||
# password: 'Password'
|
||||
# user:
|
||||
# new:
|
||||
# email: 'E-mail para efetuar o sign in.'
|
||||
# edit:
|
||||
# email: 'E-mail.'
|
||||
# hints:
|
||||
# username: 'User name to sign in.'
|
||||
# password: 'No special characters, please.'
|
|
@ -3,3 +3,26 @@
|
|||
|
||||
en:
|
||||
hello: "Hello world"
|
||||
|
||||
simple_form:
|
||||
"yes": 'Yes'
|
||||
"no": 'No'
|
||||
required:
|
||||
text: 'required'
|
||||
mark: '*'
|
||||
# You can uncomment the line below if you need to overwrite the whole required html.
|
||||
# When using html, text and mark won't be used.
|
||||
# html: '<abbr title="required">*</abbr>'
|
||||
error_notification:
|
||||
default_message: "Some errors were found, please take a look:"
|
||||
# Labels and hints examples
|
||||
# labels:
|
||||
# password: 'Password'
|
||||
# user:
|
||||
# new:
|
||||
# email: 'E-mail para efetuar o sign in.'
|
||||
# edit:
|
||||
# email: 'E-mail.'
|
||||
# hints:
|
||||
# username: 'User name to sign in.'
|
||||
# password: 'No special characters, please.'
|
13
lib/templates/erb/scaffold/_form.html.erb
Normal file
13
lib/templates/erb/scaffold/_form.html.erb
Normal file
|
@ -0,0 +1,13 @@
|
|||
<%%= simple_form_for(@<%= singular_name %>) do |f| %>
|
||||
<%%= f.error_notification %>
|
||||
|
||||
<div class="inputs">
|
||||
<%- attributes.each do |attribute| -%>
|
||||
<%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
|
||||
<%- end -%>
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<%%= f.button :submit %>
|
||||
</div>
|
||||
<%% end %>
|
|
@ -10,12 +10,12 @@ h3.notice {
|
|||
font-size: 100%;
|
||||
position: relative; }
|
||||
|
||||
h3.error, div.error {
|
||||
h3.alert, div.alert, div.error {
|
||||
color: red;
|
||||
font-size: 100%;
|
||||
font-weight: bold; }
|
||||
|
||||
h3.error {
|
||||
h3.alert {
|
||||
background: yellow url(/images/error.png) no-repeat 10px 3px;
|
||||
border: 1px solid red;
|
||||
padding: 4px 40px;
|
||||
|
|
41
public/stylesheets/simple_form.css
Normal file
41
public/stylesheets/simple_form.css
Normal file
|
@ -0,0 +1,41 @@
|
|||
.simple_form label {
|
||||
float: left;
|
||||
width: 100px;
|
||||
text-align: right;
|
||||
margin: 2px 10px;
|
||||
}
|
||||
|
||||
.simple_form div.input {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.simple_form div.boolean, .simple_form input[type='submit'] {
|
||||
margin-left: 120px;
|
||||
}
|
||||
|
||||
.simple_form div.boolean label, .simple_form label.collection_radio {
|
||||
float: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.simple_form label.collection_radio {
|
||||
margin-right: 10px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.simple_form .error {
|
||||
clear: left;
|
||||
margin-left: 120px;
|
||||
font-size: 12px;
|
||||
color: #D00;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.simple_form .hint {
|
||||
clear: left;
|
||||
margin-left: 120px;
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
display: block;
|
||||
font-style: italic;
|
||||
}
|
Loading…
Reference in a new issue