Parcourir la source

Cleanup in TimelogController#destroy.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9095 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/1.4.0
Jean-Philippe Lang il y a 12 ans
Parent
révision
6b47cad8ce
2 fichiers modifiés avec 21 ajouts et 17 suppressions
  1. 6
    2
      app/controllers/application_controller.rb
  2. 15
    15
      app/controllers/timelog_controller.rb

+ 6
- 2
app/controllers/application_controller.rb Voir le fichier

@@ -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


+ 15
- 15
app/controllers/timelog_controller.rb Voir le fichier

@@ -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


Chargement…
Annuler
Enregistrer