Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Added record identifications to FormHelper#form_for and PrototypeHelp…
…er#remote_form_for [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6731 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
- Loading branch information
Showing
11 changed files
with
319 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 16 additions & 12 deletions
28
actionpack/lib/action_view/helpers/record_identification_helper.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,20 @@ | ||
module RecordIdentificationHelper | ||
# See ActionController::RecordIdentifier.partial_path -- this is just a delegate to that for convenient access in the view. | ||
def partial_path(*args, &block) | ||
ActionController::RecordIdentifier.partial_path(*args, &block) | ||
end | ||
module ActionView | ||
module Helpers | ||
module RecordIdentificationHelper | ||
# See ActionController::RecordIdentifier.partial_path -- this is just a delegate to that for convenient access in the view. | ||
def partial_path(*args, &block) | ||
ActionController::RecordIdentifier.partial_path(*args, &block) | ||
end | ||
|
||
# See ActionController::RecordIdentifier.dom_class -- this is just a delegate to that for convenient access in the view. | ||
def dom_class(*args, &block) | ||
ActionController::RecordIdentifier.dom_class(*args, &block) | ||
end | ||
# See ActionController::RecordIdentifier.dom_class -- this is just a delegate to that for convenient access in the view. | ||
def dom_class(*args, &block) | ||
ActionController::RecordIdentifier.dom_class(*args, &block) | ||
end | ||
|
||
# See ActionController::RecordIdentifier.dom_id -- this is just a delegate to that for convenient access in the view. | ||
def dom_id(*args, &block) | ||
ActionController::RecordIdentifier.dom_id(*args, &block) | ||
# See ActionController::RecordIdentifier.dom_id -- this is just a delegate to that for convenient access in the view. | ||
def dom_id(*args, &block) | ||
ActionController::RecordIdentifier.dom_id(*args, &block) | ||
end | ||
end | ||
end | ||
end |
108 changes: 56 additions & 52 deletions
108
actionpack/lib/action_view/helpers/record_tag_helper.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,59 @@ | ||
module RecordTagHelper | ||
# Produces a wrapper DIV element with id and class parameters that | ||
# relate to the specified ActiveRecord object. Usage example: | ||
# | ||
# <% div_for(@person, :class => "foo") do %> | ||
# <%=h @person.name %> | ||
# <% end %> | ||
# | ||
# produces: | ||
# | ||
# <div id="person_123" class="person foo"> Joe Bloggs </div> | ||
# | ||
def div_for(record, *args, &block) | ||
content_tag_for(:div, record, *args, &block) | ||
end | ||
module ActionView | ||
module Helpers | ||
module RecordTagHelper | ||
# Produces a wrapper DIV element with id and class parameters that | ||
# relate to the specified ActiveRecord object. Usage example: | ||
# | ||
# <% div_for(@person, :class => "foo") do %> | ||
# <%=h @person.name %> | ||
# <% end %> | ||
# | ||
# produces: | ||
# | ||
# <div id="person_123" class="person foo"> Joe Bloggs </div> | ||
# | ||
def div_for(record, *args, &block) | ||
content_tag_for(:div, record, *args, &block) | ||
end | ||
|
||
# content_tag_for creates an HTML element with id and class parameters | ||
# that relate to the specified ActiveRecord object. For example: | ||
# | ||
# <% content_tag_for(:tr, @person) do %> | ||
# <td><%=h @person.first_name %></td> | ||
# <td><%=h @person.last_name %></td> | ||
# <% end %> | ||
# | ||
# would produce hthe following HTML (assuming @person is an instance of | ||
# a Person object, with an id value of 123): | ||
# | ||
# <tr id="person_123" class="person">....</tr> | ||
# | ||
# If you require the HTML id attribute to have a prefix, you can specify it: | ||
# | ||
# <% content_tag_for(:tr, @person, :foo) do %> ... | ||
# | ||
# produces: | ||
# | ||
# <tr id="foo_person_123" class="person">... | ||
# | ||
# content_tag_for also accepts a hash of options, which will be converted to | ||
# additional HTML attributes. If you specify a +:class+ value, it will be combined | ||
# with the default class name for your object. For example: | ||
# | ||
# <% content_tag_for(:li, @person, :class => "bar") %>... | ||
# | ||
# produces: | ||
# | ||
# <li id="person_123" class="person bar">... | ||
# | ||
def content_tag_for(tag_name, record, *args, &block) | ||
prefix = args.first.is_a?(Hash) ? nil : args.shift | ||
options = args.first.is_a?(Hash) ? args.shift : {} | ||
concat content_tag(tag_name, capture(&block), | ||
options.merge({ :class => "#{dom_class(record)} #{options[:class]}".strip, :id => dom_id(record, prefix) })), | ||
block.binding | ||
# content_tag_for creates an HTML element with id and class parameters | ||
# that relate to the specified ActiveRecord object. For example: | ||
# | ||
# <% content_tag_for(:tr, @person) do %> | ||
# <td><%=h @person.first_name %></td> | ||
# <td><%=h @person.last_name %></td> | ||
# <% end %> | ||
# | ||
# would produce hthe following HTML (assuming @person is an instance of | ||
# a Person object, with an id value of 123): | ||
# | ||
# <tr id="person_123" class="person">....</tr> | ||
# | ||
# If you require the HTML id attribute to have a prefix, you can specify it: | ||
# | ||
# <% content_tag_for(:tr, @person, :foo) do %> ... | ||
# | ||
# produces: | ||
# | ||
# <tr id="foo_person_123" class="person">... | ||
# | ||
# content_tag_for also accepts a hash of options, which will be converted to | ||
# additional HTML attributes. If you specify a +:class+ value, it will be combined | ||
# with the default class name for your object. For example: | ||
# | ||
# <% content_tag_for(:li, @person, :class => "bar") %>... | ||
# | ||
# produces: | ||
# | ||
# <li id="person_123" class="person bar">... | ||
# | ||
def content_tag_for(tag_name, record, *args, &block) | ||
prefix = args.first.is_a?(Hash) ? nil : args.shift | ||
options = args.first.is_a?(Hash) ? args.shift : {} | ||
concat content_tag(tag_name, capture(&block), | ||
options.merge({ :class => "#{dom_class(record)} #{options[:class]}".strip, :id => dom_id(record, prefix) })), | ||
block.binding | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.