summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/application_controller.rb8
-rw-r--r--app/controllers/dashboard/application_controller.rb11
-rw-r--r--app/controllers/dashboard/groups_controller.rb2
-rw-r--r--app/controllers/dashboard/milestones_controller.rb2
-rw-r--r--app/controllers/dashboard/projects_controller.rb2
-rw-r--r--app/controllers/dashboard_controller.rb6
-rw-r--r--app/controllers/explore/application_controller.rb11
-rw-r--r--app/controllers/explore/groups_controller.rb4
-rw-r--r--app/controllers/explore/projects_controller.rb4
-rw-r--r--app/controllers/groups/application_controller.rb11
-rw-r--r--app/controllers/groups/avatars_controller.rb2
-rw-r--r--app/controllers/groups/milestones_controller.rb4
-rw-r--r--app/controllers/groups_controller.rb13
-rw-r--r--app/controllers/help_controller.rb8
-rw-r--r--app/controllers/invites_controller.rb2
-rw-r--r--app/controllers/oauth/applications_controller.rb8
-rw-r--r--app/controllers/oauth/authorizations_controller.rb8
-rw-r--r--app/controllers/oauth/authorized_applications_controller.rb10
-rw-r--r--app/controllers/profiles/accounts_controller.rb4
-rw-r--r--app/controllers/profiles/application_controller.rb11
-rw-r--r--app/controllers/profiles/avatars_controller.rb4
-rw-r--r--app/controllers/profiles/emails_controller.rb4
-rw-r--r--app/controllers/profiles/keys_controller.rb3
-rw-r--r--app/controllers/profiles/notifications_controller.rb4
-rw-r--r--app/controllers/profiles/passwords_controller.rb10
-rw-r--r--app/controllers/profiles_controller.rb4
-rw-r--r--app/controllers/projects/application_controller.rb10
-rw-r--r--app/controllers/projects/avatars_controller.rb2
-rw-r--r--app/controllers/projects/forks_controller.rb1
-rw-r--r--app/controllers/projects/uploads_controller.rb2
-rw-r--r--app/controllers/projects_controller.rb22
-rw-r--r--app/controllers/search_controller.rb9
-rw-r--r--app/controllers/snippets_controller.rb11
-rw-r--r--app/controllers/users_controller.rb9
-rw-r--r--app/helpers/application_helper.rb8
-rw-r--r--app/helpers/groups_helper.rb18
-rw-r--r--app/helpers/projects_helper.rb40
-rw-r--r--app/views/admin/application_settings/show.html.haml1
-rw-r--r--app/views/admin/applications/edit.html.haml3
-rw-r--r--app/views/admin/applications/index.html.haml1
-rw-r--r--app/views/admin/applications/new.html.haml3
-rw-r--r--app/views/admin/applications/show.html.haml1
-rw-r--r--app/views/admin/background_jobs/show.html.haml1
-rw-r--r--app/views/admin/broadcast_messages/index.html.haml1
-rw-r--r--app/views/admin/deploy_keys/index.html.haml1
-rw-r--r--app/views/admin/deploy_keys/new.html.haml1
-rw-r--r--app/views/admin/deploy_keys/show.html.haml1
-rw-r--r--app/views/admin/groups/edit.html.haml1
-rw-r--r--app/views/admin/groups/index.html.haml1
-rw-r--r--app/views/admin/groups/new.html.haml1
-rw-r--r--app/views/admin/groups/show.html.haml1
-rw-r--r--app/views/admin/hooks/index.html.haml1
-rw-r--r--app/views/admin/keys/show.html.haml1
-rw-r--r--app/views/admin/logs/show.html.haml1
-rw-r--r--app/views/admin/projects/index.html.haml1
-rw-r--r--app/views/admin/projects/show.html.haml1
-rw-r--r--app/views/admin/services/edit.html.haml1
-rw-r--r--app/views/admin/services/index.html.haml1
-rw-r--r--app/views/admin/users/edit.html.haml1
-rw-r--r--app/views/admin/users/index.html.haml1
-rw-r--r--app/views/admin/users/new.html.haml1
-rw-r--r--app/views/admin/users/show.html.haml1
-rw-r--r--app/views/dashboard/groups/index.html.haml1
-rw-r--r--app/views/dashboard/issues.html.haml1
-rw-r--r--app/views/dashboard/merge_requests.html.haml1
-rw-r--r--app/views/dashboard/milestones/index.html.haml1
-rw-r--r--app/views/dashboard/milestones/show.html.haml1
-rw-r--r--app/views/dashboard/projects/starred.html.haml1
-rw-r--r--app/views/devise/registrations/new.html.haml3
-rw-r--r--app/views/devise/sessions/new.html.haml1
-rw-r--r--app/views/doorkeeper/applications/edit.html.haml3
-rw-r--r--app/views/doorkeeper/applications/index.html.haml3
-rw-r--r--app/views/doorkeeper/applications/show.html.haml1
-rw-r--r--app/views/errors/access_denied.html.haml1
-rw-r--r--app/views/errors/encoding.html.haml1
-rw-r--r--app/views/errors/git_not_found.html.haml1
-rw-r--r--app/views/errors/not_found.html.haml1
-rw-r--r--app/views/errors/omniauth_error.html.haml1
-rw-r--r--app/views/explore/groups/index.html.haml1
-rw-r--r--app/views/explore/projects/index.html.haml1
-rw-r--r--app/views/explore/projects/starred.html.haml1
-rw-r--r--app/views/explore/projects/trending.html.haml1
-rw-r--r--app/views/groups/_settings_nav.html.haml11
-rw-r--r--app/views/groups/edit.html.haml1
-rw-r--r--app/views/groups/group_members/index.html.haml1
-rw-r--r--app/views/groups/issues.html.haml1
-rw-r--r--app/views/groups/merge_requests.html.haml1
-rw-r--r--app/views/groups/milestones/index.html.haml1
-rw-r--r--app/views/groups/milestones/show.html.haml1
-rw-r--r--app/views/groups/projects.html.haml1
-rw-r--r--app/views/help/index.html.haml1
-rw-r--r--app/views/help/show.html.haml1
-rw-r--r--app/views/help/ui.html.haml1
-rw-r--r--app/views/import/bitbucket/status.html.haml1
-rw-r--r--app/views/import/github/status.html.haml1
-rw-r--r--app/views/import/gitlab/status.html.haml1
-rw-r--r--app/views/import/gitorious/status.html.haml1
-rw-r--r--app/views/import/google_code/new.html.haml1
-rw-r--r--app/views/import/google_code/new_user_map.html.haml1
-rw-r--r--app/views/import/google_code/status.html.haml1
-rw-r--r--app/views/invites/show.html.haml1
-rw-r--r--app/views/layouts/_head.html.haml5
-rw-r--r--app/views/layouts/_page.html.haml4
-rw-r--r--app/views/layouts/admin.html.haml6
-rw-r--r--app/views/layouts/application.html.haml15
-rw-r--r--app/views/layouts/errors.html.haml2
-rw-r--r--app/views/layouts/explore.html.haml12
-rw-r--r--app/views/layouts/group.html.haml6
-rw-r--r--app/views/layouts/nav/_group.html.haml13
-rw-r--r--app/views/layouts/nav/_project.html.haml156
-rw-r--r--app/views/layouts/nav/_project_settings.html.haml41
-rw-r--r--app/views/layouts/navless.html.haml7
-rw-r--r--app/views/layouts/profile.html.haml6
-rw-r--r--app/views/layouts/project.html.haml14
-rw-r--r--app/views/layouts/project_settings.html.haml10
-rw-r--r--app/views/layouts/projects.html.haml7
-rw-r--r--app/views/layouts/public_group.html.haml6
-rw-r--r--app/views/layouts/public_projects.html.haml6
-rw-r--r--app/views/layouts/public_users.html.haml6
-rw-r--r--app/views/layouts/search.html.haml6
-rw-r--r--app/views/layouts/snippets.html.haml6
-rw-r--r--app/views/profiles/accounts/show.html.haml1
-rw-r--r--app/views/profiles/applications.html.haml1
-rw-r--r--app/views/profiles/design.html.haml1
-rw-r--r--app/views/profiles/emails/index.html.haml1
-rw-r--r--app/views/profiles/history.html.haml1
-rw-r--r--app/views/profiles/keys/index.html.haml1
-rw-r--r--app/views/profiles/keys/new.html.haml1
-rw-r--r--app/views/profiles/keys/show.html.haml1
-rw-r--r--app/views/profiles/notifications/show.html.haml1
-rw-r--r--app/views/profiles/passwords/edit.html.haml1
-rw-r--r--app/views/profiles/show.html.haml1
-rw-r--r--app/views/projects/_settings_nav.html.haml31
-rw-r--r--app/views/projects/blame/show.html.haml1
-rw-r--r--app/views/projects/blob/edit.html.haml1
-rw-r--r--app/views/projects/blob/new.html.haml1
-rw-r--r--app/views/projects/blob/show.html.haml1
-rw-r--r--app/views/projects/branches/index.html.haml1
-rw-r--r--app/views/projects/branches/new.html.haml1
-rw-r--r--app/views/projects/commit/show.html.haml1
-rw-r--r--app/views/projects/commits/show.html.haml1
-rw-r--r--app/views/projects/compare/index.html.haml1
-rw-r--r--app/views/projects/compare/show.html.haml1
-rw-r--r--app/views/projects/deploy_keys/index.html.haml1
-rw-r--r--app/views/projects/deploy_keys/new.html.haml1
-rw-r--r--app/views/projects/deploy_keys/show.html.haml1
-rw-r--r--app/views/projects/edit.html.haml1
-rw-r--r--app/views/projects/forks/error.html.haml1
-rw-r--r--app/views/projects/forks/new.html.haml1
-rw-r--r--app/views/projects/graphs/commits.html.haml1
-rw-r--r--app/views/projects/graphs/show.html.haml1
-rw-r--r--app/views/projects/hooks/index.html.haml1
-rw-r--r--app/views/projects/imports/new.html.haml1
-rw-r--r--app/views/projects/imports/show.html.haml1
-rw-r--r--app/views/projects/issues/edit.html.haml1
-rw-r--r--app/views/projects/issues/index.html.haml1
-rw-r--r--app/views/projects/issues/new.html.haml1
-rw-r--r--app/views/projects/issues/show.html.haml1
-rw-r--r--app/views/projects/labels/edit.html.haml1
-rw-r--r--app/views/projects/labels/index.html.haml1
-rw-r--r--app/views/projects/labels/new.html.haml1
-rw-r--r--app/views/projects/merge_requests/_show.html.haml1
-rw-r--r--app/views/projects/merge_requests/edit.html.haml1
-rw-r--r--app/views/projects/merge_requests/index.html.haml1
-rw-r--r--app/views/projects/merge_requests/invalid.html.haml1
-rw-r--r--app/views/projects/merge_requests/new.html.haml1
-rw-r--r--app/views/projects/milestones/edit.html.haml1
-rw-r--r--app/views/projects/milestones/index.html.haml1
-rw-r--r--app/views/projects/milestones/new.html.haml1
-rw-r--r--app/views/projects/milestones/show.html.haml1
-rw-r--r--app/views/projects/network/show.html.haml1
-rw-r--r--app/views/projects/project_members/import.html.haml1
-rw-r--r--app/views/projects/project_members/index.html.haml1
-rw-r--r--app/views/projects/protected_branches/index.html.haml1
-rw-r--r--app/views/projects/services/edit.html.haml1
-rw-r--r--app/views/projects/services/index.html.haml1
-rw-r--r--app/views/projects/snippets/edit.html.haml1
-rw-r--r--app/views/projects/snippets/index.html.haml1
-rw-r--r--app/views/projects/snippets/new.html.haml1
-rw-r--r--app/views/projects/snippets/show.html.haml1
-rw-r--r--app/views/projects/tags/index.html.haml1
-rw-r--r--app/views/projects/tags/new.html.haml1
-rw-r--r--app/views/projects/tree/show.html.haml1
-rw-r--r--app/views/projects/wikis/edit.html.haml1
-rw-r--r--app/views/projects/wikis/empty.html.haml1
-rw-r--r--app/views/projects/wikis/git_access.html.haml1
-rw-r--r--app/views/projects/wikis/history.html.haml1
-rw-r--r--app/views/projects/wikis/pages.html.haml1
-rw-r--r--app/views/projects/wikis/show.html.haml1
-rw-r--r--app/views/search/show.html.haml1
-rw-r--r--app/views/snippets/current_user_index.html.haml1
-rw-r--r--app/views/snippets/edit.html.haml1
-rw-r--r--app/views/snippets/index.html.haml1
-rw-r--r--app/views/snippets/new.html.haml1
-rw-r--r--app/views/snippets/show.html.haml1
-rw-r--r--app/views/snippets/user_index.html.haml1
196 files changed, 425 insertions, 390 deletions
diff --git a/app/controllers/admin/application_controller.rb b/app/controllers/admin/application_controller.rb
index fe5456f820c..cfbeb035c0e 100644
--- a/app/controllers/admin/application_controller.rb
+++ b/app/controllers/admin/application_controller.rb
@@ -2,10 +2,16 @@
#
# Automatically sets the layout and ensures an administrator is logged in
class Admin::ApplicationController < ApplicationController
- layout 'admin'
before_action :authenticate_admin!
+ before_action :set_title
def authenticate_admin!
return render_404 unless current_user.is_admin?
end
+
+ def set_title
+ @title = "Admin area"
+ @title_url = admin_root_path
+ @sidebar = "admin"
+ end
end
diff --git a/app/controllers/dashboard/application_controller.rb b/app/controllers/dashboard/application_controller.rb
new file mode 100644
index 00000000000..0a0af3d4ce2
--- /dev/null
+++ b/app/controllers/dashboard/application_controller.rb
@@ -0,0 +1,11 @@
+class Dashboard::ApplicationController < ApplicationController
+ before_action :set_title
+
+ private
+
+ def set_title
+ @title = "Dashboard"
+ @title_url = root_path
+ @sidebar = "dashboard"
+ end
+end
diff --git a/app/controllers/dashboard/groups_controller.rb b/app/controllers/dashboard/groups_controller.rb
index ed14f4e1f3b..3bc94ff2187 100644
--- a/app/controllers/dashboard/groups_controller.rb
+++ b/app/controllers/dashboard/groups_controller.rb
@@ -1,4 +1,4 @@
-class Dashboard::GroupsController < ApplicationController
+class Dashboard::GroupsController < Dashboard::ApplicationController
def index
@group_members = current_user.group_members.page(params[:page]).per(PER_PAGE)
end
diff --git a/app/controllers/dashboard/milestones_controller.rb b/app/controllers/dashboard/milestones_controller.rb
index 33227e7f1d8..53896d4f2c7 100644
--- a/app/controllers/dashboard/milestones_controller.rb
+++ b/app/controllers/dashboard/milestones_controller.rb
@@ -1,4 +1,4 @@
-class Dashboard::MilestonesController < ApplicationController
+class Dashboard::MilestonesController < Dashboard::ApplicationController
before_action :load_projects
def index
diff --git a/app/controllers/dashboard/projects_controller.rb b/app/controllers/dashboard/projects_controller.rb
index 426bc615415..da96171e885 100644
--- a/app/controllers/dashboard/projects_controller.rb
+++ b/app/controllers/dashboard/projects_controller.rb
@@ -1,4 +1,4 @@
-class Dashboard::ProjectsController < ApplicationController
+class Dashboard::ProjectsController < Dashboard::ApplicationController
before_action :event_filter
def starred
diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index 40b5de1295a..17ddde68f93 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -1,8 +1,8 @@
-class DashboardController < ApplicationController
- respond_to :html
-
+class DashboardController < Dashboard::ApplicationController
before_action :load_projects, except: [:projects]
before_action :event_filter, only: :show
+
+ respond_to :html
def show
@projects = @projects.includes(:namespace)
diff --git a/app/controllers/explore/application_controller.rb b/app/controllers/explore/application_controller.rb
new file mode 100644
index 00000000000..8d94fd238a6
--- /dev/null
+++ b/app/controllers/explore/application_controller.rb
@@ -0,0 +1,11 @@
+class Explore::ApplicationController < ApplicationController
+ before_action :set_title
+
+ private
+
+ def set_title
+ @title = "Explore GitLab"
+ @title_url = explore_root_path
+ @sidebar = "explore"
+ end
+end
diff --git a/app/controllers/explore/groups_controller.rb b/app/controllers/explore/groups_controller.rb
index a7250b799f3..55cda0cff17 100644
--- a/app/controllers/explore/groups_controller.rb
+++ b/app/controllers/explore/groups_controller.rb
@@ -1,9 +1,7 @@
-class Explore::GroupsController < ApplicationController
+class Explore::GroupsController < Explore::ApplicationController
skip_before_action :authenticate_user!,
:reject_blocked, :set_current_user_for_observers
- layout "explore"
-
def index
@groups = GroupsFinder.new.execute(current_user)
@groups = @groups.search(params[:search]) if params[:search].present?
diff --git a/app/controllers/explore/projects_controller.rb b/app/controllers/explore/projects_controller.rb
index b1b0a2514dc..e9bcb44f6b3 100644
--- a/app/controllers/explore/projects_controller.rb
+++ b/app/controllers/explore/projects_controller.rb
@@ -1,9 +1,7 @@
-class Explore::ProjectsController < ApplicationController
+class Explore::ProjectsController < Explore::ApplicationController
skip_before_action :authenticate_user!,
:reject_blocked
- layout 'explore'
-
def index
@projects = ProjectsFinder.new.execute(current_user)
@tags = @projects.tags_on(:tags)
diff --git a/app/controllers/groups/application_controller.rb b/app/controllers/groups/application_controller.rb
index 469a6813ee2..e0fd4befae9 100644
--- a/app/controllers/groups/application_controller.rb
+++ b/app/controllers/groups/application_controller.rb
@@ -1,4 +1,5 @@
class Groups::ApplicationController < ApplicationController
+ before_action :set_title
private
@@ -18,11 +19,9 @@ class Groups::ApplicationController < ApplicationController
end
end
- def determine_layout
- if current_user
- 'group'
- else
- 'public_group'
- end
+ def set_title
+ @title = group.name
+ @title_url = group_path(group)
+ @sidebar = "group"
end
end
diff --git a/app/controllers/groups/avatars_controller.rb b/app/controllers/groups/avatars_controller.rb
index 38071410f40..6aa64222f77 100644
--- a/app/controllers/groups/avatars_controller.rb
+++ b/app/controllers/groups/avatars_controller.rb
@@ -1,6 +1,4 @@
class Groups::AvatarsController < ApplicationController
- layout "profile"
-
def destroy
@group = Group.find_by(path: params[:group_id])
@group.remove_avatar!
diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb
index 41564b04a92..669f7f3126d 100644
--- a/app/controllers/groups/milestones_controller.rb
+++ b/app/controllers/groups/milestones_controller.rb
@@ -1,6 +1,4 @@
-class Groups::MilestonesController < ApplicationController
- layout 'group'
-
+class Groups::MilestonesController < Groups::ApplicationController
before_action :authorize_group_milestone!, only: :update
def index
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 294af0b1704..66e92abff8d 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -11,9 +11,6 @@ class GroupsController < Groups::ApplicationController
# Load group projects
before_action :load_projects, except: [:new, :create, :projects, :edit, :update]
before_action :event_filter, only: :show
- before_action :set_title, only: [:new, :create]
-
- layout :determine_layout
def new
@group = Group.new
@@ -120,16 +117,10 @@ class GroupsController < Groups::ApplicationController
end
def set_title
- @title = 'New Group'
- end
-
- def determine_layout
if [:new, :create].include?(action_name.to_sym)
- 'navless'
- elsif current_user
- 'group'
+ @title = 'New Group'
else
- 'public_group'
+ super
end
end
diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index 35ece5b270b..b405cc7e689 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -3,12 +3,12 @@ class HelpController < ApplicationController
end
def show
- category = clean_path_info(path_params[:category])
- file = path_params[:file]
+ @category = clean_path_info(path_params[:category])
+ @file = path_params[:file]
respond_to do |format|
format.any(:markdown, :md, :html) do
- path = Rails.root.join('doc', category, "#{file}.md")
+ path = Rails.root.join('doc', @category, "#{@file}.md")
if File.exist?(path)
@markdown = File.read(path)
@@ -22,7 +22,7 @@ class HelpController < ApplicationController
# Allow access to images in the doc folder
format.any(:png, :gif, :jpeg) do
- path = Rails.root.join('doc', category, "#{file}.#{params[:format]}")
+ path = Rails.root.join('doc', @category, "#{@file}.#{params[:format]}")
if File.exist?(path)
send_file(path, disposition: 'inline')
diff --git a/app/controllers/invites_controller.rb b/app/controllers/invites_controller.rb
index a29c03395f4..eb3c8233530 100644
--- a/app/controllers/invites_controller.rb
+++ b/app/controllers/invites_controller.rb
@@ -4,8 +4,6 @@ class InvitesController < ApplicationController
respond_to :html
- layout 'navless'
-
def show
end
diff --git a/app/controllers/oauth/applications_controller.rb b/app/controllers/oauth/applications_controller.rb
index ea256de2c3e..f30a85564d4 100644
--- a/app/controllers/oauth/applications_controller.rb
+++ b/app/controllers/oauth/applications_controller.rb
@@ -1,6 +1,6 @@
class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
before_action :authenticate_user!
- layout "profile"
+ before_action :set_title
def index
head :forbidden and return
@@ -36,4 +36,10 @@ class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
rescue_from ActiveRecord::RecordNotFound do |exception|
render "errors/not_found", layout: "errors", status: 404
end
+
+ def set_title
+ @title = "Profile"
+ @title_url = profile_path
+ @sidebar = "profile"
+ end
end
diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb
index 6d3c1a320db..c62890ba85b 100644
--- a/app/controllers/oauth/authorizations_controller.rb
+++ b/app/controllers/oauth/authorizations_controller.rb
@@ -1,6 +1,6 @@
class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
before_action :authenticate_resource_owner!
- layout "profile"
+ before_action :set_title
def new
if pre_auth.authorizable?
@@ -54,4 +54,10 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
def strategy
@strategy ||= server.authorization_request(pre_auth.response_type)
end
+
+ def set_title
+ @title = "Profile"
+ @title_url = profile_path
+ @sidebar = "profile"
+ end
end
diff --git a/app/controllers/oauth/authorized_applications_controller.rb b/app/controllers/oauth/authorized_applications_controller.rb
index 0b27ce7da72..6d0bf9889e6 100644
--- a/app/controllers/oauth/authorized_applications_controller.rb
+++ b/app/controllers/oauth/authorized_applications_controller.rb
@@ -1,8 +1,16 @@
class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicationsController
- layout "profile"
+ before_filter :set_title
def destroy
Doorkeeper::AccessToken.revoke_all_for(params[:id], current_resource_owner)
redirect_to applications_profile_url, notice: I18n.t(:notice, scope: [:doorkeeper, :flash, :authorized_applications, :destroy])
end
+
+ private
+
+ def set_title
+ @title = "Profile"
+ @title_url = profile_path
+ @sidebar = "profile"
+ end
end
diff --git a/app/controllers/profiles/accounts_controller.rb b/app/controllers/profiles/accounts_controller.rb
index 9bd34fe2261..175afbf8425 100644
--- a/app/controllers/profiles/accounts_controller.rb
+++ b/app/controllers/profiles/accounts_controller.rb
@@ -1,6 +1,4 @@
-class Profiles::AccountsController < ApplicationController
- layout "profile"
-
+class Profiles::AccountsController < Profiles::ApplicationController
def show
@user = current_user
end
diff --git a/app/controllers/profiles/application_controller.rb b/app/controllers/profiles/application_controller.rb
new file mode 100644
index 00000000000..8373ff7a758
--- /dev/null
+++ b/app/controllers/profiles/application_controller.rb
@@ -0,0 +1,11 @@
+class Profiles::ApplicationController < ApplicationController
+ before_action :set_title
+
+ private
+
+ def set_title
+ @title = "Profile"
+ @title_url = profile_path
+ @sidebar = "profile"
+ end
+end
diff --git a/app/controllers/profiles/avatars_controller.rb b/app/controllers/profiles/avatars_controller.rb
index 57f3bbf0627..f193adb46b4 100644
--- a/app/controllers/profiles/avatars_controller.rb
+++ b/app/controllers/profiles/avatars_controller.rb
@@ -1,6 +1,4 @@
-class Profiles::AvatarsController < ApplicationController
- layout "profile"
-
+class Profiles::AvatarsController < Profiles::ApplicationController
def destroy
@user = current_user
@user.remove_avatar!
diff --git a/app/controllers/profiles/emails_controller.rb b/app/controllers/profiles/emails_controller.rb
index 954c98c0d9f..3e904700de5 100644
--- a/app/controllers/profiles/emails_controller.rb
+++ b/app/controllers/profiles/emails_controller.rb
@@ -1,6 +1,4 @@
-class Profiles::EmailsController < ApplicationController
- layout "profile"
-
+class Profiles::EmailsController < Profiles::ApplicationController
def index
@primary = current_user.email
@public_email = current_user.public_email
diff --git a/app/controllers/profiles/keys_controller.rb b/app/controllers/profiles/keys_controller.rb
index b0a5a631c63..f3224148fda 100644
--- a/app/controllers/profiles/keys_controller.rb
+++ b/app/controllers/profiles/keys_controller.rb
@@ -1,5 +1,4 @@
-class Profiles::KeysController < ApplicationController
- layout "profile"
+class Profiles::KeysController < Profiles::ApplicationController
skip_before_action :authenticate_user!, only: [:get_keys]
def index
diff --git a/app/controllers/profiles/notifications_controller.rb b/app/controllers/profiles/notifications_controller.rb
index 3fdcbbab61b..22423651c17 100644
--- a/app/controllers/profiles/notifications_controller.rb
+++ b/app/controllers/profiles/notifications_controller.rb
@@ -1,6 +1,4 @@
-class Profiles::NotificationsController < ApplicationController
- layout 'profile'
-
+class Profiles::NotificationsController < Profiles::ApplicationController
def show
@user = current_user
@notification = current_user.notification
diff --git a/app/controllers/profiles/passwords_controller.rb b/app/controllers/profiles/passwords_controller.rb
index b719a7fe9a9..94ac62cb32c 100644
--- a/app/controllers/profiles/passwords_controller.rb
+++ b/app/controllers/profiles/passwords_controller.rb
@@ -1,6 +1,4 @@
class Profiles::PasswordsController < ApplicationController
- layout :determine_layout
-
skip_before_action :check_password_expiration, only: [:new, :create]
before_action :set_user
@@ -67,14 +65,10 @@ class Profiles::PasswordsController < ApplicationController
end
def set_title
- @title = "New password"
- end
-
- def determine_layout
if [:new, :create].include?(action_name.to_sym)
- 'navless'
+ @title = "New password"
else
- 'profile'
+ super
end
end
diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb
index eb001e8d739..f4366c18e7b 100644
--- a/app/controllers/profiles_controller.rb
+++ b/app/controllers/profiles_controller.rb
@@ -1,12 +1,10 @@
-class ProfilesController < ApplicationController
+class ProfilesController < Profiles::ApplicationController
include ActionView::Helpers::SanitizeHelper
before_action :user
before_action :authorize_change_username!, only: :update_username
skip_before_action :require_email, only: [:show, :update]
- layout 'profile'
-
def show
end
diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb
index f7a28e920d1..ee88d49b400 100644
--- a/app/controllers/projects/application_controller.rb
+++ b/app/controllers/projects/application_controller.rb
@@ -1,7 +1,7 @@
class Projects::ApplicationController < ApplicationController
before_action :project
before_action :repository
- layout :determine_layout
+ layout 'project'
def authenticate_user!
# Restrict access to Projects area only
@@ -17,14 +17,6 @@ class Projects::ApplicationController < ApplicationController
super
end
- def determine_layout
- if current_user
- 'projects'
- else
- 'public_projects'
- end
- end
-
def require_branch_head
unless @repository.branch_names.include?(@ref)
redirect_to(
diff --git a/app/controllers/projects/avatars_controller.rb b/app/controllers/projects/avatars_controller.rb
index 22a12c4b9ae..9c3763d5934 100644
--- a/app/controllers/projects/avatars_controller.rb
+++ b/app/controllers/projects/avatars_controller.rb
@@ -1,6 +1,4 @@
class Projects::AvatarsController < Projects::ApplicationController
- layout 'project'
-
before_action :project
def show
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb
index 01a079d2e65..9e72597ea87 100644
--- a/app/controllers/projects/forks_controller.rb
+++ b/app/controllers/projects/forks_controller.rb
@@ -18,7 +18,6 @@ class Projects::ForksController < Projects::ApplicationController
notice: 'Project was successfully forked.'
)
else
- @title = 'Fork project'
render :error
end
end
diff --git a/app/controllers/projects/uploads_controller.rb b/app/controllers/projects/uploads_controller.rb
index e2d0b0d9459..71ecc20dd95 100644
--- a/app/controllers/projects/uploads_controller.rb
+++ b/app/controllers/projects/uploads_controller.rb
@@ -1,6 +1,4 @@
class Projects::UploadsController < Projects::ApplicationController
- layout 'project'
-
skip_before_action :authenticate_user!, :reject_blocked!, :project,
:repository, if: -> { action_name == 'show' && image? }
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 883e5865a21..da6b0c3c91a 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -9,14 +9,14 @@ class ProjectsController < ApplicationController
before_action :set_title, only: [:new, :create]
before_action :event_filter, only: :show
- layout 'navless', only: [:new, :create, :fork]
+ layout :determine_layout
def new
@project = Project.new
end
def edit
- render 'edit', layout: 'project_settings'
+ render 'edit'
end
def create
@@ -46,7 +46,7 @@ class ProjectsController < ApplicationController
end
format.js
else
- format.html { render 'edit', layout: 'project_settings' }
+ format.html { render 'edit' }
format.js
end
end
@@ -72,13 +72,13 @@ class ProjectsController < ApplicationController
format.html do
if @project.repository_exists?
if @project.empty_repo?
- render 'projects/empty', layout: user_layout
+ render 'projects/empty'
else
@last_push = current_user.recent_push(@project.id) if current_user
- render :show, layout: user_layout
+ render :show
end
else
- render 'projects/no_repo', layout: user_layout
+ render 'projects/no_repo'
end
end
@@ -164,8 +164,14 @@ class ProjectsController < ApplicationController
@title = 'New Project'
end
- def user_layout
- current_user ? 'projects' : 'public_projects'
+ def determine_layout
+ if [:new, :create].include?(action_name.to_sym)
+ 'application'
+ elsif [:edit, :update].include?(action_name.to_sym)
+ 'project_settings'
+ else
+ 'project'
+ end
end
def load_events
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index ad9e9e8487e..ba6f2a41fdc 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -1,6 +1,8 @@
class SearchController < ApplicationController
include SearchHelper
+ before_action :set_title
+
def show
return if params[:search].nil? || params[:search].blank?
@@ -55,4 +57,11 @@ class SearchController < ApplicationController
render json: search_autocomplete_opts(term).to_json
end
+
+ private
+
+ def set_title
+ @title = "Search"
+ @title_url = search_path
+ end
end
diff --git a/app/controllers/snippets_controller.rb b/app/controllers/snippets_controller.rb
index a5259466cb8..c960724b47a 100644
--- a/app/controllers/snippets_controller.rb
+++ b/app/controllers/snippets_controller.rb
@@ -13,8 +13,6 @@ class SnippetsController < ApplicationController
respond_to :html
- layout :determine_layout
-
def index
if params[:username].present?
@user = User.find_by(username: params[:username])
@@ -99,15 +97,12 @@ class SnippetsController < ApplicationController
end
def set_title
- @title = 'Snippets'
- @title_url = snippets_path
+ @title = 'Snippets'
+ @title_url = snippets_path
+ @sidebar = "snippets"
end
def snippet_params
params.require(:personal_snippet).permit(:title, :content, :file_name, :private, :visibility_level)
end
-
- def determine_layout
- current_user ? 'snippets' : 'public_users'
- end
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 460cc868b35..7285098435b 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -1,7 +1,6 @@
class UsersController < ApplicationController
skip_before_action :authenticate_user!
before_action :set_user
- layout :determine_layout
def show
@contributed_projects = contributed_projects.joined(@user).
@@ -51,14 +50,6 @@ class UsersController < ApplicationController
render 'calendar_activities', layout: false
end
- def determine_layout
- if current_user
- 'navless'
- else
- 'public_users'
- end
- end
-
private
def set_user
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 6e86400a4f6..399e49e352d 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -332,4 +332,12 @@ module ApplicationHelper
end
"#{entity_title}#{count}"
end
+
+ def page_title(*titles)
+ @page_title ||= []
+
+ @page_title.push(*titles.compact) if titles.any?
+
+ @page_title.join(" | ")
+ end
end
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index add0a776a63..3569ac2af63 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -19,24 +19,6 @@ module GroupsHelper
end
end
- def group_head_title
- title = @group.name
-
- title = if current_action?(:issues)
- "Issues - " + title
- elsif current_action?(:merge_requests)
- "Merge requests - " + title
- elsif current_action?(:members)
- "Members - " + title
- elsif current_action?(:edit)
- "Settings - " + title
- else
- title
- end
-
- title
- end
-
def group_settings_page?
if current_controller?('groups')
current_action?('edit') || current_action?('projects')
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index c2a7732e6f0..96d2606f1a1 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -192,46 +192,6 @@ module ProjectsHelper
'unknown'
end
- def project_head_title
- title = @project.name_with_namespace
-
- title = if current_controller?(:tree)
- "#{@project.path}\/#{@path} at #{@ref} - " + title
- elsif current_controller?(:issues)
- if current_action?(:show)
- "Issue ##{@issue.iid} - #{@issue.title} - " + title
- else
- "Issues - " + title
- end
- elsif current_controller?(:blob)
- if current_action?(:new) || current_action?(:create)
- "New file at #{@ref}"
- elsif current_action?(:show)
- "#{@blob.path} at #{@ref}"
- elsif @blob
- "Edit file #{@blob.path} at #{@ref}"
- end
- elsif current_controller?(:commits)
- "Commits at #{@ref} - " + title
- elsif current_controller?(:merge_requests)
- if current_action?(:show)
- "Merge request ##{@merge_request.iid} - " + title
- else
- "Merge requests - " + title
- end
- elsif current_controller?(:wikis)
- "Wiki - " + title
- elsif current_controller?(:network)
- "Network graph - " + title
- elsif current_controller?(:graphs)
- "Graphs - " + title
- else
- title
- end
-
- title
- end
-
def default_url_to_repo(project = nil)
project = project || @project
current_user ? project.url_to_repo : project.http_url_to_repo
diff --git a/app/views/admin/application_settings/show.html.haml b/app/views/admin/application_settings/show.html.haml
index 39b66647a5a..1632dd8affa 100644
--- a/app/views/admin/application_settings/show.html.haml
+++ b/app/views/admin/application_settings/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Settings"
%h3.page-title Application settings
%hr
= render 'form'
diff --git a/app/views/admin/applications/edit.html.haml b/app/views/admin/applications/edit.html.haml
index e408ae2f29d..c596866bde2 100644
--- a/app/views/admin/applications/edit.html.haml
+++ b/app/views/admin/applications/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @application.name, "Applications"
%h3.page-title Edit application
- @url = admin_application_path(@application)
-= render 'form', application: @application \ No newline at end of file
+= render 'form', application: @application
diff --git a/app/views/admin/applications/index.html.haml b/app/views/admin/applications/index.html.haml
index d550278710e..fc921a966f3 100644
--- a/app/views/admin/applications/index.html.haml
+++ b/app/views/admin/applications/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Applications"
%h3.page-title
System OAuth applications
%p.light
diff --git a/app/views/admin/applications/new.html.haml b/app/views/admin/applications/new.html.haml
index 7c62425f19c..2884ee93d52 100644
--- a/app/views/admin/applications/new.html.haml
+++ b/app/views/admin/applications/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New application"
%h3.page-title New application
- @url = admin_applications_path
-= render 'form', application: @application \ No newline at end of file
+= render 'form', application: @application
diff --git a/app/views/admin/applications/show.html.haml b/app/views/admin/applications/show.html.haml
index 2abe390ce13..0ea2ffeda99 100644
--- a/app/views/admin/applications/show.html.haml
+++ b/app/views/admin/applications/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @application.name, "Applications"
%h3.page-title
Application: #{@application.name}
diff --git a/app/views/admin/background_jobs/show.html.haml b/app/views/admin/background_jobs/show.html.haml
index 4ef8e878a7f..3a01e115109 100644
--- a/app/views/admin/background_jobs/show.html.haml
+++ b/app/views/admin/background_jobs/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Background Jobs"
%h3.page-title Background Jobs
%p.light GitLab uses #{link_to "sidekiq", "http://sidekiq.org/"} library for async job processing
diff --git a/app/views/admin/broadcast_messages/index.html.haml b/app/views/admin/broadcast_messages/index.html.haml
index 7e29311bf42..267c9a52921 100644
--- a/app/views/admin/broadcast_messages/index.html.haml
+++ b/app/views/admin/broadcast_messages/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Broadcast Messages"
%h3.page-title
Broadcast Messages
%p.light
diff --git a/app/views/admin/deploy_keys/index.html.haml b/app/views/admin/deploy_keys/index.html.haml
index 2ae83ab95f7..367d25cd6a1 100644
--- a/app/views/admin/deploy_keys/index.html.haml
+++ b/app/views/admin/deploy_keys/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Deploy Keys"
.panel.panel-default
.panel-heading
Public deploy keys (#{@deploy_keys.count})
diff --git a/app/views/admin/deploy_keys/new.html.haml b/app/views/admin/deploy_keys/new.html.haml
index c00049424c5..5b46b3222a9 100644
--- a/app/views/admin/deploy_keys/new.html.haml
+++ b/app/views/admin/deploy_keys/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New Deploy Key"
%h3.page-title New public deploy key
%hr
diff --git a/app/views/admin/deploy_keys/show.html.haml b/app/views/admin/deploy_keys/show.html.haml
index cfa2adf92ee..ea361ca4bdb 100644
--- a/app/views/admin/deploy_keys/show.html.haml
+++ b/app/views/admin/deploy_keys/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @deploy_key.title, "Deploy Keys"
.row
.col-md-4
.panel.panel-default
diff --git a/app/views/admin/groups/edit.html.haml b/app/views/admin/groups/edit.html.haml
index 824e51c1cf1..eb09a6328ed 100644
--- a/app/views/admin/groups/edit.html.haml
+++ b/app/views/admin/groups/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @group.name, "Groups"
%h3.page-title Edit group: #{@group.name}
%hr
= render 'form'
diff --git a/app/views/admin/groups/index.html.haml b/app/views/admin/groups/index.html.haml
index 4c53ff55708..e00b23ad99f 100644
--- a/app/views/admin/groups/index.html.haml
+++ b/app/views/admin/groups/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Groups"
%h3.page-title
Groups (#{@groups.total_count})
= link_to 'New Group', new_admin_group_path, class: "btn btn-new pull-right"
diff --git a/app/views/admin/groups/new.html.haml b/app/views/admin/groups/new.html.haml
index f46f45c5514..9dccda1f76e 100644
--- a/app/views/admin/groups/new.html.haml
+++ b/app/views/admin/groups/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New group"
%h3.page-title New group
%hr
= render 'form'
diff --git a/app/views/admin/groups/show.html.haml b/app/views/admin/groups/show.html.haml
index 427f38018b0..187314872de 100644
--- a/app/views/admin/groups/show.html.haml
+++ b/app/views/admin/groups/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @group.name, "Groups"
%h3.page-title
Group: #{@group.name}
diff --git a/app/views/admin/hooks/index.html.haml b/app/views/admin/hooks/index.html.haml
index 7a9dc113f2a..e74e1e85f41 100644
--- a/app/views/admin/hooks/index.html.haml
+++ b/app/views/admin/hooks/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "System Hooks"
%h3.page-title
System hooks
diff --git a/app/views/admin/keys/show.html.haml b/app/views/admin/keys/show.html.haml
index 5b23027b3ab..9ee77c77398 100644
--- a/app/views/admin/keys/show.html.haml
+++ b/app/views/admin/keys/show.html.haml
@@ -1 +1,2 @@
+- page_title @key.title, "Keys"
= render "profiles/keys/key_details", admin: true
diff --git a/app/views/admin/logs/show.html.haml b/app/views/admin/logs/show.html.haml
index 384c6ee9af5..1484baa78e0 100644
--- a/app/views/admin/logs/show.html.haml
+++ b/app/views/admin/logs/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Logs"
- loggers = [Gitlab::GitLogger, Gitlab::AppLogger,
Gitlab::ProductionLogger, Gitlab::SidekiqLogger]
%ul.nav.nav-tabs.log-tabs
diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml
index 0a13791029d..f43d46356fa 100644
--- a/app/views/admin/projects/index.html.haml
+++ b/app/views/admin/projects/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Projects"
= render 'shared/show_aside'
.row
diff --git a/app/views/admin/projects/show.html.haml b/app/views/admin/projects/show.html.haml
index 78684c692c7..4c2865ac3f2 100644
--- a/app/views/admin/projects/show.html.haml
+++ b/app/views/admin/projects/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @project.name_with_namespace, "Projects"
%h3.page-title
Project: #{@project.name_with_namespace}
= link_to edit_project_path(@project), class: "btn pull-right" do
diff --git a/app/views/admin/services/edit.html.haml b/app/views/admin/services/edit.html.haml
index bcc5832792f..53d970e33c1 100644
--- a/app/views/admin/services/edit.html.haml
+++ b/app/views/admin/services/edit.html.haml
@@ -1 +1,2 @@
+- page_title @service.title, "Service Templates"
= render 'form'
diff --git a/app/views/admin/services/index.html.haml b/app/views/admin/services/index.html.haml
index 0093fb97765..e2377291142 100644
--- a/app/views/admin/services/index.html.haml
+++ b/app/views/admin/services/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Service Templates"
%h3.page-title Service templates
%p.light Service template allows you to set default values for project services
diff --git a/app/views/admin/users/edit.html.haml b/app/views/admin/users/edit.html.haml
index d71d8189c51..a8837d74dd9 100644
--- a/app/views/admin/users/edit.html.haml
+++ b/app/views/admin/users/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @user.name, "Users"
%h3.page-title
Edit user: #{@user.name}
.back-link
diff --git a/app/views/admin/users/index.html.haml b/app/views/admin/users/index.html.haml
index 23a9d769639..fe648470233 100644
--- a/app/views/admin/users/index.html.haml
+++ b/app/views/admin/users/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Users"
= render 'shared/show_aside'
.row
diff --git a/app/views/admin/users/new.html.haml b/app/views/admin/users/new.html.haml
index 8fbb757f424..cabce1f516f 100644
--- a/app/views/admin/users/new.html.haml
+++ b/app/views/admin/users/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New user"
%h3.page-title
New user
%hr
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index 3524f04c5ed..7fc85206109 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @user.name, "Users"
%h3.page-title
User:
= @user.name
diff --git a/app/views/dashboard/groups/index.html.haml b/app/views/dashboard/groups/index.html.haml
index 0cb7f764fab..5ecd53cff84 100644
--- a/app/views/dashboard/groups/index.html.haml
+++ b/app/views/dashboard/groups/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Groups"
%h3.page-title
Group Membership
- if current_user.can_create_group?
diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml
index 62cc80a30dc..dfdf0d68c8f 100644
--- a/app/views/dashboard/issues.html.haml
+++ b/app/views/dashboard/issues.html.haml
@@ -1,3 +1,4 @@
+- page_title "Issues"
= content_for :meta_tags do
- if current_user
= auto_discovery_link_tag(:atom, issues_dashboard_url(format: :atom, private_token: current_user.private_token), title: "#{current_user.name} issues")
diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml
index 97a42461b4e..a7e1b08a0a4 100644
--- a/app/views/dashboard/merge_requests.html.haml
+++ b/app/views/dashboard/merge_requests.html.haml
@@ -1,3 +1,4 @@
+- page_title "Merge Requests"
%h3.page-title
Merge Requests
diff --git a/app/views/dashboard/milestones/index.html.haml b/app/views/dashboard/milestones/index.html.haml
index 9944c0df815..9a9a5e139a4 100644
--- a/app/views/dashboard/milestones/index.html.haml
+++ b/app/views/dashboard/milestones/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Milestones"
%h3.page-title
Milestones
%span.pull-right #{@dashboard_milestones.count} milestones
diff --git a/app/views/dashboard/milestones/show.html.haml b/app/views/dashboard/milestones/show.html.haml
index 57cce9ab749..24f0bcb60d5 100644
--- a/app/views/dashboard/milestones/show.html.haml
+++ b/app/views/dashboard/milestones/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @dashboard_milestone.title, "Milestones"
%h4.page-title
.issue-box{ class: "issue-box-#{@dashboard_milestone.closed? ? 'closed' : 'open'}" }
- if @dashboard_milestone.closed?
diff --git a/app/views/dashboard/projects/starred.html.haml b/app/views/dashboard/projects/starred.html.haml
index 67943f2267b..8aaa0a7f071 100644
--- a/app/views/dashboard/projects/starred.html.haml
+++ b/app/views/dashboard/projects/starred.html.haml
@@ -1,3 +1,4 @@
+- page_title "Starred Projects"
- if @projects.any?
= render 'shared/show_aside'
diff --git a/app/views/devise/registrations/new.html.haml b/app/views/devise/registrations/new.html.haml
index d3e37f7494c..42cfbbf84f2 100644
--- a/app/views/devise/registrations/new.html.haml
+++ b/app/views/devise/registrations/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Sign up"
= render 'devise/shared/signup_box'
-= render 'devise/shared/sign_in_link' \ No newline at end of file
+= render 'devise/shared/sign_in_link'
diff --git a/app/views/devise/sessions/new.html.haml b/app/views/devise/sessions/new.html.haml
index 89e4e229ac0..dbc8eda6196 100644
--- a/app/views/devise/sessions/new.html.haml
+++ b/app/views/devise/sessions/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Sign in"
%div
- if signin_enabled? || ldap_enabled?
= render 'devise/shared/signin_box'
diff --git a/app/views/doorkeeper/applications/edit.html.haml b/app/views/doorkeeper/applications/edit.html.haml
index 61584eb9c49..fb6aa30acee 100644
--- a/app/views/doorkeeper/applications/edit.html.haml
+++ b/app/views/doorkeeper/applications/edit.html.haml
@@ -1,2 +1,3 @@
+- page_title "Edit", @application.name, "Applications"
%h3.page-title Edit application
-= render 'form', application: @application \ No newline at end of file
+= render 'form', application: @application
diff --git a/app/views/doorkeeper/applications/index.html.haml b/app/views/doorkeeper/applications/index.html.haml
index e5be4b4bcac..3b0b19107ca 100644
--- a/app/views/doorkeeper/applications/index.html.haml
+++ b/app/views/doorkeeper/applications/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Applications"
%h3.page-title Your applications
%p= link_to 'New Application', new_oauth_application_path, class: 'btn btn-success'
%table.table.table-striped
@@ -13,4 +14,4 @@
%td= link_to application.name, oauth_application_path(application)
%td= application.redirect_uri
%td= link_to 'Edit', edit_oauth_application_path(application), class: 'btn btn-link'
- %td= render 'delete_form', application: application \ No newline at end of file
+ %td= render 'delete_form', application: application
diff --git a/app/views/doorkeeper/applications/show.html.haml b/app/views/doorkeeper/applications/show.html.haml
index 82e78b4af13..b2dc86e89c8 100644
--- a/app/views/doorkeeper/applications/show.html.haml
+++ b/app/views/doorkeeper/applications/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @application.name, "Application"
%h3.page-title
Application: #{@application.name}
diff --git a/app/views/errors/access_denied.html.haml b/app/views/errors/access_denied.html.haml
index a1d8664c4ce..012e9857642 100644
--- a/app/views/errors/access_denied.html.haml
+++ b/app/views/errors/access_denied.html.haml
@@ -1,3 +1,4 @@
+- page_title "Access Denied"
%h1 403
%h3 Access Denied
%hr
diff --git a/app/views/errors/encoding.html.haml b/app/views/errors/encoding.html.haml
index 64c7451a8da..90cfbebfcc6 100644
--- a/app/views/errors/encoding.html.haml
+++ b/app/views/errors/encoding.html.haml
@@ -1,3 +1,4 @@
+- page_title "Encoding Error"
%h1 500
%h3 Encoding Error
%hr
diff --git a/app/views/errors/git_not_found.html.haml b/app/views/errors/git_not_found.html.haml
index 189e53bca55..ff5d4cc1506 100644
--- a/app/views/errors/git_not_found.html.haml
+++ b/app/views/errors/git_not_found.html.haml
@@ -1,3 +1,4 @@
+- page_title "Git Resource Not Found"
%h1 404
%h3 Git Resource Not found
%hr
diff --git a/app/views/errors/not_found.html.haml b/app/views/errors/not_found.html.haml
index 7bf88f592cf..3756b98ebb2 100644
--- a/app/views/errors/not_found.html.haml
+++ b/app/views/errors/not_found.html.haml
@@ -1,3 +1,4 @@
+- page_title "Not Found"
%h1 404
%h3 The resource you were looking for doesn't exist.
%hr
diff --git a/app/views/errors/omniauth_error.html.haml b/app/views/errors/omniauth_error.html.haml
index f3c8221a9d9..3e70e98a24c 100644
--- a/app/views/errors/omniauth_error.html.haml
+++ b/app/views/errors/omniauth_error.html.haml
@@ -1,3 +1,4 @@
+- page_title "Auth Error"
%h1 422
%h3 Sign-in using #{@provider} auth failed
%hr
diff --git a/app/views/explore/groups/index.html.haml b/app/views/explore/groups/index.html.haml
index 2ea6cb18655..c05d45e0100 100644
--- a/app/views/explore/groups/index.html.haml
+++ b/app/views/explore/groups/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Groups"
.clearfix
.pull-left
= form_tag explore_groups_path, method: :get, class: 'form-inline form-tiny' do |f|
diff --git a/app/views/explore/projects/index.html.haml b/app/views/explore/projects/index.html.haml
index 5086b58cd03..ba2276f51ce 100644
--- a/app/views/explore/projects/index.html.haml
+++ b/app/views/explore/projects/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Projects"
.clearfix
= render 'filter'
diff --git a/app/views/explore/projects/starred.html.haml b/app/views/explore/projects/starred.html.haml
index 420f0693756..b5d146b1f2f 100644
--- a/app/views/explore/projects/starred.html.haml
+++ b/app/views/explore/projects/starred.html.haml
@@ -1,3 +1,4 @@
+- page_title "Starred Projects"
.explore-trending-block
%p.lead
%i.fa.fa-star
diff --git a/app/views/explore/projects/trending.html.haml b/app/views/explore/projects/trending.html.haml
index 18749ac00ae..5ae2653fede 100644
--- a/app/views/explore/projects/trending.html.haml
+++ b/app/views/explore/projects/trending.html.haml
@@ -1,3 +1,4 @@
+- page_title "Trending Projects"
.explore-title
%h3
Explore GitLab
diff --git a/app/views/groups/_settings_nav.html.haml b/app/views/groups/_settings_nav.html.haml
deleted file mode 100644
index f93caf90076..00000000000
--- a/app/views/groups/_settings_nav.html.haml
+++ /dev/null
@@ -1,11 +0,0 @@
-%ul.sidebar-subnav
- = nav_link(path: 'groups#edit') do
- = link_to edit_group_path(@group), title: 'Group', data: {placement: 'right'} do
- = icon('pencil-square-o')
- %span
- Group
- = nav_link(path: 'groups#projects') do
- = link_to projects_group_path(@group), title: 'Projects', data: {placement: 'right'} do
- = icon('folder')
- %span
- Projects
diff --git a/app/views/groups/edit.html.haml b/app/views/groups/edit.html.haml
index 49e7180bf98..85179d4c4a2 100644
--- a/app/views/groups/edit.html.haml
+++ b/app/views/groups/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Settings"
.panel.panel-default
.panel-heading
%strong= @group.name
diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml
index c0c9cd170ad..903ca877218 100644
--- a/app/views/groups/group_members/index.html.haml
+++ b/app/views/groups/group_members/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Members"
- show_roles = should_user_see_group_roles?(current_user, @group)
%h3.page-title
diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml
index cf0da2da466..6a3da6adacf 100644
--- a/app/views/groups/issues.html.haml
+++ b/app/views/groups/issues.html.haml
@@ -1,3 +1,4 @@
+- page_title "Issues"
= content_for :meta_tags do
- if current_user
= auto_discovery_link_tag(:atom, issues_group_url(@group, format: :atom, private_token: current_user.private_token), title: "#{@group.name} issues")
diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml
index 1ad74905636..268f33d5761 100644
--- a/app/views/groups/merge_requests.html.haml
+++ b/app/views/groups/merge_requests.html.haml
@@ -1,3 +1,4 @@
+- page_title "Merge Requests"
%h3.page-title
Merge Requests
diff --git a/app/views/groups/milestones/index.html.haml b/app/views/groups/milestones/index.html.haml
index 008d5a6bd22..385222fa5b7 100644
--- a/app/views/groups/milestones/index.html.haml
+++ b/app/views/groups/milestones/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Milestones"
%h3.page-title
Milestones
%span.pull-right #{@group_milestones.count} milestones
diff --git a/app/views/groups/milestones/show.html.haml b/app/views/groups/milestones/show.html.haml
index fb32f2caa4c..0ab15c90aff 100644
--- a/app/views/groups/milestones/show.html.haml
+++ b/app/views/groups/milestones/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @group_milestone.title, "Milestone"
%h4.page-title
.issue-box{ class: "issue-box-#{@group_milestone.closed? ? 'closed' : 'open'}" }
- if @group_milestone.closed?
diff --git a/app/views/groups/projects.html.haml b/app/views/groups/projects.html.haml
index 0d547984cc9..6b7efa83dea 100644
--- a/app/views/groups/projects.html.haml
+++ b/app/views/groups/projects.html.haml
@@ -1,3 +1,4 @@
+- page_title "Projects"
.panel.panel-default
.panel-heading
%strong= @group.name
diff --git a/app/views/help/index.html.haml b/app/views/help/index.html.haml
index af39dfeac5b..9ebdd373f39 100644
--- a/app/views/help/index.html.haml
+++ b/app/views/help/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Help"
%div
%h1
GitLab
diff --git a/app/views/help/show.html.haml b/app/views/help/show.html.haml
index cc1be6a717a..1ff5ddb4c11 100644
--- a/app/views/help/show.html.haml
+++ b/app/views/help/show.html.haml
@@ -1,2 +1,3 @@
+- page_title @file, *@category.split("/").reverse, "Help"
.documentation.wiki
= markdown @markdown.gsub('$your_email', current_user.email)
diff --git a/app/views/help/ui.html.haml b/app/views/help/ui.html.haml
index 246a6c1bdfd..7c89457ace3 100644
--- a/app/views/help/ui.html.haml
+++ b/app/views/help/ui.html.haml
@@ -1,3 +1,4 @@
+- page_title "UI Development Kit", "Help"
- lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fermentum nisi sapien, non consequat lectus aliquam ultrices. Suspendisse sodales est euismod nunc condimentum, a consectetur diam ornare."
.gitlab-ui-dev-kit
diff --git a/app/views/import/bitbucket/status.html.haml b/app/views/import/bitbucket/status.html.haml
index 4e49bbbc7fa..9d2858e4e72 100644
--- a/app/views/import/bitbucket/status.html.haml
+++ b/app/views/import/bitbucket/status.html.haml
@@ -1,3 +1,4 @@
+- page_title "Bitbucket import"
%h3.page-title
%i.fa.fa-bitbucket
Import projects from Bitbucket
diff --git a/app/views/import/github/status.html.haml b/app/views/import/github/status.html.haml
index f0bc3e6b1ac..ef552498239 100644
--- a/app/views/import/github/status.html.haml
+++ b/app/views/import/github/status.html.haml
@@ -1,3 +1,4 @@
+- page_title "GitHub import"
%h3.page-title
%i.fa.fa-github
Import projects from GitHub
diff --git a/app/views/import/gitlab/status.html.haml b/app/views/import/gitlab/status.html.haml
index 33b0a21acf3..727f3c7e7fa 100644
--- a/app/views/import/gitlab/status.html.haml
+++ b/app/views/import/gitlab/status.html.haml
@@ -1,3 +1,4 @@
+- page_title "GitLab.com import"
%h3.page-title
%i.fa.fa-heart
Import projects from GitLab.com
diff --git a/app/views/import/gitorious/status.html.haml b/app/views/import/gitorious/status.html.haml
index 78c5e957be0..bff7ee7c85d 100644
--- a/app/views/import/gitorious/status.html.haml
+++ b/app/views/import/gitorious/status.html.haml
@@ -1,3 +1,4 @@
+- page_title "Gitorious import"
%h3.page-title
%i.icon-gitorious.icon-gitorious-big
Import projects from Gitorious.org
diff --git a/app/views/import/google_code/new.html.haml b/app/views/import/google_code/new.html.haml
index ce78fec205f..9c64e0a009f 100644
--- a/app/views/import/google_code/new.html.haml
+++ b/app/views/import/google_code/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Google Code import"
%h3.page-title
%i.fa.fa-google
Import projects from Google Code
diff --git a/app/views/import/google_code/new_user_map.html.haml b/app/views/import/google_code/new_user_map.html.haml
index 9c6824ecad7..e53ebda7dc1 100644
--- a/app/views/import/google_code/new_user_map.html.haml
+++ b/app/views/import/google_code/new_user_map.html.haml
@@ -1,3 +1,4 @@
+- page_title "User map", "Google Code import"
%h3.page-title
%i.fa.fa-google
Import projects from Google Code
diff --git a/app/views/import/google_code/status.html.haml b/app/views/import/google_code/status.html.haml
index b01b63f2a74..e8ec79e72f7 100644
--- a/app/views/import/google_code/status.html.haml
+++ b/app/views/import/google_code/status.html.haml
@@ -1,3 +1,4 @@
+- page_title "Google Code import"
%h3.page-title
%i.fa.fa-google
Import projects from Google Code
diff --git a/app/views/invites/show.html.haml b/app/views/invites/show.html.haml
index ab0ecffe4d2..2fd4859c1c6 100644
--- a/app/views/invites/show.html.haml
+++ b/app/views/invites/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Invitation"
%h3.page-title Invitation
%p
diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml
index f72882d883e..b1a57d9824e 100644
--- a/app/views/layouts/_head.html.haml
+++ b/app/views/layouts/_head.html.haml
@@ -1,11 +1,10 @@
+- page_title "GitLab"
%head
%meta{charset: "utf-8"}
%meta{'http-equiv' => 'X-UA-Compatible', content: 'IE=edge'}
%meta{content: "GitLab Community Edition", name: "description"}
- %title
- = "#{title} | " if defined?(title)
- GitLab
+ %title= page_title
= favicon_link_tag 'favicon.ico'
= stylesheet_link_tag "application", :media => "all"
diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml
index 0fa2ec9824d..5c55bdb5465 100644
--- a/app/views/layouts/_page.html.haml
+++ b/app/views/layouts/_page.html.haml
@@ -1,8 +1,8 @@
.page-with-sidebar{ class: nav_sidebar_class }
= render "layouts/broadcast"
.sidebar-wrapper
- - if defined?(sidebar)
- = render(sidebar)
+ - if defined?(sidebar) && sidebar
+ = render "layouts/nav/#{sidebar}"
- elsif current_user
= render 'layouts/nav/dashboard'
.collapse-nav
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
deleted file mode 100644
index ab84e87c300..00000000000
--- a/app/views/layouts/admin.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: "Admin area"
- %body{class: "#{app_theme} admin", :'data-page' => body_data_page}
- = render "layouts/head_panel", title: link_to("Admin area", admin_root_path)
- = render 'layouts/page', sidebar: 'layouts/nav/admin'
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 6bd8ac4adb8..e0829d40bc4 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -1,6 +1,13 @@
+- page_title @title
!!! 5
%html{ lang: "en"}
- = render "layouts/head", title: "Dashboard"
- %body{class: "#{app_theme} application", :'data-page' => body_data_page }
- = render "layouts/head_panel", title: link_to("Dashboard", root_path)
- = render 'layouts/page', sidebar: 'layouts/nav/dashboard'
+ = render "layouts/head"
+ %body{class: "#{app_theme} application", :'data-page' => body_data_page}
+ - title = defined?(@title_url) ? link_to(@title, @title_url) : @title
+
+ - if current_user
+ = render "layouts/head_panel", title: title
+ - else
+ = render "layouts/public_head_panel", title: title
+
+ = render 'layouts/page', sidebar: @sidebar
diff --git a/app/views/layouts/errors.html.haml b/app/views/layouts/errors.html.haml
index e51fd4cb820..aa0f3f0a819 100644
--- a/app/views/layouts/errors.html.haml
+++ b/app/views/layouts/errors.html.haml
@@ -1,6 +1,6 @@
!!! 5
%html{ lang: "en"}
- = render "layouts/head", title: "Error"
+ = render "layouts/head"
%body{class: "#{app_theme} application"}
= render "layouts/head_panel", title: "" if current_user
.container.navless-container
diff --git a/app/views/layouts/explore.html.haml b/app/views/layouts/explore.html.haml
deleted file mode 100644
index ca79382324e..00000000000
--- a/app/views/layouts/explore.html.haml
+++ /dev/null
@@ -1,12 +0,0 @@
-- page_title = 'Explore GitLab'
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: page_title
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/broadcast"
- - if current_user
- = render "layouts/head_panel", title: link_to(page_title, explore_root_path)
- - else
- = render "layouts/public_head_panel", title: link_to(page_title, explore_root_path)
-
- = render 'layouts/page', sidebar: 'layouts/nav/explore'
diff --git a/app/views/layouts/group.html.haml b/app/views/layouts/group.html.haml
deleted file mode 100644
index f4a6bee15f6..00000000000
--- a/app/views/layouts/group.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: group_head_title
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/head_panel", title: link_to(@group.name, group_path(@group))
- = render 'layouts/page', sidebar: 'layouts/nav/group'
diff --git a/app/views/layouts/nav/_group.html.haml b/app/views/layouts/nav/_group.html.haml
index 74a8526dbd7..62f0579d48b 100644
--- a/app/views/layouts/nav/_group.html.haml
+++ b/app/views/layouts/nav/_group.html.haml
@@ -39,4 +39,15 @@
= icon ('angle-down fw')
- if group_settings_page?
- = render 'groups/settings_nav'
+ %ul.sidebar-subnav
+ = nav_link(path: 'groups#edit') do
+ = link_to edit_group_path(@group), title: 'Group', data: {placement: 'right'} do
+ = icon('pencil-square-o')
+ %span
+ Group
+ = nav_link(path: 'groups#projects') do
+ = link_to projects_group_path(@group), title: 'Projects', data: {placement: 'right'} do
+ = icon('folder')
+ %span
+ Projects
+
diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml
index 01b3d70194f..172f5197b24 100644
--- a/app/views/layouts/nav/_project.html.haml
+++ b/app/views/layouts/nav/_project.html.haml
@@ -1,97 +1,85 @@
%ul.project-navigation.nav.nav-sidebar
- - if @project_settings_nav
- = nav_link do
- = link_to project_path(@project), title: 'Back to project', data: {placement: 'right'} do
- = icon('caret-square-o-left fw')
+ = nav_link(path: 'projects#show', html_options: {class: 'home'}) do
+ = link_to project_path(@project), title: 'Project', class: 'shortcuts-project', data: {placement: 'right'} do
+ = icon('dashboard fw')
+ %span
+ Project
+ - if project_nav_tab? :files
+ = nav_link(controller: %w(tree blob blame edit_tree new_tree)) do
+ = link_to namespace_project_tree_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Files', class: 'shortcuts-tree', data: {placement: 'right'} do
+ = icon('files-o fw')
%span
- Back to project
+ Files
- %li.separate-item
-
- = render 'projects/settings_nav'
-
- - else
- = nav_link(path: 'projects#show', html_options: {class: 'home'}) do
- = link_to project_path(@project), title: 'Project', class: 'shortcuts-project', data: {placement: 'right'} do
- = icon('dashboard fw')
+ - if project_nav_tab? :commits
+ = nav_link(controller: %w(commit commits compare repositories tags branches)) do
+ = link_to namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Commits', class: 'shortcuts-commits', data: {placement: 'right'} do
+ = icon('history fw')
%span
- Project
- - if project_nav_tab? :files
- = nav_link(controller: %w(tree blob blame edit_tree new_tree)) do
- = link_to namespace_project_tree_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Files', class: 'shortcuts-tree', data: {placement: 'right'} do
- = icon('files-o fw')
- %span
- Files
-
- - if project_nav_tab? :commits
- = nav_link(controller: %w(commit commits compare repositories tags branches)) do
- = link_to namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Commits', class: 'shortcuts-commits', data: {placement: 'right'} do
- = icon('history fw')
- %span
- Commits
+ Commits
- - if project_nav_tab? :network
- = nav_link(controller: %w(network)) do
- = link_to namespace_project_network_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Network', class: 'shortcuts-network', data: {placement: 'right'} do
- = icon('code-fork fw')
- %span
- Network
+ - if project_nav_tab? :network
+ = nav_link(controller: %w(network)) do
+ = link_to namespace_project_network_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Network', class: 'shortcuts-network', data: {placement: 'right'} do
+ = icon('code-fork fw')
+ %span
+ Network
- - if project_nav_tab? :graphs
- = nav_link(controller: %w(graphs)) do
- = link_to namespace_project_graph_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Graphs', class: 'shortcuts-graphs', data: {placement: 'right'} do
- = icon('area-chart fw')
- %span
- Graphs
+ - if project_nav_tab? :graphs
+ = nav_link(controller: %w(graphs)) do
+ = link_to namespace_project_graph_path(@project.namespace, @project, @ref || @repository.root_ref), title: 'Graphs', class: 'shortcuts-graphs', data: {placement: 'right'} do
+ = icon('area-chart fw')
+ %span
+ Graphs
- - if project_nav_tab? :milestones
- = nav_link(controller: :milestones) do
- = link_to namespace_project_milestones_path(@project.namespace, @project), title: 'Milestones', data: {placement: 'right'} do
- = icon('clock-o fw')
- %span
- Milestones
+ - if project_nav_tab? :milestones
+ = nav_link(controller: :milestones) do
+ = link_to namespace_project_milestones_path(@project.namespace, @project), title: 'Milestones', data: {placement: 'right'} do
+ = icon('clock-o fw')
+ %span
+ Milestones
- - if project_nav_tab? :issues
- = nav_link(controller: :issues) do
- = link_to url_for_project_issues(@project, only_path: true), title: 'Issues', class: 'shortcuts-issues', data: {placement: 'right'} do
- = icon('exclamation-circle fw')
- %span
- Issues
- - if @project.default_issues_tracker?
- %span.count.issue_counter= @project.issues.opened.count
+ - if project_nav_tab? :issues
+ = nav_link(controller: :issues) do
+ = link_to url_for_project_issues(@project, only_path: true), title: 'Issues', class: 'shortcuts-issues', data: {placement: 'right'} do
+ = icon('exclamation-circle fw')
+ %span
+ Issues
+ - if @project.default_issues_tracker?
+ %span.count.issue_counter= @project.issues.opened.count
- - if project_nav_tab? :merge_requests
- = nav_link(controller: :merge_requests) do
- = link_to namespace_project_merge_requests_path(@project.namespace, @project), title: 'Merge Requests', class: 'shortcuts-merge_requests', data: {placement: 'right'} do
- = icon('tasks fw')
- %span
- Merge Requests
- %span.count.merge_counter= @project.merge_requests.opened.count
+ - if project_nav_tab? :merge_requests
+ = nav_link(controller: :merge_requests) do
+ = link_to namespace_project_merge_requests_path(@project.namespace, @project), title: 'Merge Requests', class: 'shortcuts-merge_requests', data: {placement: 'right'} do
+ = icon('tasks fw')
+ %span
+ Merge Requests
+ %span.count.merge_counter= @project.merge_requests.opened.count
- - if project_nav_tab? :labels
- = nav_link(controller: :labels) do
- = link_to namespace_project_labels_path(@project.namespace, @project), title: 'Labels', data: {placement: 'right'} do
- = icon('tags fw')
- %span
- Labels
+ - if project_nav_tab? :labels
+ = nav_link(controller: :labels) do
+ = link_to namespace_project_labels_path(@project.namespace, @project), title: 'Labels', data: {placement: 'right'} do
+ = icon('tags fw')
+ %span
+ Labels
- - if project_nav_tab? :wiki
- = nav_link(controller: :wikis) do
- = link_to get_project_wiki_path(@project), title: 'Wiki', class: 'shortcuts-wiki', data: {placement: 'right'} do
- = icon('book fw')
- %span
- Wiki
+ - if project_nav_tab? :wiki
+ = nav_link(controller: :wikis) do
+ = link_to get_project_wiki_path(@project), title: 'Wiki', class: 'shortcuts-wiki', data: {placement: 'right'} do
+ = icon('book fw')
+ %span
+ Wiki
- - if project_nav_tab? :snippets
- = nav_link(controller: :snippets) do
- = link_to namespace_project_snippets_path(@project.namespace, @project), title: 'Snippets', class: 'shortcuts-snippets', data: {placement: 'right'} do
- = icon('file-text-o fw')
- %span
- Snippets
+ - if project_nav_tab? :snippets
+ = nav_link(controller: :snippets) do
+ = link_to namespace_project_snippets_path(@project.namespace, @project), title: 'Snippets', class: 'shortcuts-snippets', data: {placement: 'right'} do
+ = icon('file-text-o fw')
+ %span
+ Snippets
- - if project_nav_tab? :settings
- = nav_link(html_options: {class: "#{project_tab_class} separate-item"}) do
- = link_to edit_project_path(@project), title: 'Settings', class: 'stat-tab tab no-highlight', data: {placement: 'right'} do
- = icon('cogs fw')
- %span
- Settings
+ - if project_nav_tab? :settings
+ = nav_link(html_options: {class: "#{project_tab_class} separate-item"}) do
+ = link_to edit_project_path(@project), title: 'Settings', class: 'stat-tab tab no-highlight', data: {placement: 'right'} do
+ = icon('cogs fw')
+ %span
+ Settings
diff --git a/app/views/layouts/nav/_project_settings.html.haml b/app/views/layouts/nav/_project_settings.html.haml
new file mode 100644
index 00000000000..21260302a09
--- /dev/null
+++ b/app/views/layouts/nav/_project_settings.html.haml
@@ -0,0 +1,41 @@
+%ul.project-navigation.nav.nav-sidebar
+ = nav_link do
+ = link_to project_path(@project), title: 'Back to project', data: {placement: 'right'} do
+ = icon('caret-square-o-left fw')
+ %span
+ Back to project
+
+ %li.separate-item
+
+ %ul.project-settings-nav.sidebar-subnav
+ = nav_link(path: 'projects#edit') do
+ = link_to edit_project_path(@project), title: 'Project', class: 'stat-tab tab', data: {placement: 'right'} do
+ = icon('pencil-square-o')
+ %span
+ Project
+ = nav_link(controller: [:project_members, :teams]) do
+ = link_to namespace_project_project_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab', data: {placement: 'right'} do
+ = icon('users')
+ %span
+ Members
+ = nav_link(controller: :deploy_keys) do
+ = link_to namespace_project_deploy_keys_path(@project.namespace, @project), title: 'Deploy Keys', data: {placement: 'right'} do
+ = icon('key')
+ %span
+ Deploy Keys
+ = nav_link(controller: :hooks) do
+ = link_to namespace_project_hooks_path(@project.namespace, @project), title: 'Web Hooks', data: {placement: 'right'} do
+ = icon('link')
+ %span
+ Web Hooks
+ = nav_link(controller: :services) do
+ = link_to namespace_project_services_path(@project.namespace, @project), title: 'Services', data: {placement: 'right'} do
+ = icon('cogs')
+ %span
+ Services
+ = nav_link(controller: :protected_branches) do
+ = link_to namespace_project_protected_branches_path(@project.namespace, @project), title: 'Protected Branches', data: {placement: 'right'} do
+ = icon('lock')
+ %span
+ Protected branches
+
diff --git a/app/views/layouts/navless.html.haml b/app/views/layouts/navless.html.haml
deleted file mode 100644
index 10a0fcea2f8..00000000000
--- a/app/views/layouts/navless.html.haml
+++ /dev/null
@@ -1,7 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: @title
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/broadcast"
- = render "layouts/head_panel", title: defined?(@title_url) ? link_to(@title, @title_url) : @title
- = render 'layouts/page'
diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml
deleted file mode 100644
index 2b5be7fc372..00000000000
--- a/app/views/layouts/profile.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: "Profile"
- %body{class: "#{app_theme} profile", :'data-page' => body_data_page}
- = render "layouts/head_panel", title: link_to("Profile", profile_path)
- = render 'layouts/page', sidebar: 'layouts/nav/profile'
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
new file mode 100644
index 00000000000..62a6f5ddf4d
--- /dev/null
+++ b/app/views/layouts/project.html.haml
@@ -0,0 +1,14 @@
+- page_title @project.name_with_namespace
+!!! 5
+%html{ lang: "en"}
+ = render "layouts/head"
+ %body{class: "#{app_theme} project", :'data-page' => body_data_page, :'data-project-id' => @project.id }
+ - title = project_title(@project)
+
+ - if current_user
+ = render "layouts/head_panel", title: project_title(@project)
+ = render "layouts/init_auto_complete"
+ - else
+ = render "layouts/public_head_panel", title: project_title(@project)
+
+ = render 'layouts/page', sidebar: @sidebar || 'project'
diff --git a/app/views/layouts/project_settings.html.haml b/app/views/layouts/project_settings.html.haml
index 0a0039dec16..d12d07273f3 100644
--- a/app/views/layouts/project_settings.html.haml
+++ b/app/views/layouts/project_settings.html.haml
@@ -1,8 +1,2 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: @project.name_with_namespace
- %body{class: "#{app_theme} project", :'data-page' => body_data_page, :'data-project-id' => @project.id }
- = render "layouts/head_panel", title: project_title(@project)
- = render "layouts/init_auto_complete"
- - @project_settings_nav = true
- = render 'layouts/page', sidebar: 'layouts/nav/project'
+- @sidebar = "project_settings"
+= render template: "layouts/project"
diff --git a/app/views/layouts/projects.html.haml b/app/views/layouts/projects.html.haml
deleted file mode 100644
index dde0964f47f..00000000000
--- a/app/views/layouts/projects.html.haml
+++ /dev/null
@@ -1,7 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: project_head_title
- %body{class: "#{app_theme} project", :'data-page' => body_data_page, :'data-project-id' => @project.id }
- = render "layouts/head_panel", title: project_title(@project)
- = render "layouts/init_auto_complete"
- = render 'layouts/page', sidebar: 'layouts/nav/project'
diff --git a/app/views/layouts/public_group.html.haml b/app/views/layouts/public_group.html.haml
deleted file mode 100644
index b9b1d03e08e..00000000000
--- a/app/views/layouts/public_group.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: group_head_title
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/public_head_panel", title: link_to(@group.name, group_path(@group))
- = render 'layouts/page', sidebar: 'layouts/nav/group'
diff --git a/app/views/layouts/public_projects.html.haml b/app/views/layouts/public_projects.html.haml
deleted file mode 100644
index 04fa7c84e73..00000000000
--- a/app/views/layouts/public_projects.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: @project.name_with_namespace
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/public_head_panel", title: project_title(@project)
- = render 'layouts/page', sidebar: 'layouts/nav/project'
diff --git a/app/views/layouts/public_users.html.haml b/app/views/layouts/public_users.html.haml
deleted file mode 100644
index 71c16bd1684..00000000000
--- a/app/views/layouts/public_users.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: @title
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/public_head_panel", title: defined?(@title_url) ? link_to(@title, @title_url) : @title
- = render 'layouts/page'
diff --git a/app/views/layouts/search.html.haml b/app/views/layouts/search.html.haml
deleted file mode 100644
index 4b526686be4..00000000000
--- a/app/views/layouts/search.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: "Search"
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- = render "layouts/head_panel", title: link_to("Search", search_path)
- = render 'layouts/page'
diff --git a/app/views/layouts/snippets.html.haml b/app/views/layouts/snippets.html.haml
deleted file mode 100644
index fbd29eb23a7..00000000000
--- a/app/views/layouts/snippets.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-!!! 5
-%html{ lang: "en"}
- = render "layouts/head", title: "Dashboard"
- %body{class: "#{app_theme} application", :'data-page' => body_data_page }
- = render "layouts/head_panel", title: link_to("Snippets", snippets_path)
- = render 'layouts/page', sidebar: 'layouts/nav/snippets'
diff --git a/app/views/profiles/accounts/show.html.haml b/app/views/profiles/accounts/show.html.haml
index 5bffb4acc1d..1c3a3d68aca 100644
--- a/app/views/profiles/accounts/show.html.haml
+++ b/app/views/profiles/accounts/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Account"
- if current_user.ldap_user?
.alert.alert-info
Some options are unavailable for LDAP accounts
diff --git a/app/views/profiles/applications.html.haml b/app/views/profiles/applications.html.haml
index 97e98948f36..c4f6f59624b 100644
--- a/app/views/profiles/applications.html.haml
+++ b/app/views/profiles/applications.html.haml
@@ -1,3 +1,4 @@
+- page_title "Applications"
%h3.page-title
Application Settings
%p.light
diff --git a/app/views/profiles/design.html.haml b/app/views/profiles/design.html.haml
index 646576c3164..af284f60409 100644
--- a/app/views/profiles/design.html.haml
+++ b/app/views/profiles/design.html.haml
@@ -1,3 +1,4 @@
+- page_title "Design"
%h3.page-title
Design Settings
%p.light
diff --git a/app/views/profiles/emails/index.html.haml b/app/views/profiles/emails/index.html.haml
index 09f290429ea..c17e01425d8 100644
--- a/app/views/profiles/emails/index.html.haml
+++ b/app/views/profiles/emails/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Emails"
%h3.page-title
Email Settings
%p.light
diff --git a/app/views/profiles/history.html.haml b/app/views/profiles/history.html.haml
index b1ab433f48f..b414fb69f4e 100644
--- a/app/views/profiles/history.html.haml
+++ b/app/views/profiles/history.html.haml
@@ -1,3 +1,4 @@
+- page_title "History"
%h3.page-title
Your Account History
%p.light
diff --git a/app/views/profiles/keys/index.html.haml b/app/views/profiles/keys/index.html.haml
index 0904c50c88b..e3af0d4e189 100644
--- a/app/views/profiles/keys/index.html.haml
+++ b/app/views/profiles/keys/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "SSH Keys"
%h3.page-title
SSH Keys Settings
.pull-right
diff --git a/app/views/profiles/keys/new.html.haml b/app/views/profiles/keys/new.html.haml
index ccec716d0c6..2bf207a3221 100644
--- a/app/views/profiles/keys/new.html.haml
+++ b/app/views/profiles/keys/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Add SSH Keys"
%h3.page-title Add an SSH Key
%p.light
Paste your public key here. Read more about how to generate a key on #{link_to "the SSH help page", help_page_path("ssh", "README")}.
diff --git a/app/views/profiles/keys/show.html.haml b/app/views/profiles/keys/show.html.haml
index cfd53298962..89f6f01581a 100644
--- a/app/views/profiles/keys/show.html.haml
+++ b/app/views/profiles/keys/show.html.haml
@@ -1 +1,2 @@
+- page_title @key.title, "SSH Keys"
= render "key_details"
diff --git a/app/views/profiles/notifications/show.html.haml b/app/views/profiles/notifications/show.html.haml
index 273e72f8a4d..a74d97dac3b 100644
--- a/app/views/profiles/notifications/show.html.haml
+++ b/app/views/profiles/notifications/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Notifications"
%h3.page-title
Notifications Settings
%p.light
diff --git a/app/views/profiles/passwords/edit.html.haml b/app/views/profiles/passwords/edit.html.haml
index 4b04b113e89..21dabbdfe2c 100644
--- a/app/views/profiles/passwords/edit.html.haml
+++ b/app/views/profiles/passwords/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Password"
%h3.page-title Password Settings
%p.light
- if @user.password_automatically_set?
diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml
index 6c745e69e40..29c30905117 100644
--- a/app/views/profiles/show.html.haml
+++ b/app/views/profiles/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Settings"
%h3.page-title
Profile Settings
%p.light
diff --git a/app/views/projects/_settings_nav.html.haml b/app/views/projects/_settings_nav.html.haml
deleted file mode 100644
index f8b74809b76..00000000000
--- a/app/views/projects/_settings_nav.html.haml
+++ /dev/null
@@ -1,31 +0,0 @@
-%ul.project-settings-nav.sidebar-subnav
- = nav_link(path: 'projects#edit') do
- = link_to edit_project_path(@project), title: 'Project', class: 'stat-tab tab', data: {placement: 'right'} do
- = icon('pencil-square-o')
- %span
- Project
- = nav_link(controller: [:project_members, :teams]) do
- = link_to namespace_project_project_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab', data: {placement: 'right'} do
- = icon('users')
- %span
- Members
- = nav_link(controller: :deploy_keys) do
- = link_to namespace_project_deploy_keys_path(@project.namespace, @project), title: 'Deploy Keys', data: {placement: 'right'} do
- = icon('key')
- %span
- Deploy Keys
- = nav_link(controller: :hooks) do
- = link_to namespace_project_hooks_path(@project.namespace, @project), title: 'Web Hooks', data: {placement: 'right'} do
- = icon('link')
- %span
- Web Hooks
- = nav_link(controller: :services) do
- = link_to namespace_project_services_path(@project.namespace, @project), title: 'Services', data: {placement: 'right'} do
- = icon('cogs')
- %span
- Services
- = nav_link(controller: :protected_branches) do
- = link_to namespace_project_protected_branches_path(@project.namespace, @project), title: 'Protected Branches', data: {placement: 'right'} do
- = icon('lock')
- %span
- Protected branches
diff --git a/app/views/projects/blame/show.html.haml b/app/views/projects/blame/show.html.haml
index 89dd68d6471..462f5b7afb0 100644
--- a/app/views/projects/blame/show.html.haml
+++ b/app/views/projects/blame/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Blame", @blob.path, @ref
%h3.page-title Blame view
#tree-holder.tree-holder
diff --git a/app/views/projects/blob/edit.html.haml b/app/views/projects/blob/edit.html.haml
index 1f61a0b940c..e78181f8801 100644
--- a/app/views/projects/blob/edit.html.haml
+++ b/app/views/projects/blob/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @blob.path, @ref
.file-editor
%ul.nav.nav-tabs.js-edit-mode
%li.active
diff --git a/app/views/projects/blob/new.html.haml b/app/views/projects/blob/new.html.haml
index d78a01f6422..eb0d99d0152 100644
--- a/app/views/projects/blob/new.html.haml
+++ b/app/views/projects/blob/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New file", @ref
%h3.page-title New file
.file-editor
= form_tag(namespace_project_create_blob_path(@project.namespace, @project, @id), method: :post, class: 'form-horizontal form-new-file') do
diff --git a/app/views/projects/blob/show.html.haml b/app/views/projects/blob/show.html.haml
index 69167654c39..a1d464bac59 100644
--- a/app/views/projects/blob/show.html.haml
+++ b/app/views/projects/blob/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @blob.path, @ref
%div.tree-ref-holder
= render 'shared/ref_switcher', destination: 'blob', path: @path
diff --git a/app/views/projects/branches/index.html.haml b/app/views/projects/branches/index.html.haml
index a313ffcf272..80acc937908 100644
--- a/app/views/projects/branches/index.html.haml
+++ b/app/views/projects/branches/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Branches"
= render "projects/commits/head"
%h3.page-title
Branches
diff --git a/app/views/projects/branches/new.html.haml b/app/views/projects/branches/new.html.haml
index e5fcb98c68c..7ca0b78a0be 100644
--- a/app/views/projects/branches/new.html.haml
+++ b/app/views/projects/branches/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New branch"
- if @error
.alert.alert-danger
%button{ type: "button", class: "close", "data-dismiss" => "alert"} &times;
diff --git a/app/views/projects/commit/show.html.haml b/app/views/projects/commit/show.html.haml
index fc721067ed4..fcf75bb3ceb 100644
--- a/app/views/projects/commit/show.html.haml
+++ b/app/views/projects/commit/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @commit.id, "Commits"
= render "commit_box"
= render "projects/diffs/diffs", diffs: @diffs, project: @project
= render "projects/notes/notes_with_form"
diff --git a/app/views/projects/commits/show.html.haml b/app/views/projects/commits/show.html.haml
index fb1012deb74..c8531b090a6 100644
--- a/app/views/projects/commits/show.html.haml
+++ b/app/views/projects/commits/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Commits", @ref
= content_for :meta_tags do
- if current_user
= auto_discovery_link_tag(:atom, namespace_project_commits_url(@project.namespace, @project, @ref, format: :atom, private_token: current_user.private_token), title: "#{@project.name}:#{@ref} commits")
diff --git a/app/views/projects/compare/index.html.haml b/app/views/projects/compare/index.html.haml
index 4745bfbeaaf..d1e579a2ede 100644
--- a/app/views/projects/compare/index.html.haml
+++ b/app/views/projects/compare/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Compare"
= render "projects/commits/head"
%h3.page-title
diff --git a/app/views/projects/compare/show.html.haml b/app/views/projects/compare/show.html.haml
index 214b5bd337b..3670dd5c13b 100644
--- a/app/views/projects/compare/show.html.haml
+++ b/app/views/projects/compare/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "#{params[:from]}...#{params[:to]}"
= render "projects/commits/head"
%h3.page-title
diff --git a/app/views/projects/deploy_keys/index.html.haml b/app/views/projects/deploy_keys/index.html.haml
index 472a13a8524..2e9c5dc08c8 100644
--- a/app/views/projects/deploy_keys/index.html.haml
+++ b/app/views/projects/deploy_keys/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Deploy Keys"
%h3.page-title
Deploy keys allow read-only access to the repository
diff --git a/app/views/projects/deploy_keys/new.html.haml b/app/views/projects/deploy_keys/new.html.haml
index 186d6b58972..01c810aee18 100644
--- a/app/views/projects/deploy_keys/new.html.haml
+++ b/app/views/projects/deploy_keys/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New Deploy Key"
%h3.page-title New Deploy key
%hr
diff --git a/app/views/projects/deploy_keys/show.html.haml b/app/views/projects/deploy_keys/show.html.haml
index 405b5bcd0d3..7d44652af72 100644
--- a/app/views/projects/deploy_keys/show.html.haml
+++ b/app/views/projects/deploy_keys/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @key.title, "Deploy Keys"
%h3.page-title
Deploy key:
= @key.title
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index c09d794ef7f..1fe6a24e89f 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Settings"
.project-edit-container
.project-edit-errors
.project-edit-content
diff --git a/app/views/projects/forks/error.html.haml b/app/views/projects/forks/error.html.haml
index 8eb4f795971..3d0ab5b85d6 100644
--- a/app/views/projects/forks/error.html.haml
+++ b/app/views/projects/forks/error.html.haml
@@ -1,3 +1,4 @@
+- page_title "Fork project"
- if @forked_project && !@forked_project.saved?
.alert.alert-danger.alert-block
%h4
diff --git a/app/views/projects/forks/new.html.haml b/app/views/projects/forks/new.html.haml
index 5a6c46f3208..b7a2ed68e25 100644
--- a/app/views/projects/forks/new.html.haml
+++ b/app/views/projects/forks/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Fork project"
%h3.page-title Fork project
%p.lead
Click to fork the project to a user or group
diff --git a/app/views/projects/graphs/commits.html.haml b/app/views/projects/graphs/commits.html.haml
index 78b4c1923dd..254a76e108b 100644
--- a/app/views/projects/graphs/commits.html.haml
+++ b/app/views/projects/graphs/commits.html.haml
@@ -1,3 +1,4 @@
+- page_title "Commit statistics"
= render 'head'
%p.lead
diff --git a/app/views/projects/graphs/show.html.haml b/app/views/projects/graphs/show.html.haml
index e3d5094ddc5..3a8dc89f84c 100644
--- a/app/views/projects/graphs/show.html.haml
+++ b/app/views/projects/graphs/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Contributor statistics"
= render 'head'
.loading-graph
.center
diff --git a/app/views/projects/hooks/index.html.haml b/app/views/projects/hooks/index.html.haml
index bbaddba31b9..808c03148f4 100644
--- a/app/views/projects/hooks/index.html.haml
+++ b/app/views/projects/hooks/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Web Hooks"
%h3.page-title
Web hooks
diff --git a/app/views/projects/imports/new.html.haml b/app/views/projects/imports/new.html.haml
index 934b6b8c017..f8f2e192e29 100644
--- a/app/views/projects/imports/new.html.haml
+++ b/app/views/projects/imports/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "Import repository"
%h3.page-title
- if @project.import_failed?
Import failed. Retry?
diff --git a/app/views/projects/imports/show.html.haml b/app/views/projects/imports/show.html.haml
index 2d1fdafed24..39fe0fc1c4f 100644
--- a/app/views/projects/imports/show.html.haml
+++ b/app/views/projects/imports/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Import in progress"
.save-project-loader
.center
%h2
diff --git a/app/views/projects/issues/edit.html.haml b/app/views/projects/issues/edit.html.haml
index b1bc3ba0eba..53b6f0879c9 100644
--- a/app/views/projects/issues/edit.html.haml
+++ b/app/views/projects/issues/edit.html.haml
@@ -1 +1,2 @@
+- page_title "Edit", "#{@issue.title} (##{@issue.iid})", "Issues"
= render "form"
diff --git a/app/views/projects/issues/index.html.haml b/app/views/projects/issues/index.html.haml
index c2522816f3b..709ea1f7897 100644
--- a/app/views/projects/issues/index.html.haml
+++ b/app/views/projects/issues/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Issues"
= content_for :meta_tags do
- if current_user
= auto_discovery_link_tag(:atom, namespace_project_issues_url(@project.namespace, @project, :atom, private_token: current_user.private_token), title: "#{@project.name} issues")
diff --git a/app/views/projects/issues/new.html.haml b/app/views/projects/issues/new.html.haml
index b1bc3ba0eba..96e43855628 100644
--- a/app/views/projects/issues/new.html.haml
+++ b/app/views/projects/issues/new.html.haml
@@ -1 +1,2 @@
+- page_title "New issue"
= render "form"
diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml
index bd28d8a1db2..81478dfe568 100644
--- a/app/views/projects/issues/show.html.haml
+++ b/app/views/projects/issues/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "#{@issue.title} (##{@issue.iid})", "Issues"
.issue
.issue-details
%h4.page-title
diff --git a/app/views/projects/labels/edit.html.haml b/app/views/projects/labels/edit.html.haml
index e003d1dfe7f..645402667fd 100644
--- a/app/views/projects/labels/edit.html.haml
+++ b/app/views/projects/labels/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @label.name, "Labels"
%h3
Edit label
%span.light #{@label.name}
diff --git a/app/views/projects/labels/index.html.haml b/app/views/projects/labels/index.html.haml
index 0700e72d39c..7d19415a7f4 100644
--- a/app/views/projects/labels/index.html.haml
+++ b/app/views/projects/labels/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Labels"
- if can? current_user, :admin_label, @project
= link_to new_namespace_project_label_path(@project.namespace, @project), class: "pull-right btn btn-new" do
New label
diff --git a/app/views/projects/labels/new.html.haml b/app/views/projects/labels/new.html.haml
index 0683ed5d4fb..7cacbd0f302 100644
--- a/app/views/projects/labels/new.html.haml
+++ b/app/views/projects/labels/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New label"
%h3 New label
.back-link
= link_to namespace_project_labels_path(@project.namespace, @project) do
diff --git a/app/views/projects/merge_requests/_show.html.haml b/app/views/projects/merge_requests/_show.html.haml
index 45dd410dd15..c2f5cdacae7 100644
--- a/app/views/projects/merge_requests/_show.html.haml
+++ b/app/views/projects/merge_requests/_show.html.haml
@@ -1,3 +1,4 @@
+- page_title "#{@merge_request.title} (##{@merge_request.iid})", "Merge Requests"
.merge-request{'data-url' => merge_request_path(@merge_request)}
.merge-request-details
= render "projects/merge_requests/show/mr_title"
diff --git a/app/views/projects/merge_requests/edit.html.haml b/app/views/projects/merge_requests/edit.html.haml
index 839c63986ab..7e5cb07f249 100644
--- a/app/views/projects/merge_requests/edit.html.haml
+++ b/app/views/projects/merge_requests/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", "#{@merge_request.title} (##{@merge_request.iid})", "Merge Requests"
%h3.page-title
= "Edit merge request ##{@merge_request.iid}"
%hr
diff --git a/app/views/projects/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml
index d7992bdd19e..ab845a7e719 100644
--- a/app/views/projects/merge_requests/index.html.haml
+++ b/app/views/projects/merge_requests/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Merge Requests"
.append-bottom-10
.pull-right
= render 'shared/issuable_search_form', path: namespace_project_merge_requests_path(@project.namespace, @project)
diff --git a/app/views/projects/merge_requests/invalid.html.haml b/app/views/projects/merge_requests/invalid.html.haml
index b9c466657de..15bd4e2fafd 100644
--- a/app/views/projects/merge_requests/invalid.html.haml
+++ b/app/views/projects/merge_requests/invalid.html.haml
@@ -1,3 +1,4 @@
+- page_title "#{@merge_request.title} (##{@merge_request.iid})", "Merge Requests"
.merge-request
= render "projects/merge_requests/show/mr_title"
= render "projects/merge_requests/show/mr_box"
diff --git a/app/views/projects/merge_requests/new.html.haml b/app/views/projects/merge_requests/new.html.haml
index 4756903d0e0..b1c7bea7de4 100644
--- a/app/views/projects/merge_requests/new.html.haml
+++ b/app/views/projects/merge_requests/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New merge request"
- if @merge_request.can_be_created
= render 'new_submit'
- else
diff --git a/app/views/projects/milestones/edit.html.haml b/app/views/projects/milestones/edit.html.haml
index b1bc3ba0eba..c09815a212a 100644
--- a/app/views/projects/milestones/edit.html.haml
+++ b/app/views/projects/milestones/edit.html.haml
@@ -1 +1,2 @@
+- page_title "Edit", @milestone.title, "Milestones"
= render "form"
diff --git a/app/views/projects/milestones/index.html.haml b/app/views/projects/milestones/index.html.haml
index d3eab8d6d75..995eecd7830 100644
--- a/app/views/projects/milestones/index.html.haml
+++ b/app/views/projects/milestones/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Milestones"
.pull-right
- if can? current_user, :admin_milestone, @project
= link_to new_namespace_project_milestone_path(@project.namespace, @project), class: "pull-right btn btn-new", title: "New Milestone" do
diff --git a/app/views/projects/milestones/new.html.haml b/app/views/projects/milestones/new.html.haml
index b1bc3ba0eba..d76e417b3c5 100644
--- a/app/views/projects/milestones/new.html.haml
+++ b/app/views/projects/milestones/new.html.haml
@@ -1 +1,2 @@
+- page_title "New milestone"
= render "form"
diff --git a/app/views/projects/milestones/show.html.haml b/app/views/projects/milestones/show.html.haml
index 25cc0030965..bba2b8764ac 100644
--- a/app/views/projects/milestones/show.html.haml
+++ b/app/views/projects/milestones/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @milestone.title, "Milestones"
%h4.page-title
.issue-box{ class: issue_box_class(@milestone) }
- if @milestone.closed?
diff --git a/app/views/projects/network/show.html.haml b/app/views/projects/network/show.html.haml
index c36bad1e94b..4d3f118f2d9 100644
--- a/app/views/projects/network/show.html.haml
+++ b/app/views/projects/network/show.html.haml
@@ -1,3 +1,4 @@
+- page_title "Network"
= render "head"
.project-network
.controls
diff --git a/app/views/projects/project_members/import.html.haml b/app/views/projects/project_members/import.html.haml
index 293754cd0c0..6914543f6da 100644
--- a/app/views/projects/project_members/import.html.haml
+++ b/app/views/projects/project_members/import.html.haml
@@ -1,3 +1,4 @@
+- page_title "Import members"
%h3.page-title
Import members from another project
%p.light
diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml
index 36a6f6a1554..6edb92acd4d 100644
--- a/app/views/projects/project_members/index.html.haml
+++ b/app/views/projects/project_members/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Members"
%h3.page-title
Users with access to this project
diff --git a/app/views/projects/protected_branches/index.html.haml b/app/views/projects/protected_branches/index.html.haml
index a3464c0e5e1..52b3a50c1e6 100644
--- a/app/views/projects/protected_branches/index.html.haml
+++ b/app/views/projects/protected_branches/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Protected branches"
%h3.page-title Protected branches
%p.light Keep stable branches secure and force developers to use Merge Requests
%hr
diff --git a/app/views/projects/services/edit.html.haml b/app/views/projects/services/edit.html.haml
index bcc5832792f..50ed78286d2 100644
--- a/app/views/projects/services/edit.html.haml
+++ b/app/views/projects/services/edit.html.haml
@@ -1 +1,2 @@
+- page_title @service.title, "Services"
= render 'form'
diff --git a/app/views/projects/services/index.html.haml b/app/views/projects/services/index.html.haml
index 0d3ccb6bb83..1065def693b 100644
--- a/app/views/projects/services/index.html.haml
+++ b/app/views/projects/services/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Services"
%h3.page-title Project services
%p.light Project services allow you to integrate GitLab with other applications
diff --git a/app/views/projects/snippets/edit.html.haml b/app/views/projects/snippets/edit.html.haml
index 7baddebde45..945f0084dff 100644
--- a/app/views/projects/snippets/edit.html.haml
+++ b/app/views/projects/snippets/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @snippet.title, "Snippets"
%h3.page-title
Edit snippet
%hr
diff --git a/app/views/projects/snippets/index.html.haml b/app/views/projects/snippets/index.html.haml
index e2d8ec673a1..da9401bd8c1 100644
--- a/app/views/projects/snippets/index.html.haml
+++ b/app/views/projects/snippets/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Snippets"
%h3.page-title
Snippets
- if can? current_user, :write_project_snippet, @project
diff --git a/app/views/projects/snippets/new.html.haml b/app/views/projects/snippets/new.html.haml
index 5efe662665e..2d9beef1cbc 100644
--- a/app/views/projects/snippets/new.html.haml
+++ b/app/views/projects/snippets/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New snippets"
%h3.page-title
New snippet
%hr
diff --git a/app/views/projects/snippets/show.html.haml b/app/views/projects/snippets/show.html.haml
index d19689a1056..5725d804df3 100644
--- a/app/views/projects/snippets/show.html.haml
+++ b/app/views/projects/snippets/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @snippet.title, "Snippets"
%h3.page-title
= @snippet.title
diff --git a/app/views/projects/tags/index.html.haml b/app/views/projects/tags/index.html.haml
index f1bc2bc9a2b..d4652a47cba 100644
--- a/app/views/projects/tags/index.html.haml
+++ b/app/views/projects/tags/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Tags"
= render "projects/commits/head"
%h3.page-title
diff --git a/app/views/projects/tags/new.html.haml b/app/views/projects/tags/new.html.haml
index 655044438d5..61c35e4a5e2 100644
--- a/app/views/projects/tags/new.html.haml
+++ b/app/views/projects/tags/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New tag"
- if @error
.alert.alert-danger
%button{ type: "button", class: "close", "data-dismiss" => "alert"} &times;
diff --git a/app/views/projects/tree/show.html.haml b/app/views/projects/tree/show.html.haml
index a8a580944e1..d0a3f522e28 100644
--- a/app/views/projects/tree/show.html.haml
+++ b/app/views/projects/tree/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @path.presence, @ref
= content_for :meta_tags do
- if current_user
= auto_discovery_link_tag(:atom, namespace_project_commits_url(@project.namespace, @project, @ref, format: :atom, private_token: current_user.private_token), title: "#{@project.name}:#{@ref} commits")
diff --git a/app/views/projects/wikis/edit.html.haml b/app/views/projects/wikis/edit.html.haml
index 566850cb78d..3f1dce1050c 100644
--- a/app/views/projects/wikis/edit.html.haml
+++ b/app/views/projects/wikis/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @page.title, "Wiki"
= render 'nav'
.pull-right
= render 'main_links'
diff --git a/app/views/projects/wikis/empty.html.haml b/app/views/projects/wikis/empty.html.haml
index 48058124f97..ead99412406 100644
--- a/app/views/projects/wikis/empty.html.haml
+++ b/app/views/projects/wikis/empty.html.haml
@@ -1,3 +1,4 @@
+- page_title "Wiki"
%h3.page-title Empty page
%hr
.error_message
diff --git a/app/views/projects/wikis/git_access.html.haml b/app/views/projects/wikis/git_access.html.haml
index 365edb524f4..b47dffe00b3 100644
--- a/app/views/projects/wikis/git_access.html.haml
+++ b/app/views/projects/wikis/git_access.html.haml
@@ -1,3 +1,4 @@
+- page_title "Git access", "Wiki"
= render 'nav'
.row
.col-sm-6
diff --git a/app/views/projects/wikis/history.html.haml b/app/views/projects/wikis/history.html.haml
index 91291f753f7..673ec2d20e5 100644
--- a/app/views/projects/wikis/history.html.haml
+++ b/app/views/projects/wikis/history.html.haml
@@ -1,3 +1,4 @@
+- page_title "History", @page.title, "Wiki"
= render 'nav'
%h3.page-title
%span.light History for
diff --git a/app/views/projects/wikis/pages.html.haml b/app/views/projects/wikis/pages.html.haml
index ee233d9086f..890ff1aed73 100644
--- a/app/views/projects/wikis/pages.html.haml
+++ b/app/views/projects/wikis/pages.html.haml
@@ -1,3 +1,4 @@
+- page_title "All Pages", "Wiki"
= render 'nav'
%h3.page-title
All Pages
diff --git a/app/views/projects/wikis/show.html.haml b/app/views/projects/wikis/show.html.haml
index a6263e93f67..83cd4c66672 100644
--- a/app/views/projects/wikis/show.html.haml
+++ b/app/views/projects/wikis/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @page.title, "Wiki"
= render 'nav'
%h3.page-title
= @page.title
diff --git a/app/views/search/show.html.haml b/app/views/search/show.html.haml
index e9f2711be2a..60f9e9ac9de 100644
--- a/app/views/search/show.html.haml
+++ b/app/views/search/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @search_term
= render 'search/form'
%hr
- if @search_term
diff --git a/app/views/snippets/current_user_index.html.haml b/app/views/snippets/current_user_index.html.haml
index 6bb2237a759..0718f743828 100644
--- a/app/views/snippets/current_user_index.html.haml
+++ b/app/views/snippets/current_user_index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Your Snippets"
%h3.page-title
Your Snippets
.pull-right
diff --git a/app/views/snippets/edit.html.haml b/app/views/snippets/edit.html.haml
index 30aa174edfb..1a380035661 100644
--- a/app/views/snippets/edit.html.haml
+++ b/app/views/snippets/edit.html.haml
@@ -1,3 +1,4 @@
+- page_title "Edit", @snippet.title, "Snippets"
%h3.page-title
Edit snippet
%hr
diff --git a/app/views/snippets/index.html.haml b/app/views/snippets/index.html.haml
index 108dd0cca3e..e9bb6a908d3 100644
--- a/app/views/snippets/index.html.haml
+++ b/app/views/snippets/index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Public Snippets"
%h3.page-title
Public snippets
diff --git a/app/views/snippets/new.html.haml b/app/views/snippets/new.html.haml
index 77cfd9af335..2c920413519 100644
--- a/app/views/snippets/new.html.haml
+++ b/app/views/snippets/new.html.haml
@@ -1,3 +1,4 @@
+- page_title "New snippet"
%h3.page-title
New snippet
%hr
diff --git a/app/views/snippets/show.html.haml b/app/views/snippets/show.html.haml
index 5204fb9a907..903f51ff6c3 100644
--- a/app/views/snippets/show.html.haml
+++ b/app/views/snippets/show.html.haml
@@ -1,3 +1,4 @@
+- page_title @snippet.title, "Snippet"
%h3.page-title
= @snippet.title
diff --git a/app/views/snippets/user_index.html.haml b/app/views/snippets/user_index.html.haml
index df524cd18b0..23700eb39da 100644
--- a/app/views/snippets/user_index.html.haml
+++ b/app/views/snippets/user_index.html.haml
@@ -1,3 +1,4 @@
+- page_title "Snippets", @user.name
%h3.page-title
= image_tag avatar_icon(@user.email), class: "avatar s24"
= @user.name