Cleanup in TimelogController#destroy.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9095 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-03-04 15:24:14 +00:00
parent dc50edae5e
commit 6b47cad8ce
2 changed files with 21 additions and 17 deletions

View File

@ -507,8 +507,12 @@ class ApplicationController < ActionController::Base
end
# Renders API response on validation failure
def render_validation_errors(object)
@error_messages = object.errors.full_messages
def render_validation_errors(objects)
if objects.is_a?(Array)
@error_messages = objects.map {|object| object.errors.full_messages}.flatten
else
@error_messages = objects.errors.full_messages
end
render :template => 'common/error_messages.api', :status => :unprocessable_entity, :layout => false
end

View File

@ -199,30 +199,30 @@ class TimelogController < ApplicationController
end
def destroy
@time_entries.each do |t|
begin
destroyed = TimeEntry.transaction do
@time_entries.each do |t|
unless t.destroy && t.destroyed?
respond_to do |format|
format.html {
flash[:error] = l(:notice_unable_delete_time_entry)
redirect_to :back
}
format.api { render_validation_errors(t) }
end
return
raise ActiveRecord::Rollback
end
rescue ::ActionController::RedirectBackError
redirect_to :action => 'index', :project_id => @projects.first
return
end
end
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_delete)
if destroyed
flash[:notice] = l(:notice_successful_delete)
else
flash[:error] = l(:notice_unable_delete_time_entry)
end
redirect_back_or_default(:action => 'index', :project_id => @projects.first)
}
format.api { head :ok }
format.api {
if destroyed
head :ok
else
render_validation_errors(@time_entries)
end
}
end
end