Commit 7458437ed970b610defc2ab3042ea1494b06e822

Authored by Dmitriy Zaporozhets
1 parent 6a0c0f3f

Improve sorting for public projects page

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/controllers/public/projects_controller.rb
@@ -8,7 +8,8 @@ class Public::ProjectsController &lt; ApplicationController @@ -8,7 +8,8 @@ class Public::ProjectsController &lt; ApplicationController
8 def index 8 def index
9 @projects = Project.public_or_internal_only(current_user) 9 @projects = Project.public_or_internal_only(current_user)
10 @projects = @projects.search(params[:search]) if params[:search].present? 10 @projects = @projects.search(params[:search]) if params[:search].present?
11 - @projects = case params[:sort] 11 + @sort = params[:sort]
  12 + @projects = case @sort
12 when 'newest' then @projects.order('created_at DESC') 13 when 'newest' then @projects.order('created_at DESC')
13 when 'oldest' then @projects.order('created_at ASC') 14 when 'oldest' then @projects.order('created_at ASC')
14 when 'recently_updated' then @projects.order('updated_at DESC') 15 when 'recently_updated' then @projects.order('updated_at DESC')
app/views/public/projects/index.html.haml
@@ -15,12 +15,14 @@ @@ -15,12 +15,14 @@
15 %a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"} 15 %a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"}
16 %span.light sort: 16 %span.light sort:
17 - if @sort.present? 17 - if @sort.present?
18 - = @sort 18 + = @sort.humanize
19 - else 19 - else
20 - Newest 20 + Name
21 %b.caret 21 %b.caret
22 %ul.dropdown-menu 22 %ul.dropdown-menu
23 %li 23 %li
  24 + = link_to public_projects_path(sort: nil) do
  25 + Name
24 = link_to public_projects_path(sort: 'newest') do 26 = link_to public_projects_path(sort: 'newest') do
25 Newest 27 Newest
26 = link_to public_projects_path(sort: 'oldest') do 28 = link_to public_projects_path(sort: 'oldest') do