summaryrefslogtreecommitdiff
path: root/app/controllers/application_controller.rb
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-01-20 17:29:53 -0500
committerRubén Dávila <rdavila84@gmail.com>2016-01-20 17:29:53 -0500
commit4d345bc4003022ca22b5e7f42069c5a6bde41b6c (patch)
tree95d12650e1fa9ddca5223b3f5ad723f865e983d9 /app/controllers/application_controller.rb
parent1553c560e0d02e670b7cec2b443545e67418b569 (diff)
downloadgitlab-ce-4d345bc4003022ca22b5e7f42069c5a6bde41b6c.tar.gz
Remember last sort option used.
Diffstat (limited to 'app/controllers/application_controller.rb')
-rw-r--r--app/controllers/application_controller.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 633c3f55614..4c4e2ac3d3c 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -297,7 +297,8 @@ class ApplicationController < ActionController::Base
end
def set_filters_params
- params[:sort] ||= 'id_desc'
+ set_default_sort
+
params[:scope] = 'all' if params[:scope].blank?
params[:state] = 'opened' if params[:state].blank?
@@ -404,4 +405,23 @@ class ApplicationController < ActionController::Base
current_user.nil? && root_path == request.path
end
+
+ private
+
+ def set_default_sort
+ controller_name = params[:controller].sub(/Controller\Z/, '').underscore
+ cookie_suffix = "_sort_#{controller_name}"
+
+ key = if @project
+ "#{@project.cookie_key}#{cookie_suffix}"
+ elsif @group
+ "#{@group.cookie_key}#{cookie_suffix}"
+ else
+ "#{current_user.cookie_key}#{cookie_suffix}"
+ end
+
+ cookies[key] ||= 'id_desc'
+ cookies[key] = params[:sort] if params[:sort].present?
+ params[:sort] = cookies[key]
+ end
end