diff options
author | Alexis Reigel <alexis.reigel.ext@siemens.com> | 2018-07-12 18:15:03 +0200 |
---|---|---|
committer | Alexis Reigel <alexis.reigel.ext@siemens.com> | 2018-08-29 15:02:54 +0200 |
commit | 34bdb74740d0b983bfc299362b25945c9e50681c (patch) | |
tree | 290ee4a1d7d5938849acf916149ab909a51f1cfc /app | |
parent | 89b30999c294d2e344d095e635d72aa16d108a2b (diff) | |
download | gitlab-ce-34bdb74740d0b983bfc299362b25945c9e50681c.tar.gz |
add sort dropdown to admin runners page
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/admin/runners_controller.rb | 4 | ||||
-rw-r--r-- | app/finders/admin/runners_finder.rb | 10 | ||||
-rw-r--r-- | app/helpers/sorting_helper.rb | 11 | ||||
-rw-r--r-- | app/views/admin/runners/_sort_dropdown.html.haml | 11 | ||||
-rw-r--r-- | app/views/admin/runners/index.html.haml | 4 |
5 files changed, 36 insertions, 4 deletions
diff --git a/app/controllers/admin/runners_controller.rb b/app/controllers/admin/runners_controller.rb index f36712c5c41..7b6517722ce 100644 --- a/app/controllers/admin/runners_controller.rb +++ b/app/controllers/admin/runners_controller.rb @@ -2,8 +2,10 @@ class Admin::RunnersController < Admin::ApplicationController before_action :runner, except: :index def index - @runners = Admin::RunnersFinder.new(params: params).execute + finder = Admin::RunnersFinder.new(params: params) + @runners = finder.execute @active_runners_cnt = Ci::Runner.online.count + @sort = finder.sort_key end def show diff --git a/app/finders/admin/runners_finder.rb b/app/finders/admin/runners_finder.rb index 19e1dc5e477..09329accf41 100644 --- a/app/finders/admin/runners_finder.rb +++ b/app/finders/admin/runners_finder.rb @@ -14,6 +14,14 @@ class Admin::RunnersFinder < UnionFinder @runners end + def sort_key + if @params[:sort] == 'contacted_asc' + 'contacted_asc' + else + 'created_date' + end + end + private def search! @@ -33,7 +41,7 @@ class Admin::RunnersFinder < UnionFinder end def sort! - sort = @params[:sort] == 'contacted_asc' ? { contacted_at: :asc } : { id: :desc } + sort = sort_key == 'contacted_asc' ? { contacted_at: :asc } : { created_at: :desc } @runners = @runners.order(sort) end diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index 36a311dfa8a..2e46d3f93b9 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -22,7 +22,8 @@ module SortingHelper sort_value_recently_updated => sort_title_recently_updated, sort_value_popularity => sort_title_popularity, sort_value_priority => sort_title_priority, - sort_value_upvotes => sort_title_upvotes + sort_value_upvotes => sort_title_upvotes, + sort_value_contacted_date => sort_title_contacted_date } end @@ -228,6 +229,10 @@ module SortingHelper s_('SortOptions|Most popular') end + def sort_title_contacted_date + s_('SortOptions|Last Contact') + end + # Values. def sort_value_access_level_asc 'access_level_asc' @@ -348,4 +353,8 @@ module SortingHelper def sort_value_upvotes 'upvotes_desc' end + + def sort_value_contacted_date + 'contacted_asc' + end end diff --git a/app/views/admin/runners/_sort_dropdown.html.haml b/app/views/admin/runners/_sort_dropdown.html.haml new file mode 100644 index 00000000000..b201e6bf10e --- /dev/null +++ b/app/views/admin/runners/_sort_dropdown.html.haml @@ -0,0 +1,11 @@ +- sorted_by = sort_options_hash[@sort] + +.dropdown.inline.prepend-left-10 + %button.dropdown-toggle{ type: 'button', data: { toggle: 'dropdown', display: 'static' } } + = sorted_by + = icon('chevron-down') + %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable.dropdown-menu-sort + %li + = sortable_item(sort_title_created_date, page_filter_path(sort: sort_value_created_date, label: true), sorted_by) + = sortable_item(sort_title_contacted_date, page_filter_path(sort: sort_value_contacted_date, label: true), sorted_by) + diff --git a/app/views/admin/runners/index.html.haml b/app/views/admin/runners/index.html.haml index 0b4253286de..e3d2587b8e5 100644 --- a/app/views/admin/runners/index.html.haml +++ b/app/views/admin/runners/index.html.haml @@ -82,6 +82,8 @@ = status.titleize = button_tag class: %w[clear-search hidden] do = icon('times') + .filter-dropdown-container + = render 'sort_dropdown' .clearfix .float-right.light .prepend-top-10 @@ -103,7 +105,7 @@ %th Projects %th Jobs %th Tags - %th= link_to 'Last contact', admin_runners_path(safe_params.slice(:search).merge(sort: 'contacted_asc')) + %th Last contact %th - @runners.each do |runner| |