Commit 8734a9cd authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'most-starred' into 'master'

Most starred projects page

Fixes #1461

See merge request !996
parents 76af5a1d d3ea5387
......@@ -16,4 +16,10 @@ class Explore::ProjectsController < ApplicationController
@trending_projects = TrendingProjectsFinder.new.execute(current_user)
@trending_projects = @trending_projects.page(params[:page]).per(10)
end
def starred
@starred_projects = ProjectsFinder.new.execute(current_user)
@starred_projects = @starred_projects.order('star_count DESC')
@starred_projects = @starred_projects.page(params[:page]).per(10)
end
end
......@@ -4,6 +4,10 @@
= visibility_level_icon(project.visibility_level)
= link_to project.name_with_namespace, project
- if current_page?(starred_explore_projects_path)
%strong.pull-right
= pluralize project.star_count, 'star'
- if project.description.present?
%p.project-description.str-truncated
= project.description
......@@ -18,3 +22,4 @@
- else
%i.icon-warning-sign
Empty repository
.explore-trending-block
%p.lead
%i.icon-comments-alt
See most starred projects
%hr
.public-projects
%ul.bordered-list
= render @starred_projects
= paginate @starred_projects, theme: 'gitlab'
......@@ -20,6 +20,8 @@
%ul.nav.nav-tabs
= nav_link(path: 'projects#trending') do
= link_to 'Trending Projects', explore_root_path
= nav_link(path: 'projects#starred') do
= link_to 'Most Starred Projects', starred_explore_projects_path
= nav_link(path: 'projects#index') do
= link_to 'All Projects', explore_projects_path
= nav_link(controller: :groups) do
......
......@@ -53,6 +53,7 @@ Gitlab::Application.routes.draw do
resources :projects, only: [:index] do
collection do
get :trending
get :starred
end
end
......
......@@ -100,3 +100,17 @@ Feature: Explore Projects Feature
And I visit "Internal" merge requests page
And project "Internal" has "Feature implemented" open merge request
Then I should see list of merge requests for "Internal" project
Scenario: Trending page
Given I sign in as a user
And project "Community" has comments
When I visit the explore trending projects
Then I should see project "Community"
And I should not see project "Internal"
And I should not see project "Enterprise"
Scenario: Most starred page
Given I sign in as a user
When I visit the explore starred projects
Then I should see project "Community"
And I should see project "Internal"
......@@ -355,9 +355,13 @@ module SharedPaths
visit explore_projects_path
end
# ----------------------------------------
# Public Groups
# ----------------------------------------
step 'I visit the explore trending projects' do
visit trending_explore_projects_path
end
step 'I visit the explore starred projects' do
visit starred_explore_projects_path
end
step 'I visit the public groups area' do
visit explore_groups_path
......
......@@ -130,4 +130,9 @@ module SharedProject
step 'public empty project "Empty Public Project"' do
create :empty_project, :public, name: "Empty Public Project"
end
step 'project "Community" has comments' do
project = Project.find_by(name: "Community")
2.times { create(:note_on_issue, project: project) }
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment