Commit 367445fd authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Refactor explore area

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 1df0345e
class Public::GroupsController < ApplicationController class Explore::GroupsController < ApplicationController
skip_before_filter :authenticate_user!, skip_before_filter :authenticate_user!,
:reject_blocked, :set_current_user_for_observers, :reject_blocked, :set_current_user_for_observers,
:add_abilities :add_abilities
layout "public" layout "explore"
def index def index
@groups = GroupsFinder.new.execute(current_user) @groups = GroupsFinder.new.execute(current_user)
......
class Public::ProjectsController < ApplicationController class Explore::ProjectsController < ApplicationController
skip_before_filter :authenticate_user!, skip_before_filter :authenticate_user!,
:reject_blocked, :set_current_user_for_observers, :reject_blocked,
:add_abilities :add_abilities
layout 'public' layout 'explore'
def index def index
@projects = Project.publicish(current_user) @projects = ProjectsFinder.new.execute(current_user)
@projects = @projects.search(params[:search]) if params[:search].present? @projects = @projects.search(params[:search]) if params[:search].present?
@projects = @projects.sort(@sort = params[:sort]) @projects = @projects.sort(@sort = params[:sort])
@projects = @projects.includes(:namespace).page(params[:page]).per(20) @projects = @projects.includes(:namespace).page(params[:page]).per(20)
end end
def trending
@trending_projects = TrendingProjectsFinder.new.execute(current_user)
@trending_projects = @trending_projects.page(params[:page]).per(10)
end
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 .clearfix
.pull-left .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 .form-group
= search_field_tag :search, params[:search], placeholder: "Filter by name", class: "form-control search-text-input input-mn-300", id: "groups_search" = search_field_tag :search, params[:search], placeholder: "Filter by name", class: "form-control search-text-input input-mn-300", id: "groups_search"
.form-group .form-group
...@@ -17,15 +17,15 @@ ...@@ -17,15 +17,15 @@
%b.caret %b.caret
%ul.dropdown-menu %ul.dropdown-menu
%li %li
= link_to public_groups_path(sort: nil) do = link_to explore_groups_path(sort: nil) do
Name Name
= link_to public_groups_path(sort: 'newest') do = link_to explore_groups_path(sort: 'newest') do
Newest Newest
= link_to public_groups_path(sort: 'oldest') do = link_to explore_groups_path(sort: 'oldest') do
Oldest Oldest
= link_to public_groups_path(sort: 'recently_updated') do = link_to explore_groups_path(sort: 'recently_updated') do
Recently updated Recently updated
= link_to public_groups_path(sort: 'last_updated') do = link_to explore_groups_path(sort: 'last_updated') do
Last updated Last updated
%hr %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 @@ ...@@ -31,32 +31,7 @@
%hr %hr
.public-projects .public-projects
%ul.bordered-list.top-list %ul.bordered-list.top-list
- @projects.each do |project| = render @projects
%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
- unless @projects.present? - unless @projects.present?
.nothing-here-block No public projects .nothing-here-block No public projects
......
...@@ -3,16 +3,9 @@ ...@@ -3,16 +3,9 @@
%i.icon-comments-alt %i.icon-comments-alt
See most discussed projects for last month See most discussed projects for last month
%hr %hr
%ul.bordered-list .public-projects
- @trending_projects.each do |project| %ul.bordered-list
%li = render @trending_projects
%h4.project-title
.project-access-icon
= visibility_level_icon(project.visibility_level)
= link_to project.name_with_namespace, project
.project-description
= project.description
.center .center
= link_to 'Show all projects', public_projects_path, class: 'btn btn-primary' = link_to 'Show all projects', public_projects_path, class: 'btn btn-primary'
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
'data-original-title' => 'Help' do 'data-original-title' => 'Help' do
%i.icon-question-sign %i.icon-question-sign
%li %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 %i.icon-globe
%li %li
= link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'My snippets' do = link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'My snippets' do
......
...@@ -33,6 +33,6 @@ ...@@ -33,6 +33,6 @@
%hr %hr
.container .container
.footer-links .footer-links
= link_to "Explore", public_explore_path = link_to "Explore", explore_root_path
= link_to "Documentation", "http://doc.gitlab.com/" = link_to "Documentation", "http://doc.gitlab.com/"
= link_to "About GitLab", "https://about.gitlab.com/" = link_to "About GitLab", "https://about.gitlab.com/"
...@@ -18,11 +18,11 @@ ...@@ -18,11 +18,11 @@
%ul.nav.nav-tabs %ul.nav.nav-tabs
= nav_link(controller: :explore) do = nav_link(path: 'projects#trending') do
= link_to 'Trending Projects', public_explore_path = link_to 'Trending Projects', explore_root_path
= nav_link(controller: :projects) do = nav_link(path: 'projects#index') do
= link_to 'All Projects', public_projects_path = link_to 'All Projects', explore_projects_path
= nav_link(controller: :groups) do = nav_link(controller: :groups) do
= link_to 'All Groups', public_groups_path = link_to 'All Groups', explore_groups_path
= yield = 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 ...@@ -47,15 +47,23 @@ Gitlab::Application.routes.draw do
get "/s/:username" => "snippets#user_index", as: :user_snippets, constraints: { username: /.*/ } get "/s/:username" => "snippets#user_index", as: :user_snippets, constraints: { username: /.*/ }
# #
# Public namespace # Explroe area
# #
namespace :public do namespace :explore do
resources :projects, only: [:index] resources :projects, only: [:index] do
collection do
get :trending
end
end
resources :groups, only: [:index] resources :groups, only: [:index]
get 'explore' => 'explore#index' root to: "projects#trending"
root to: "explore#index"
end end
# Compatibility with old routing
get 'public' => "explore/projects#index"
get 'public/projects' => "explore/projects#index"
# #
# Attachments serving # 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