summaryrefslogtreecommitdiff
path: root/app/controllers/application_controller.rb
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-01-22 17:00:35 -0500
committerRubén Dávila <rdavila84@gmail.com>2016-01-22 17:00:35 -0500
commit7c520c7803524de0eefb8fbcc79d4c943a80c4de (patch)
treeb18a7248b61a45d8b9b3d807408716d409a2ff5a /app/controllers/application_controller.rb
parenteccaa099d185c351f9e8762661f0dc004f11f256 (diff)
downloadgitlab-ce-7c520c7803524de0eefb8fbcc79d4c943a80c4de.tar.gz
Make sorting preference reusable for all projects.
Diffstat (limited to 'app/controllers/application_controller.rb')
-rw-r--r--app/controllers/application_controller.rb21
1 files changed, 15 insertions, 6 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index fb5900054ce..5d047f09f64 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -409,13 +409,22 @@ class ApplicationController < ActionController::Base
private
def set_default_sort
- # Use the controller name so we have a distinct cookie for Issues, MRs and Dashboard
- cookie_suffix = "_sort_#{params[:controller].underscore}"
+ key = if is_a_listing_page_for?('issues')
+ 'issues_sort'
+ elsif is_a_listing_page_for?('merge_requests')
+ 'merge_requests_sort'
+ end
- key = "#{(@project || @group || current_user).cookie_key}#{cookie_suffix}"
+ cookies[key] = params[:sort] if key && params[:sort].present?
+ params[:sort] = cookies[key] if key
+ params[:sort] ||= 'id_desc'
+ end
+
+ def is_a_listing_page_for?(page_type)
+ controller_name, action_name = params.values_at(:controller, :action)
- cookies[key] ||= 'id_desc'
- cookies[key] = params[:sort] if params[:sort].present?
- params[:sort] = cookies[key]
+ (controller_name == "projects/#{page_type}" && action_name == 'index') ||
+ (controller_name == 'groups' && action_name == page_type) ||
+ (controller_name == 'dashboard' && action_name == page_type)
end
end