diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-04-06 16:51:10 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-04-06 16:51:10 +0000 |
commit | 18270ee5879b387a23f659339555269319eb861f (patch) | |
tree | 56cc3a7099d12734d54ef538e0c3a1f2698c2163 /app | |
parent | eabbab6e2b543c9ffe574c93d0df19e625802315 (diff) | |
download | redmine-18270ee5879b387a23f659339555269319eb861f.tar.gz redmine-18270ee5879b387a23f659339555269319eb861f.zip |
Code cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9363 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/application_controller.rb | 13 | ||||
-rw-r--r-- | app/controllers/attachments_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/watchers_controller.rb | 8 |
4 files changed, 17 insertions, 12 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bf62d7ff2..bdd3e6a9f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -298,6 +298,19 @@ class ApplicationController < ActionController::Base false end + # Redirects to the request referer if present, redirects to args or call block otherwise. + def redirect_to_referer_or(*args, &block) + redirect_to :back + rescue ::ActionController::RedirectBackError + if args.any? + redirect_to *args + elsif block_given? + block.call + else + raise "#redirect_to_referer_or takes arguments or a block" + end + end + def render_403(options={}) @project = nil render_error({:message => :notice_not_authorized, :status => 403}.merge(options)) diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 967032d92..425bfab94 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -88,9 +88,7 @@ class AttachmentsController < ApplicationController end # Make sure association callbacks are called @attachment.container.attachments.delete(@attachment) - redirect_to :back - rescue ::ActionController::RedirectBackError - redirect_to :controller => 'projects', :action => 'show', :id => @project + redirect_back_or_default project_path(@project) end private diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d22dd33cd..3bae5c057 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -154,7 +154,7 @@ class UsersController < ApplicationController respond_to do |format| format.html { flash[:notice] = l(:notice_successful_update) - redirect_to :back + redirect_to_referer_or edit_user_path(@user) } format.api { head :ok } end @@ -169,8 +169,6 @@ class UsersController < ApplicationController format.api { render_validation_errors(@user) } end end - rescue ::ActionController::RedirectBackError - redirect_to :controller => 'users', :action => 'edit', :id => @user end def destroy diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 19af1e672..00f647023 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -52,7 +52,7 @@ class WatchersController < ApplicationController end end respond_to do |format| - format.html { redirect_to :back } + format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}} format.js do render :update do |page| page.replace_html 'ajax-modal', :partial => 'watchers/new', :locals => {:watched => @watched} @@ -60,8 +60,6 @@ class WatchersController < ApplicationController end end end - rescue ::ActionController::RedirectBackError - render :text => 'Watcher added.', :layout => true end def append @@ -120,7 +118,7 @@ private def set_watcher(user, watching) @watched.set_watcher(user, watching) respond_to do |format| - format.html { redirect_to :back } + format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} format.js do render(:update) do |page| c = watcher_css(@watched) @@ -130,7 +128,5 @@ private end end end - rescue ::ActionController::RedirectBackError - render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true end end |