0
@@ -2,6 +2,18 @@ module Mack
0
module ViewHelpers # :nodoc:
0
+ # <% form(users_create_url) do -%>
0
+ # # form stuff here...
0
+ # <% form(users_update_url, :method => :put) do -%>
0
+ # # form stuff here...
0
+ # <% form(photos_create_url, :multipart => true) do -%>
0
+ # # form stuff here...
0
def form(action, options = {}, &block)
0
options = {:method => :post, :action => action}.merge(options)
0
@@ -23,10 +35,7 @@ module Mack
0
# content_tag(:form, options, &block)
0
- def submit_tag(value = "Submit", options = {}, *original_args)
0
- Mack.logger.warn("DEPRECATED: 'submit_tag'. Please use 'submit_button' instead")
0
- submit_button(value, options, *original_args)
0
+ alias_deprecated_method :submit_tag, :submit_button, '0.7.0'
0
# <%= submit_button %> # => <input type="submit" value="Submit" />
0
@@ -35,6 +44,10 @@ module Mack
0
non_content_tag(:input, {:type => :submit, :value => value}.merge(options))
0
+ # @user = User.new(:accepted_tos => true)
0
+ # <%= check_box :user, :accepted_tos %> # => <input checked="checked" id="user_accepted_tos" name="user[accepted_tos]" type="checkbox" />
0
+ # <%= check_box :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="checkbox" />
0
def check_box(name, *args)
0
build_form_element(name, {:type => :checkbox}, *args) do |var, fe, options|
0
@@ -43,19 +56,34 @@ module Mack
0
+ # @user = User.new(:bio_file => "~/bio.doc")
0
+ # <%= file_field :user, :bio_file %> # => <input id="user_bio_field" name="user[bio_field]" type="file" value="~/bio.doc" />
0
+ # <%= file_field :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="file" value="" />
0
def file_field(name, *args)
0
build_form_element(name, {:type => :file}, *args)
0
+ # @user = User.new(:email => "mark@mackframework.com")
0
+ # <%= hidden_field :user, :email %> # => <input id="user_email" name="user[email]" type="hidden" value="mark@mackframework.com" />
0
+ # <%= hidden_field :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="hidden" />
0
def hidden_field(name, *args)
0
build_form_element(name, {:type => :hidden}, *args)
0
+ # <%= image_submit "logo.png" %> # => <input src="/images/logo.png" type="image" />
0
def image_submit(src, options = {})
0
non_content_tag(:input, {:type => :image, :src => "/images/#{src}"}.merge(options))
0
+ # <%= label_tag :user, :email %> # => <label for="user_email">Email</label>
0
+ # <%= label_tag :i_dont_exist %> # => <label for="i_dont_exist">I don't exist</label>
0
+ # <%= label_tag :i_dont_exist, :value => "Hello" %> # => <label for="i_dont_exist">Hello</label>
0
def label_tag(name, *args)
0
fe = FormElement.new(*args)
0
unless fe.options[:for]
0
@@ -69,6 +97,11 @@ module Mack
0
content_tag(:label, fe.options, content)
0
+ # @user = User.new(:level => 1)
0
+ # <%= select_tag :user, :level, :options => [["one", 1], ["two", 2]] %> # => <select id="user_level" name="user[level]"><option value="1" selected>one</option><option value="2" >two</option></select>
0
+ # <%= select_tag :user :level, :options => {:one => 1, :two => 2} %> # => <select id="user_level" name="user[level]"><option value="1" selected>one</option><option value="2" >two</option></select>
0
+ # <%= select_tag :i_dont_exist :options => [["one", 1], ["two", 2]], :selected => 1 %> # => <select id="i_dont_exist" name="i_dont_exist"><option value="1" selected>one</option><option value="2" >two</option></select>
0
def select_tag(name, *args)
0
var = instance_variable_get("@#{name}")
0
fe = FormElement.new(*args)
0
@@ -103,7 +136,12 @@ module Mack
0
return content_tag(:select, options.merge(fe.options), content)
0
+ # @user = User.new(:bio => "my bio here")
0
+ # <%= text_area :user, :bio %> # => <textarea id="user_bio" name="user[bio]">my bio here</textarea>
0
+ # <%= text_area :i_dont_exist %> # => <textarea id="i_dont_exist" name="i_dont_exist"></textarea>
0
+ # <%= text_area :i_dont_exist :value => "hi there" %> # => <textarea id="i_dont_exist" name="i_dont_exist">hi there</textarea>
0
def text_area(name, *args)
0
var = instance_variable_get("@#{name}")
0
fe = FormElement.new(*args)
0
@@ -126,15 +164,28 @@ module Mack
0
return content_tag(:textarea, options.merge(fe.options), content)
0
+ # @user = User.new(:email => "mark@mackframework.com")
0
+ # <%= text_field :user, :email %> # => <input id="user_email" name="user[email]" type="text" value="mark@mackframework.com" />
0
+ # <%= text_field :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="text" />
0
def text_field(name, *args)
0
build_form_element(name, {:type => :text}, *args)
0
+ # @user = User.new(:email => "mark@mackframework.com")
0
+ # <%= password_field :user, :email %> # => <input id="user_email" name="user[email]" type="password" value="mark@mackframework.com" />
0
+ # <%= password_field :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="password" />
0
def password_field(name, *args)
0
build_form_element(name, {:type => :password}, *args)
0
+ # @user = User.new(:level => 1)
0
+ # <%= radio_button :user, :level %> # => <input checked="checked" id="user_level" name="user[level]" type="radio" value="1" />
0
+ # <%= radio_button :user, :level, :value => 2 %> # => <input id="user_level" name="user[level]" type="radio" value="2" />
0
+ # <%= radio_button :i_dont_exist %> # => <input id="i_dont_exist" name="i_dont_exist" type="radio" value="" />
0
def radio_button(name, *args)
0
build_form_element(name, {:type => :radio, :value => ""}, *args) do |var, fe, options|
0
@@ -148,7 +199,7 @@ module Mack
0
- def build_form_element(name, options, *original_args)
0
+ def build_form_element(name, options, *original_args)
# :nodoc:0
var = instance_variable_get("@#{name}")
0
fe = FormElement.new(*original_args)
0
options = {:name => name, :id => name}.merge(options)
0
@@ -166,7 +217,7 @@ module Mack
0
+ class FormElement
# :nodoc:0
attr_accessor :calling_method