Refactor explore area

Signed-off-by: 's avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 1df0345e
class Public::GroupsController < ApplicationController
class Explore::GroupsController < ApplicationController
skip_before_filter :authenticate_user!,
:reject_blocked, :set_current_user_for_observers,
:add_abilities
layout "public"
layout "explore"
def index
@groups = GroupsFinder.new.execute(current_user)
......
class Public::ProjectsController < ApplicationController
class Explore::ProjectsController < ApplicationController
skip_before_filter :authenticate_user!,
:reject_blocked, :set_current_user_for_observers,
:add_abilities
:reject_blocked,
:add_abilities
layout 'public'
layout 'explore'
def index
@projects = Project.publicish(current_user)
@projects = ProjectsFinder.new.execute(current_user)
@projects = @projects.search(params[:search]) if params[:search].present?
@projects = @projects.sort(@sort = params[:sort])
@projects = @projects.includes(:namespace).page(params[:page]).per(20)
end
def trending
@trending_projects = TrendingProjectsFinder.new.execute(current_user)
@trending_projects = @trending_projects.page(params[:page]).per(10)
end
end
class Public::ExploreController < ApplicationController
skip_before_filter :authenticate_user!,
:reject_blocked,
:add_abilities
layout "public"
def index
@trending_projects = TrendingProjectsFinder.new.execute(current_user)
@trending_projects = @trending_projects.page(params[:page]).per(10)
end
end
.clearfix
.pull-left
= form_tag public_groups_path, method: :get, class: 'form-inline form-tiny' do |f|
= form_tag explore_groups_path, method: :get, class: 'form-inline form-tiny' do |f|
.form-group
= search_field_tag :search, params[:search], placeholder: "Filter by name", class: "form-control search-text-input input-mn-300", id: "groups_search"
.form-group
......@@ -17,15 +17,15 @@
%b.caret
%ul.dropdown-menu
%li
= link_to public_groups_path(sort: nil) do
= link_to explore_groups_path(sort: nil) do
Name
= link_to public_groups_path(sort: 'newest') do
= link_to explore_groups_path(sort: 'newest') do
Newest
= link_to public_groups_path(sort: 'oldest') do
= link_to explore_groups_path(sort: 'oldest') do
Oldest
= link_to public_groups_path(sort: 'recently_updated') do
= link_to explore_groups_path(sort: 'recently_updated') do
Recently updated
= link_to public_groups_path(sort: 'last_updated') do
= link_to explore_groups_path(sort: 'last_updated') do
Last updated
%hr
......
%li
%h4.project-title
.project-access-icon
= visibility_level_icon(project.visibility_level)
= link_to project.name_with_namespace, project
- if project.description.present?
%p.project-description.str-truncated
= project.description
.repo-info
- unless project.empty_repo?
= link_to pluralize(project.repository.round_commit_count, 'commit'), project_commits_path(project, project.default_branch)
&middot;
= link_to pluralize(project.repository.branch_names.count, 'branch'), project_branches_path(project)
&middot;
= link_to pluralize(project.repository.tag_names.count, 'tag'), project_tags_path(project)
- else
%i.icon-warning-sign
Empty repository
......@@ -31,32 +31,7 @@
%hr
.public-projects
%ul.bordered-list.top-list
- @projects.each do |project|
%li
%h4
= link_to project_path(project) do
= project.name_with_namespace
- if project.internal?
%small.access-icon
= internal_icon
Internal
.pull-right.hidden-sm.hidden-xs
%pre.public-clone git clone #{project.http_url_to_repo}
- if project.description.present?
%p
= project.description
.repo-info
- unless project.empty_repo?
= link_to pluralize(project.repository.round_commit_count, 'commit'), project_commits_path(project, project.default_branch)
&middot;
= link_to pluralize(project.repository.branch_names.count, 'branch'), project_branches_path(project)
&middot;
= link_to pluralize(project.repository.tag_names.count, 'tag'), project_tags_path(project)
- else
%i.icon-warning-sign
Empty repository
= render @projects
- unless @projects.present?
.nothing-here-block No public projects
......
......@@ -3,16 +3,9 @@
%i.icon-comments-alt
See most discussed projects for last month
%hr
%ul.bordered-list
- @trending_projects.each do |project|
%li
%h4.project-title
.project-access-icon
= visibility_level_icon(project.visibility_level)
= link_to project.name_with_namespace, project
.project-description
= project.description
.public-projects
%ul.bordered-list
= render @trending_projects
.center
= link_to 'Show all projects', public_projects_path, class: 'btn btn-primary'
......@@ -24,7 +24,7 @@
'data-original-title' => 'Help' do
%i.icon-question-sign
%li
= link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
= link_to explore_root_path, title: "Explore", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
%i.icon-globe
%li
= link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'My snippets' do
......
......@@ -33,6 +33,6 @@
%hr
.container
.footer-links
= link_to "Explore", public_explore_path
= link_to "Explore", explore_root_path
= link_to "Documentation", "http://doc.gitlab.com/"
= link_to "About GitLab", "https://about.gitlab.com/"
......@@ -18,11 +18,11 @@
%ul.nav.nav-tabs
= nav_link(controller: :explore) do
= link_to 'Trending Projects', public_explore_path
= nav_link(controller: :projects) do
= link_to 'All Projects', public_projects_path
= nav_link(path: 'projects#trending') do
= link_to 'Trending Projects', explore_root_path
= nav_link(path: 'projects#index') do
= link_to 'All Projects', explore_projects_path
= nav_link(controller: :groups) do
= link_to 'All Groups', public_groups_path
= link_to 'All Groups', explore_groups_path
= yield
!!! 5
%html{ lang: "en"}
= render "layouts/head", title: "Public Groups"
%body{class: "#{app_theme} application", :'data-page' => body_data_page}
= render "layouts/broadcast"
- if current_user
= render "layouts/head_panel", title: "Public Groups"
- else
= render "layouts/public_head_panel", title: "Public Groups"
.container.navless-container
.content= yield
......@@ -47,15 +47,23 @@ Gitlab::Application.routes.draw do
get "/s/:username" => "snippets#user_index", as: :user_snippets, constraints: { username: /.*/ }
#
# Public namespace
# Explroe area
#
namespace :public do
resources :projects, only: [:index]
namespace :explore do
resources :projects, only: [:index] do
collection do
get :trending
end
end
resources :groups, only: [:index]
get 'explore' => 'explore#index'
root to: "explore#index"
root to: "projects#trending"
end
# Compatibility with old routing
get 'public' => "explore/projects#index"
get 'public/projects' => "explore/projects#index"
#
# Attachments serving
#
......
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