From a57ded855b9e1c94c1959fdbb82acc92f95ba5ae Mon Sep 17 00:00:00 2001 From: Arinde Eniola Date: Thu, 5 May 2016 15:55:09 +0100 Subject: [PATCH 1/2] Add filter dropdown to tag page --- app/controllers/projects/tags_controller.rb | 18 +++++++++++++++++- app/helpers/sorting_helper.rb | 8 ++++++++ app/views/projects/tags/index.html.haml | 15 +++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/app/controllers/projects/tags_controller.rb b/app/controllers/projects/tags_controller.rb index 46b242aa5ff5..ea7c1e878120 100644 --- a/app/controllers/projects/tags_controller.rb +++ b/app/controllers/projects/tags_controller.rb @@ -6,7 +6,8 @@ class Projects::TagsController < Projects::ApplicationController before_action :authorize_admin_project!, only: [:destroy] def index - sorted = VersionSorter.rsort(@repository.tag_names) + @sort = params[:sort] + sorted = tags_sorted_by(@sort) @tags = Kaminari.paginate_array(sorted).page(params[:page]) @releases = project.releases.where(tag: @tags) end @@ -41,4 +42,19 @@ def destroy format.js end end + + private + + def tags_sorted_by(value) + default_sort = VersionSorter.rsort(@repository.tag_names) + + case value + when 'recently_released' + default_sort + when 'last_released' + VersionSorter.sort(@repository.tag_names) + else + default_sort + end + end end diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index 630e10ea892b..fac215ba835e 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -44,6 +44,14 @@ def sort_title_recently_created 'Last created' end + def sort_title_recently_released + 'Last released' + end + + def sort_title_oldest_released + 'Oldest released' + end + def sort_title_milestone_soon 'Milestone due soon' end diff --git a/app/views/projects/tags/index.html.haml b/app/views/projects/tags/index.html.haml index dc6ece30dd29..b4e393f3b1bc 100644 --- a/app/views/projects/tags/index.html.haml +++ b/app/views/projects/tags/index.html.haml @@ -8,6 +8,21 @@ = link_to new_namespace_project_tag_path(@project.namespace, @project), class: 'btn btn-create new-tag-btn' do = icon('plus') New tag +   + .dropdown.inline + %button.dropdown-toggle.btn{type: 'button', 'data-toggle' => 'dropdown'} + %span.light + - if @sort.present? + = @sort.humanize + - else + Filter + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + %li + = link_to namespace_project_tags_path(sort: 'recently_released') do + = sort_title_recently_released + = link_to namespace_project_tags_path(sort: 'last_released') do + = sort_title_oldest_released .oneline Tags give the ability to mark specific points in history as being important -- GitLab From dd17c605178335d9dc8652f5b7d2b10ee50354a2 Mon Sep 17 00:00:00 2001 From: Arinde Eniola Date: Thu, 5 May 2016 16:00:04 +0100 Subject: [PATCH 2/2] add item to CHANGELOG --- CHANGELOG | 1 + app/helpers/sorting_helper.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 0020e580b86c..b71f232514dd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,7 @@ v 8.8.0 (unreleased) - Fix error when visiting commit builds page before build was updated - Add 'l' shortcut to open Label dropdown on issuables and 'i' to create new issue on a project - Updated search UI + - Add filter dropdown in commit page - Display informative message when new milestone is created - Allow "NEWS" and "CHANGES" as alternative names for CHANGELOG. !3768 (Connor Shea) - Added button to toggle whitespaces changes on diff view diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index fac215ba835e..97cc938edc2b 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -45,7 +45,7 @@ def sort_title_recently_created end def sort_title_recently_released - 'Last released' + 'Recently released' end def sort_title_oldest_released -- GitLab