Skip to content

Commit

Permalink
Add label_tag helper for generating elements. Closes #10802 [DefV]
Browse files Browse the repository at this point in the history
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8685 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information
NZKoz committed Jan 21, 2008
1 parent 37f71a7 commit 7701e64
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
2 changes: 2 additions & 0 deletions actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN* *SVN*


* Add label_tag helper for generating elements. #10802 [DefV]

* Introduce TemplateFinder to handle view paths and lookups. #10800 [Pratik Naik] * Introduce TemplateFinder to handle view paths and lookups. #10800 [Pratik Naik]


* Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 [oleganza] * Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 [oleganza]
Expand Down
18 changes: 18 additions & 0 deletions actionpack/lib/action_view/helpers/form_tag_helper.rb
Expand Up @@ -114,6 +114,24 @@ def text_field_tag(name, value = nil, options = {})
tag :input, { "type" => "text", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys) tag :input, { "type" => "text", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys)
end end


# Creates a label field
#
# ==== Options
# * Creates standard HTML attributes for the tag.
#
# ==== Examples
# label_tag 'name'
# # => <label for="name">Name</label>
#
# label_tag 'name', 'Your name'
# # => <label for="name">Your Name</label>
#
# label_tag 'name', nil, :class => 'small_label'
# # => <label for="name" class="small_label">Name</label>
def label_tag(name, text = nil, options = {})
content_tag :label, text || name.humanize, { "for" => name }.update(options.stringify_keys)
end

# Creates a hidden form input field used to transmit data that would be lost due to HTTP's statelessness or # Creates a hidden form input field used to transmit data that would be lost due to HTTP's statelessness or
# data that should be hidden from the user. # data that should be hidden from the user.
# #
Expand Down
18 changes: 18 additions & 0 deletions actionpack/test/template/form_tag_helper_test.rb
Expand Up @@ -188,6 +188,24 @@ def test_text_field_tag_with_multiple_options
assert_dom_equal expected, actual assert_dom_equal expected, actual
end end


def test_label_tag_without_text
actual = label_tag "title"
expected = %(<label for="title">Title</label>)
assert_dom_equal expected, actual
end

def test_label_tag_with_text
actual = label_tag "title", "My Title"
expected = %(<label for="title">My Title</label>)
assert_dom_equal expected, actual
end

def test_label_tag_class_string
actual = label_tag "title", "My Title", "class" => "small_label"
expected = %(<label for="title" class="small_label">My Title</label>)
assert_dom_equal expected, actual
end

def test_boolean_optios def test_boolean_optios
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes") assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil) assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
Expand Down

0 comments on commit 7701e64

Please sign in to comment.