diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/projects_helper.rb | 4 | ||||
-rw-r--r-- | app/helpers/search_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/sorting_helper.rb | 27 | ||||
-rw-r--r-- | app/models/project.rb | 4 | ||||
-rw-r--r-- | app/views/dashboard/_projects_head.html.haml | 1 | ||||
-rw-r--r-- | app/views/dashboard/projects/_nav.html.haml | 16 | ||||
-rw-r--r-- | app/views/dashboard/projects/index.html.haml | 3 | ||||
-rw-r--r-- | app/views/explore/projects/_filter.html.haml | 3 | ||||
-rw-r--r-- | app/views/explore/projects/_nav.html.haml | 1 | ||||
-rw-r--r-- | app/views/shared/projects/_search_bar.html.haml | 1 | ||||
-rw-r--r-- | app/views/shared/projects/_sort_dropdown.html.haml | 5 |
11 files changed, 39 insertions, 28 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 8977ccaa9d8..2c43b1a2067 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -239,8 +239,10 @@ module ProjectsHelper end # rubocop: enable CodeReuse/ActiveRecord + # TODO: Remove this method when removing the feature flag + # https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/11209#note_162234863 def show_projects?(projects, params) - !!(params[:personal] || params[:name] || any_projects?(projects)) + Feature.enabled?(:project_list_filter_bar) || !!(params[:personal] || params[:name] || any_projects?(projects)) end def push_to_create_project_command(user = current_user) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index a62c00df60b..4594f5a31b9 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -128,7 +128,7 @@ module SearchHelper # rubocop: disable CodeReuse/ActiveRecord def projects_autocomplete(term, limit = 5) current_user.authorized_projects.order_id_desc.search_by_title(term) - .sorted_by_stars.non_archived.limit(limit).map do |p| + .sorted_by_stars_desc.non_archived.limit(limit).map do |p| { category: "Projects", id: p.id, diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index df2f4468199..f2d814e6930 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -30,17 +30,20 @@ module SortingHelper end def projects_sort_options_hash - Feature.enabled?(:project_list_filter_bar) && !current_controller?('admin/projects') ? projects_sort_common_options_hash : projects_sort_admin_options_hash + Feature.enabled?(:project_list_filter_bar) && !current_controller?('admin/projects') ? projects_sort_common_options_hash : old_projects_sort_options_hash end - def projects_sort_admin_options_hash + # TODO: Simplify these sorting options + # https://gitlab.com/gitlab-org/gitlab-ce/issues/60798 + # https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/11209#note_162234858 + def old_projects_sort_options_hash options = { sort_value_latest_activity => sort_title_latest_activity, sort_value_name => sort_title_name, sort_value_oldest_activity => sort_title_oldest_activity, sort_value_oldest_created => sort_title_oldest_created, sort_value_recently_created => sort_title_recently_created, - sort_value_most_stars => sort_title_most_stars + sort_value_stars_desc => sort_title_most_stars } if current_controller?('admin/projects') @@ -55,7 +58,7 @@ module SortingHelper sort_value_latest_activity => sort_title_latest_activity, sort_value_recently_created => sort_title_created_date, sort_value_name => sort_title_name, - sort_value_most_stars => sort_title_stars + sort_value_stars_desc => sort_title_stars } end @@ -64,11 +67,11 @@ module SortingHelper sort_value_latest_activity => sort_title_latest_activity, sort_value_recently_created => sort_title_created_date, sort_value_name => sort_title_name, - sort_value_most_stars => sort_title_stars, + sort_value_stars_desc => sort_title_stars, sort_value_oldest_activity => sort_title_latest_activity, sort_value_oldest_created => sort_title_created_date, sort_value_name_desc => sort_title_name, - sort_value_most_stars_asc => sort_title_stars + sort_value_stars_asc => sort_title_stars } end @@ -77,11 +80,11 @@ module SortingHelper sort_value_latest_activity => sort_value_oldest_activity, sort_value_recently_created => sort_value_oldest_created, sort_value_name => sort_value_name_desc, - sort_value_most_stars => sort_value_most_stars_asc, + sort_value_stars_desc => sort_value_stars_asc, sort_value_oldest_activity => sort_value_latest_activity, sort_value_oldest_created => sort_value_recently_created, sort_value_name_desc => sort_value_name, - sort_value_most_stars_asc => sort_value_most_stars + sort_value_stars_asc => sort_value_stars_desc } end @@ -98,7 +101,7 @@ module SortingHelper def subgroups_sort_options_hash groups_sort_options_hash.merge( - sort_value_most_stars => sort_title_most_stars + sort_value_stars_desc => sort_title_most_stars ) end @@ -215,6 +218,8 @@ module SortingHelper end end + # TODO: dedupicate issuable and project sort direction + # https://gitlab.com/gitlab-org/gitlab-ce/issues/60798 def issuable_sort_direction_button(sort_value) link_class = 'btn btn-default has-tooltip reverse-sort-btn qa-reverse-sort' reverse_sort = issuable_reverse_sort_order_hash[sort_value] @@ -525,11 +530,11 @@ module SortingHelper 'contacted_asc' end - def sort_value_most_stars + def sort_value_stars_desc 'stars_desc' end - def sort_value_most_stars_asc + def sort_value_stars_asc 'stars_asc' end diff --git a/app/models/project.rb b/app/models/project.rb index da5f2c2e96e..da72186c8a0 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -357,7 +357,7 @@ class Project < ApplicationRecord # last_activity_at is throttled every minute, but last_repository_updated_at is updated with every push scope :sorted_by_activity, -> { reorder("GREATEST(COALESCE(last_activity_at, '1970-01-01'), COALESCE(last_repository_updated_at, '1970-01-01')) DESC") } - scope :sorted_by_stars, -> { reorder(star_count: :desc) } + scope :sorted_by_stars_desc, -> { reorder(star_count: :desc) } scope :sorted_by_stars_asc, -> { reorder(star_count: :asc) } scope :in_namespace, ->(namespace_ids) { where(namespace_id: namespace_ids) } @@ -545,7 +545,7 @@ class Project < ApplicationRecord when 'latest_activity_asc' reorder(last_activity_at: :asc) when 'stars_desc' - sorted_by_stars + sorted_by_stars_desc when 'stars_asc' sorted_by_stars_asc else diff --git a/app/views/dashboard/_projects_head.html.haml b/app/views/dashboard/_projects_head.html.haml index 128a766374e..1d349572091 100644 --- a/app/views/dashboard/_projects_head.html.haml +++ b/app/views/dashboard/_projects_head.html.haml @@ -1,5 +1,6 @@ - project_tab_filter = local_assigns.fetch(:project_tab_filter, "") - feature_project_list_filter_bar = Feature.enabled?(:project_list_filter_bar) + = content_for :flash_message do = render 'shared/project_limit' diff --git a/app/views/dashboard/projects/_nav.html.haml b/app/views/dashboard/projects/_nav.html.haml index 2da24e37c86..fdab2bde095 100644 --- a/app/views/dashboard/projects/_nav.html.haml +++ b/app/views/dashboard/projects/_nav.html.haml @@ -2,14 +2,10 @@ - active_class = 'btn p-2 active' - project_tab_filter = local_assigns.fetch(:project_tab_filter, "") - is_explore_trending = project_tab_filter == :explore_trending +- feature_project_list_filter_bar = Feature.enabled?(:project_list_filter_bar) + .nav-block{ class: Feature.enabled?(:project_list_filter_bar) ? "w-100" : "" } - - if !Feature.enabled?(:project_list_filter_bar) - %ul.nav-links.mobile-separator.nav.nav-tabs - = nav_link(html_options: { class: ("active" unless params[:personal].present?) }) do - = link_to s_('DashboardProjects|All'), dashboard_projects_path - = nav_link(html_options: { class: ("active" if params[:personal].present?) }) do - = link_to s_('DashboardProjects|Personal'), filter_projects_path(personal: true) - - else + - if feature_project_list_filter_bar .btn-group.button-filter-group.d-flex.m-0.p-0 - if project_tab_filter == :explore || is_explore_trending = link_to s_('DashboardProjects|Trending'), trending_explore_projects_path, class: is_explore_trending ? active_class : inactive_class @@ -17,3 +13,9 @@ - else = link_to s_('DashboardProjects|All'), dashboard_projects_path, class: params[:personal].present? ? inactive_class : active_class = link_to s_('DashboardProjects|Personal'), filter_projects_path(personal: true), class: params[:personal].present? ? active_class : inactive_class + - else + %ul.nav-links.mobile-separator.nav.nav-tabs + = nav_link(html_options: { class: ("active" unless params[:personal].present?) }) do + = link_to s_('DashboardProjects|All'), dashboard_projects_path + = nav_link(html_options: { class: ("active" if params[:personal].present?) }) do + = link_to s_('DashboardProjects|Personal'), filter_projects_path(personal: true) diff --git a/app/views/dashboard/projects/index.html.haml b/app/views/dashboard/projects/index.html.haml index 9d0a4219446..0298f539b4b 100644 --- a/app/views/dashboard/projects/index.html.haml +++ b/app/views/dashboard/projects/index.html.haml @@ -13,8 +13,7 @@ = render "projects/last_push" - if show_projects?(@projects, params) = render 'dashboard/projects_head' - - unless Feature.enabled?(:project_list_filter_bar) - = render 'nav' + = render 'nav' unless Feature.enabled?(:project_list_filter_bar) = render 'projects' - else = render "zero_authorized_projects" diff --git a/app/views/explore/projects/_filter.html.haml b/app/views/explore/projects/_filter.html.haml index 4606f3ec674..ebc3f6b85ce 100644 --- a/app/views/explore/projects/_filter.html.haml +++ b/app/views/explore/projects/_filter.html.haml @@ -1,8 +1,9 @@ - has_label = local_assigns.fetch(:has_label, false) + - if current_user .dropdown.js-project-filter-dropdown-wrap %button.dropdown-menu-toggle{ href: '#', "data-toggle" => "dropdown", 'data-display' => 'static' } - - if !has_label + - unless has_label = icon('globe', class: 'mt-1') %span.light.ml-3= _("Visibility:") - if params[:visibility_level].present? diff --git a/app/views/explore/projects/_nav.html.haml b/app/views/explore/projects/_nav.html.haml index 9ec2122d5a3..bf65c19b720 100644 --- a/app/views/explore/projects/_nav.html.haml +++ b/app/views/explore/projects/_nav.html.haml @@ -15,4 +15,3 @@ = render 'shared/projects/search_form' = render 'shared/projects/dropdown' = render 'filter' - diff --git a/app/views/shared/projects/_search_bar.html.haml b/app/views/shared/projects/_search_bar.html.haml index e44d8692eea..0620cd86db7 100644 --- a/app/views/shared/projects/_search_bar.html.haml +++ b/app/views/shared/projects/_search_bar.html.haml @@ -1,5 +1,6 @@ - @sort ||= sort_value_latest_activity - project_tab_filter = local_assigns.fetch(:project_tab_filter, "") + .filtered-search-block.row-content-block.bt-0 .filtered-search-wrapper.d-flex.flex-nowrap.flex-column.flex-sm-wrap.flex-sm-row.flex-xl-nowrap - unless project_tab_filter == :starred diff --git a/app/views/shared/projects/_sort_dropdown.html.haml b/app/views/shared/projects/_sort_dropdown.html.haml index 65f175efcf7..0bb2eb371dc 100644 --- a/app/views/shared/projects/_sort_dropdown.html.haml +++ b/app/views/shared/projects/_sort_dropdown.html.haml @@ -1,5 +1,6 @@ - @sort ||= sort_value_latest_activity - toggle_text = projects_sort_option_titles[@sort] + .btn-group.w-100{ role: "group" } .btn-group.w-100.dropdown.js-project-filter-dropdown-wrap{ role: "group" } %button.dropdown-menu-toggle{ id: 'sort-projects-dropdown', type: 'button', data: { toggle: 'dropdown', display: 'static' }, class: 'btn btn-default' } @@ -10,8 +11,7 @@ = _("Sort by") - projects_sort_options_hash.each do |value, title| %li - = link_to filter_projects_path(sort: value), class: ("is-active" if toggle_text == title) do - = title + = link_to title, filter_projects_path(sort: value), class: ("is-active" if toggle_text == title) %li.divider %li @@ -23,6 +23,7 @@ %li = link_to filter_projects_path(archived: 'only'), class: ("is-active" if params[:archived] == 'only') do = _("Show archived projects only") + - if current_user && @group && @group.shared_projects.present? %li.divider %li |