git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9017 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.4.0
@@ -945,6 +945,20 @@ module ApplicationHelper | |||
remote_form_for(*args, &proc) | |||
end | |||
def error_messages_for(*objects) | |||
html = "" | |||
objects = objects.map {|o| o.is_a?(String) ? instance_variable_get("@#{o}") : o}.compact | |||
errors = objects.map {|o| o.errors.full_messages}.flatten | |||
if errors.any? | |||
html << "<div id='errorExplanation'><ul>\n" | |||
errors.each do |error| | |||
html << "<li>#{h error}</li>\n" | |||
end | |||
html << "</ul></div>\n" | |||
end | |||
html.html_safe | |||
end | |||
def back_url_hidden_field_tag | |||
back_url = params[:back_url] || request.env['HTTP_REFERER'] | |||
back_url = CGI.unescape(back_url.to_s) |
@@ -1,4 +1,4 @@ | |||
<%= f.error_messages %> | |||
<%= error_messages_for @board %> | |||
<div class="box tabular"> | |||
<p><%= f.text_field :name, :required => true %></p> |
@@ -1,4 +1,4 @@ | |||
<%= f.error_messages %> | |||
<%= error_messages_for @document %> | |||
<div class="box tabular"> | |||
<p><%= f.select :category_id, DocumentCategory.active.collect {|c| [c.name, c.id]} %></p> |
@@ -1,4 +1,4 @@ | |||
<%= f.error_messages %> | |||
<%= error_messages_for @group %> | |||
<div class="box tabular"> | |||
<p><%= f.text_field :lastname, :label => :field_name %></p> |
@@ -1,4 +1,5 @@ | |||
<%= f.error_messages %> | |||
<%= error_messages_for @news %> | |||
<div class="box tabular"> | |||
<p><%= f.text_field :title, :required => true, :size => 60 %></p> | |||
<p><%= f.text_area :summary, :cols => 60, :rows => 2 %></p> |
@@ -95,7 +95,7 @@ class MyControllerTest < ActionController::TestCase | |||
:new_password_confirmation => 'hello2' | |||
assert_response :success | |||
assert_template 'password' | |||
assert_tag :tag => "div", :attributes => { :class => "errorExplanation" } | |||
assert_error_tag :content => /Password doesn't match confirmation/ | |||
# wrong password | |||
post :password, :password => 'wrongpassword', |