diff options
author | Rubén Dávila <rdavila84@gmail.com> | 2016-01-20 17:29:53 -0500 |
---|---|---|
committer | Rubén Dávila <rdavila84@gmail.com> | 2016-01-20 17:29:53 -0500 |
commit | 4d345bc4003022ca22b5e7f42069c5a6bde41b6c (patch) | |
tree | 95d12650e1fa9ddca5223b3f5ad723f865e983d9 /app/controllers/application_controller.rb | |
parent | 1553c560e0d02e670b7cec2b443545e67418b569 (diff) | |
download | gitlab-ce-4d345bc4003022ca22b5e7f42069c5a6bde41b6c.tar.gz |
Remember last sort option used.
Diffstat (limited to 'app/controllers/application_controller.rb')
-rw-r--r-- | app/controllers/application_controller.rb | 22 |
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 |