Refactor: merged error rendering methods.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4286 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2010-10-23 11:07:04 +00:00
parent eea456ed84
commit 7824eca775
6 changed files with 30 additions and 44 deletions

View File

@ -275,39 +275,31 @@ class ApplicationController < ActionController::Base
def render_403(options={})
@project = nil
@message = options[:message] || :notice_not_authorized
@message = l(@message) if @message.is_a?(Symbol)
respond_to do |format|
format.html { render :template => "common/403", :layout => use_layout, :status => 403 }
format.atom { head 403 }
format.xml { head 403 }
format.js { head 403 }
format.json { head 403 }
end
render_error({:message => :notice_not_authorized, :status => 403}.merge(options))
return false
end
def render_404
respond_to do |format|
format.html { render :template => "common/404", :layout => use_layout, :status => 404 }
format.atom { head 404 }
format.xml { head 404 }
format.js { head 404 }
format.json { head 404 }
end
def render_404(options={})
render_error({:message => :notice_file_not_found, :status => 404}.merge(options))
return false
end
def render_error(msg)
# Renders an error response
def render_error(arg)
arg = {:message => arg} unless arg.is_a?(Hash)
@message = arg[:message]
@message = l(@message) if @message.is_a?(Symbol)
@status = arg[:status] || 500
respond_to do |format|
format.html {
flash.now[:error] = msg
render :text => '', :layout => use_layout, :status => 500
format.html {
render :template => 'common/error', :layout => use_layout, :status => @status
}
format.atom { head 500 }
format.xml { head 500 }
format.js { head 500 }
format.json { head 500 }
format.atom { head @status }
format.xml { head @status }
format.js { head @status }
format.json { head @status }
end
end

View File

@ -1,6 +0,0 @@
<h2>403</h2>
<p><%=h @message %></p>
<p><a href="javascript:history.back()">Back</a></p>
<% html_title '403' %>

View File

@ -1,6 +0,0 @@
<h2>404</h2>
<p><%= l(:notice_file_not_found) %></p>
<p><a href="javascript:history.back()">Back</a></p>
<% html_title '404' %>

View File

@ -0,0 +1,6 @@
<h2><%=h @status %></h2>
<p id="errorExplanation"><%=h @message %></p>
<p><a href="javascript:history.back()">Back</a></p>
<% html_title @status %>

View File

@ -340,9 +340,7 @@ class IssuesControllerTest < ActionController::TestCase
get :new, :project_id => 1
assert_response 500
assert_not_nil flash[:error]
assert_tag :tag => 'div', :attributes => { :class => /error/ },
:content => /No default issue/
assert_error_tag :content => /No default issue/
end
def test_get_new_with_no_tracker_should_display_an_error
@ -351,9 +349,7 @@ class IssuesControllerTest < ActionController::TestCase
get :new, :project_id => 1
assert_response 500
assert_not_nil flash[:error]
assert_tag :tag => 'div', :attributes => { :class => /error/ },
:content => /No tracker/
assert_error_tag :content => /No tracker/
end
def test_update_new_form

View File

@ -113,11 +113,15 @@ class ActiveSupport::TestCase
def self.repository_configured?(vendor)
File.directory?(repository_path(vendor))
end
def assert_error_tag(options={})
assert_tag({:tag => 'p', :attributes => { :id => 'errorExplanation' }}.merge(options))
end
# Shoulda macros
def self.should_render_404
should_respond_with :not_found
should_render_template 'common/404'
should_render_template 'common/error'
end
def self.should_have_before_filter(expected_method, options = {})