summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-06 16:51:10 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-06 16:51:10 +0000
commit18270ee5879b387a23f659339555269319eb861f (patch)
tree56cc3a7099d12734d54ef538e0c3a1f2698c2163 /app
parenteabbab6e2b543c9ffe574c93d0df19e625802315 (diff)
downloadredmine-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.rb13
-rw-r--r--app/controllers/attachments_controller.rb4
-rw-r--r--app/controllers/users_controller.rb4
-rw-r--r--app/controllers/watchers_controller.rb8
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