From 7c520c7803524de0eefb8fbcc79d4c943a80c4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= Date: Fri, 22 Jan 2016 17:00:35 -0500 Subject: Make sorting preference reusable for all projects. --- app/controllers/application_controller.rb | 21 +++++++++++++++------ app/models/concerns/cookie_helpers.rb | 5 ----- app/models/group.rb | 1 - app/models/project.rb | 1 - app/models/user.rb | 1 - 5 files changed, 15 insertions(+), 14 deletions(-) delete mode 100644 app/models/concerns/cookie_helpers.rb (limited to 'app') 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 diff --git a/app/models/concerns/cookie_helpers.rb b/app/models/concerns/cookie_helpers.rb deleted file mode 100644 index 1c8d43a4661..00000000000 --- a/app/models/concerns/cookie_helpers.rb +++ /dev/null @@ -1,5 +0,0 @@ -module CookieHelpers - def cookie_key - "#{model_name.singular}_#{id}" - end -end diff --git a/app/models/group.rb b/app/models/group.rb index 3ba18b85193..76042b3e3fd 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -19,7 +19,6 @@ require 'file_size_validator' class Group < Namespace include Gitlab::ConfigHelper include Referable - include CookieHelpers has_many :group_members, dependent: :destroy, as: :source, class_name: 'GroupMember' alias_method :members, :group_members diff --git a/app/models/project.rb b/app/models/project.rb index 5ba7532c61a..5579710a476 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -51,7 +51,6 @@ class Project < ActiveRecord::Base include AfterCommitQueue include CaseSensitivity include TokenAuthenticatable - include CookieHelpers extend Gitlab::ConfigHelper diff --git a/app/models/user.rb b/app/models/user.rb index c24f8a35380..4214f01f6a4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -73,7 +73,6 @@ class User < ActiveRecord::Base include Sortable include CaseSensitivity include TokenAuthenticatable - include CookieHelpers add_authentication_token_field :authentication_token -- cgit v1.2.3