summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-05-02 17:02:57 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-05-02 17:02:57 +0300
commitc608a5dceab0a5fa2df8286d5808091f2517d4ab (patch)
treee345981d9226f6efccd3363721dc26937bc4e787 /app
parent9dfc4fe6ac0194722dacd4ed5e2539126419c360 (diff)
downloadgitlab-ce-c608a5dceab0a5fa2df8286d5808091f2517d4ab.tar.gz
Add sort dropdown for admin projects page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/projects_controller.rb1
-rw-r--r--app/models/project.rb1
-rw-r--r--app/views/admin/projects/index.html.haml23
3 files changed, 25 insertions, 0 deletions
diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb
index 13a7bdcf34a..92ef5963373 100644
--- a/app/controllers/admin/projects_controller.rb
+++ b/app/controllers/admin/projects_controller.rb
@@ -12,6 +12,7 @@ class Admin::ProjectsController < Admin::ApplicationController
@projects = @projects.with_push if params[:with_push].present?
@projects = @projects.abandoned if params[:abandoned].present?
@projects = @projects.search(params[:name]) if params[:name].present?
+ @projects = @projects.sort(@sort = params[:sort])
@projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 45aeaceef83..7ddcc73cf2a 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -203,6 +203,7 @@ class Project < ActiveRecord::Base
when 'oldest' then reorder('projects.created_at ASC')
when 'recently_updated' then reorder('projects.updated_at DESC')
when 'last_updated' then reorder('projects.updated_at ASC')
+ when 'largest_repository' then reorder('projects.repository_size DESC')
else reorder("namespaces.path, projects.name ASC")
end
end
diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml
index 296094ab29c..51ad702154f 100644
--- a/app/views/admin/projects/index.html.haml
+++ b/app/views/admin/projects/index.html.haml
@@ -32,6 +32,7 @@
= visibility_level_icon(level)
= label
.form-actions
+ = hidden_field_tag :sort, params[:sort]
= submit_tag "Search", class: "btn submit btn-primary"
= link_to "Reset", admin_projects_path, class: "btn"
@@ -40,6 +41,28 @@
.title
Projects (#{@projects.total_count})
.pull-right
+ .dropdown.inline
+ %a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"}
+ %span.light sort:
+ - if @sort.present?
+ = @sort.humanize
+ - else
+ Name
+ %b.caret
+ %ul.dropdown-menu
+ %li
+ = link_to admin_projects_path(sort: nil) do
+ Name
+ = link_to admin_projects_path(sort: 'newest') do
+ Newest
+ = link_to admin_projects_path(sort: 'oldest') do
+ Oldest
+ = link_to admin_projects_path(sort: 'recently_updated') do
+ Recently updated
+ = link_to admin_projects_path(sort: 'last_updated') do
+ Last updated
+ = link_to admin_projects_path(sort: 'largest_repository') do
+ Largest repository
= link_to 'New Project', new_project_path, class: "btn btn-new"
%ul.well-list
- @projects.each do |project|