summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLong Nguyen <long.polyglot@gmail.com>2016-05-08 15:27:33 +0700
committerLong Nguyen <long.polyglot@gmail.com>2016-05-08 15:27:33 +0700
commitffda8a1a0eb273e62fcb0197f352400946571778 (patch)
treebe1465d224f13c603d0ee80f12dcb0f161bea0d7
parent5f60841d7e4aea2b6298df7ea0423e3baa769df1 (diff)
downloadgitlab-ce-ffda8a1a0eb273e62fcb0197f352400946571778.tar.gz
user routings refactor
-rw-r--r--app/controllers/snippets_controller.rb22
-rw-r--r--app/views/search/results/_snippet_blob.html.haml2
-rw-r--r--app/views/search/results/_snippet_title.html.haml2
-rw-r--r--app/views/shared/snippets/_snippet.html.haml2
-rw-r--r--app/views/snippets/index.html.haml13
-rw-r--r--app/views/users/calendar.html.haml2
-rw-r--r--app/views/users/show.html.haml12
-rw-r--r--config/routes.rb37
-rw-r--r--spec/routing/routing_spec.rb4
9 files changed, 64 insertions, 32 deletions
diff --git a/app/controllers/snippets_controller.rb b/app/controllers/snippets_controller.rb
index 2c038bdfda5..2a17c1f34db 100644
--- a/app/controllers/snippets_controller.rb
+++ b/app/controllers/snippets_controller.rb
@@ -10,11 +10,29 @@ class SnippetsController < ApplicationController
# Allow destroy snippet
before_action :authorize_admin_snippet!, only: [:destroy]
- skip_before_action :authenticate_user!, only: [:show, :raw]
+ skip_before_action :authenticate_user!, only: [:index, :show, :raw]
layout 'snippets'
respond_to :html
+ def index
+ if params[:username].present?
+ @user = User.find_by(username: params[:username])
+
+ render_404 and return unless @user
+
+ @snippets = SnippetsFinder.new.execute(current_user, {
+ filter: :by_user,
+ user: @user,
+ scope: params[:scope] }).
+ page(params[:page])
+
+ render 'index'
+ else
+ redirect_to(current_user ? dashboard_snippets_path : explore_snippets_path)
+ end
+ end
+
def new
@snippet = PersonalSnippet.new
end
@@ -43,7 +61,7 @@ class SnippetsController < ApplicationController
@snippet.destroy
- redirect_to dashboard_snippets_path
+ redirect_to snippets_path
end
def raw
diff --git a/app/views/search/results/_snippet_blob.html.haml b/app/views/search/results/_snippet_blob.html.haml
index c9b7bd154af..6b7e06f2b21 100644
--- a/app/views/search/results/_snippet_blob.html.haml
+++ b/app/views/search/results/_snippet_blob.html.haml
@@ -6,7 +6,7 @@
%span
= snippet.title
by
- = link_to user_snippets_path(snippet.author) do
+ = link_to snippets_user_path(snippet.author) do
= image_tag avatar_icon(snippet.author_email), class: "avatar avatar-inline s16", alt: ''
= snippet.author_name
%span.light #{time_ago_with_tooltip(snippet.created_at)}
diff --git a/app/views/search/results/_snippet_title.html.haml b/app/views/search/results/_snippet_title.html.haml
index c414acb6a11..8c884926db5 100644
--- a/app/views/search/results/_snippet_title.html.haml
+++ b/app/views/search/results/_snippet_title.html.haml
@@ -17,7 +17,7 @@
= "##{snippet_title.id}"
%span
by
- = link_to user_snippets_path(snippet_title.author) do
+ = link_to snippets_user_path(snippet_title.author) do
= image_tag avatar_icon(snippet_title.author_email), class: "avatar avatar-inline s16", alt: ''
= snippet_title.author_name
%span.light #{time_ago_with_tooltip(snippet_title.created_at)}
diff --git a/app/views/shared/snippets/_snippet.html.haml b/app/views/shared/snippets/_snippet.html.haml
index c96dfefe17f..e6a7a7777b0 100644
--- a/app/views/shared/snippets/_snippet.html.haml
+++ b/app/views/shared/snippets/_snippet.html.haml
@@ -16,6 +16,6 @@
= link_to snippet.project.name_with_namespace, namespace_project_path(snippet.project.namespace, snippet.project)
.snippet-info
- = link_to user_snippets_path(snippet.author) do
+ = link_to snippets_user_path(snippet.author) do
= snippet.author_name
authored #{time_ago_with_tooltip(snippet.created_at)}
diff --git a/app/views/snippets/index.html.haml b/app/views/snippets/index.html.haml
new file mode 100644
index 00000000000..8aa3d490fa3
--- /dev/null
+++ b/app/views/snippets/index.html.haml
@@ -0,0 +1,13 @@
+ - page_title "By #{@user.name}", "Snippets"
+
+ %ol.breadcrumb
+ %li
+ = link_to snippets_path do
+ Snippets
+ %li
+ = @user.name
+ .pull-right.hidden-xs
+ = link_to user_path(@user) do
+ #{@user.name} profile page
+
+ = render 'snippets'
diff --git a/app/views/users/calendar.html.haml b/app/views/users/calendar.html.haml
index 1de71f37d1a..6ff4eb79b05 100644
--- a/app/views/users/calendar.html.haml
+++ b/app/views/users/calendar.html.haml
@@ -4,7 +4,7 @@
#{@timestamps.to_json},
#{@starting_year},
#{@starting_month},
- '#{user_calendar_activities_path}'
+ '#{calendar_activities_user_path}'
);
.calendar-hint Summary of issues, merge requests, and push events
diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml
index 2ccdf843a6c..e894a8e9395 100644
--- a/app/views/users/show.html.haml
+++ b/app/views/users/show.html.haml
@@ -70,19 +70,19 @@
%ul.nav-links.center.user-profile-nav
%li.js-activity-tab
- = link_to user_calendar_activities_path, data: {target: 'div#activity', action: 'activity', toggle: 'tab'} do
+ = link_to calendar_activities_user_path, data: {target: 'div#activity', action: 'activity', toggle: 'tab'} do
Activity
%li.js-groups-tab
- = link_to user_groups_path, data: {target: 'div#groups', action: 'groups', toggle: 'tab'} do
+ = link_to groups_user_path, data: {target: 'div#groups', action: 'groups', toggle: 'tab'} do
Groups
%li.js-contributed-tab
- = link_to user_contributed_projects_path, data: {target: 'div#contributed', action: 'contributed', toggle: 'tab'} do
+ = link_to contributed_projects_user_path, data: {target: 'div#contributed', action: 'contributed', toggle: 'tab'} do
Contributed projects
%li.projects-tab
- = link_to user_projects_path, data: {target: 'div#projects', action: 'projects', toggle: 'tab'} do
+ = link_to projects_user_path, data: {target: 'div#projects', action: 'projects', toggle: 'tab'} do
Personal projects
%li.snippets-tab
- = link_to user_snippets_path, data: {target: 'div#snippets', action: 'snippets', toggle: 'tab'} do
+ = link_to snippets_user_path, data: {target: 'div#snippets', action: 'snippets', toggle: 'tab'} do
Snippets
%div{ class: container_class }
@@ -90,7 +90,7 @@
#activity.tab-pane
.gray-content-block.calender-block.white.second-block.hidden-xs
%div{ class: container_class }
- .user-calendar{data: {href: user_calendar_path}}
+ .user-calendar{data: {href: calendar_user_path}}
%h4.center.light
%i.fa.fa-spinner.fa-spin
.user-calendar-activities
diff --git a/config/routes.rb b/config/routes.rb
index 2bfaa2c2af6..533c3b98e8e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -91,6 +91,9 @@ Rails.application.routes.draw do
end
end
+ get '/s/:username', to: redirect('/u/:username/snippets'),
+ constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ }
+
#
# Invites
#
@@ -340,26 +343,20 @@ Rails.application.routes.draw do
end
end
- get 'u/:username/calendar' => 'users#calendar', as: :user_calendar,
- constraints: { username: /.*/ }
-
- get 'u/:username/calendar_activities' => 'users#calendar_activities', as: :user_calendar_activities,
- constraints: { username: /.*/ }
-
- get 'u/:username/groups' => 'users#groups', as: :user_groups,
- constraints: { username: /.*/ }
-
- get 'u/:username/projects' => 'users#projects', as: :user_projects,
- constraints: { username: /.*/ }
-
- get 'u/:username/contributed' => 'users#contributed', as: :user_contributed_projects,
- constraints: { username: /.*/ }
-
- get 'u/:username/snippets' => 'users#snippets', as: :user_snippets,
- constraints: { username: /.*/ }
-
- get '/u/:username' => 'users#show', as: :user,
- constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ }
+ resources(:users,
+ path: 'u',
+ param: :username,
+ constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ },
+ only: :show) do
+ member do
+ get :calendar, as: :calendar
+ get :calendar_activities, as: :calendar_activities
+ get :groups, as: :groups
+ get :projects, as: :projects
+ get :contributed, as: :contributed_projects
+ get :snippets, as: :snippets
+ end
+ end
#
# Dashboard Area
diff --git a/spec/routing/routing_spec.rb b/spec/routing/routing_spec.rb
index 9deffd0a1e3..543088fa088 100644
--- a/spec/routing/routing_spec.rb
+++ b/spec/routing/routing_spec.rb
@@ -31,6 +31,10 @@ describe SnippetsController, "routing" do
expect(get("/snippets/1/raw")).to route_to('snippets#raw', id: '1')
end
+ it "to #index" do
+ expect(get("/snippets")).to route_to('snippets#index')
+ end
+
it "to #create" do
expect(post("/snippets")).to route_to('snippets#create')
end