Add a page title to every page.

This commit is contained in:
Douwe Maan 2015-04-30 19:06:18 +02:00
parent f2cf6d75ec
commit 26ad250989
197 changed files with 426 additions and 390 deletions

View file

@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 7.11.0 (unreleased)
- Don't allow a merge request to be merged when its title starts with "WIP".
- Add a page title to every page.
- Get Gitorious importer to work again.
- Fix clone URL field and X11 Primary selection (Dmitry Medvinsky)
- Ignore invalid lines in .gitmodules

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,4 +1,4 @@
class Dashboard::MilestonesController < ApplicationController
class Dashboard::MilestonesController < Dashboard::ApplicationController
before_action :load_projects
def index

View file

@ -1,4 +1,4 @@
class Dashboard::ProjectsController < ApplicationController
class Dashboard::ProjectsController < Dashboard::ApplicationController
before_action :event_filter
def starred

View file

@ -1,9 +1,9 @@
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)
@last_push = current_user.recent_push

View file

@ -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

View file

@ -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?

View file

@ -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)

View file

@ -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

View file

@ -1,6 +1,4 @@
class Groups::AvatarsController < ApplicationController
layout "profile"
def destroy
@group = Group.find_by(path: params[:group_id])
@group.remove_avatar!

View file

@ -1,6 +1,4 @@
class Groups::MilestonesController < ApplicationController
layout 'group'
class Groups::MilestonesController < Groups::ApplicationController
before_action :authorize_group_milestone!, only: :update
def index

View file

@ -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

View file

@ -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')

View file

@ -4,8 +4,6 @@ class InvitesController < ApplicationController
respond_to :html
layout 'navless'
def show
end

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,4 @@
class Profiles::AccountsController < ApplicationController
layout "profile"
class Profiles::AccountsController < Profiles::ApplicationController
def show
@user = current_user
end

View file

@ -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

View file

@ -1,6 +1,4 @@
class Profiles::AvatarsController < ApplicationController
layout "profile"
class Profiles::AvatarsController < Profiles::ApplicationController
def destroy
@user = current_user
@user.remove_avatar!

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,4 @@
class Profiles::NotificationsController < ApplicationController
layout 'profile'
class Profiles::NotificationsController < Profiles::ApplicationController
def show
@user = current_user
@notification = current_user.notification

View file

@ -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

View file

@ -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

View file

@ -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(

View file

@ -1,6 +1,4 @@
class Projects::AvatarsController < Projects::ApplicationController
layout 'project'
before_action :project
def show

View file

@ -18,7 +18,6 @@ class Projects::ForksController < Projects::ApplicationController
notice: 'Project was successfully forked.'
)
else
@title = 'Fork project'
render :error
end
end

View file

@ -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? }

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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')

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title "Settings"
%h3.page-title Application settings
%hr
= render 'form'

View file

@ -1,3 +1,4 @@
- page_title "Edit", @application.name, "Applications"
%h3.page-title Edit application
- @url = admin_application_path(@application)
= render 'form', application: @application

View file

@ -1,3 +1,4 @@
- page_title "Applications"
%h3.page-title
System OAuth applications
%p.light

View file

@ -1,3 +1,4 @@
- page_title "New application"
%h3.page-title New application
- @url = admin_applications_path
= render 'form', application: @application

View file

@ -1,3 +1,4 @@
- page_title @application.name, "Applications"
%h3.page-title
Application: #{@application.name}

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title "Broadcast Messages"
%h3.page-title
Broadcast Messages
%p.light

View file

@ -1,3 +1,4 @@
- page_title "Deploy Keys"
.panel.panel-default
.panel-heading
Public deploy keys (#{@deploy_keys.count})

View file

@ -1,3 +1,4 @@
- page_title "New Deploy Key"
%h3.page-title New public deploy key
%hr

View file

@ -1,3 +1,4 @@
- page_title @deploy_key.title, "Deploy Keys"
.row
.col-md-4
.panel.panel-default

View file

@ -1,3 +1,4 @@
- page_title "Edit", @group.name, "Groups"
%h3.page-title Edit group: #{@group.name}
%hr
= render 'form'

View file

@ -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"

View file

@ -1,3 +1,4 @@
- page_title "New group"
%h3.page-title New group
%hr
= render 'form'

View file

@ -1,3 +1,4 @@
- page_title @group.name, "Groups"
%h3.page-title
Group: #{@group.name}

View file

@ -1,3 +1,4 @@
- page_title "System Hooks"
%h3.page-title
System hooks

View file

@ -1 +1,2 @@
- page_title @key.title, "Keys"
= render "profiles/keys/key_details", admin: true

View file

@ -1,3 +1,4 @@
- page_title "Logs"
- loggers = [Gitlab::GitLogger, Gitlab::AppLogger,
Gitlab::ProductionLogger, Gitlab::SidekiqLogger]
%ul.nav.nav-tabs.log-tabs

View file

@ -1,3 +1,4 @@
- page_title "Projects"
= render 'shared/show_aside'
.row

View file

@ -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

View file

@ -1 +1,2 @@
- page_title @service.title, "Service Templates"
= render 'form'

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title "Edit", @user.name, "Users"
%h3.page-title
Edit user: #{@user.name}
.back-link

View file

@ -1,3 +1,4 @@
- page_title "Users"
= render 'shared/show_aside'
.row

View file

@ -1,3 +1,4 @@
- page_title "New user"
%h3.page-title
New user
%hr

View file

@ -1,3 +1,4 @@
- page_title @user.name, "Users"
%h3.page-title
User:
= @user.name

View file

@ -1,3 +1,4 @@
- page_title "Groups"
%h3.page-title
Group Membership
- if current_user.can_create_group?

View file

@ -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")

View file

@ -1,3 +1,4 @@
- page_title "Merge Requests"
%h3.page-title
Merge Requests

View file

@ -1,3 +1,4 @@
- page_title "Milestones"
%h3.page-title
Milestones
%span.pull-right #{@dashboard_milestones.count} milestones

View file

@ -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?

View file

@ -1,3 +1,4 @@
- page_title "Starred Projects"
- if @projects.any?
= render 'shared/show_aside'

View file

@ -1,3 +1,4 @@
- page_title "Sign up"
= render 'devise/shared/signup_box'
= render 'devise/shared/sign_in_link'

View file

@ -1,3 +1,4 @@
- page_title "Sign in"
%div
- if signin_enabled? || ldap_enabled?
= render 'devise/shared/signin_box'

View file

@ -1,2 +1,3 @@
- page_title "Edit", @application.name, "Applications"
%h3.page-title Edit application
= render 'form', application: @application

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title @application.name, "Application"
%h3.page-title
Application: #{@application.name}

View file

@ -1,3 +1,4 @@
- page_title "Access Denied"
%h1 403
%h3 Access Denied
%hr

View file

@ -1,3 +1,4 @@
- page_title "Encoding Error"
%h1 500
%h3 Encoding Error
%hr

View file

@ -1,3 +1,4 @@
- page_title "Git Resource Not Found"
%h1 404
%h3 Git Resource Not found
%hr

View file

@ -1,3 +1,4 @@
- page_title "Not Found"
%h1 404
%h3 The resource you were looking for doesn't exist.
%hr

View file

@ -1,3 +1,4 @@
- page_title "Auth Error"
%h1 422
%h3 Sign-in using #{@provider} auth failed
%hr

View file

@ -1,3 +1,4 @@
- page_title "Groups"
.clearfix
.pull-left
= form_tag explore_groups_path, method: :get, class: 'form-inline form-tiny' do |f|

View file

@ -1,3 +1,4 @@
- page_title "Projects"
.clearfix
= render 'filter'

View file

@ -1,3 +1,4 @@
- page_title "Starred Projects"
.explore-trending-block
%p.lead
%i.fa.fa-star

View file

@ -1,3 +1,4 @@
- page_title "Trending Projects"
.explore-title
%h3
Explore GitLab

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title "Settings"
.panel.panel-default
.panel-heading
%strong= @group.name

View file

@ -1,3 +1,4 @@
- page_title "Members"
- show_roles = should_user_see_group_roles?(current_user, @group)
%h3.page-title

View file

@ -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")

View file

@ -1,3 +1,4 @@
- page_title "Merge Requests"
%h3.page-title
Merge Requests

View file

@ -1,3 +1,4 @@
- page_title "Milestones"
%h3.page-title
Milestones
%span.pull-right #{@group_milestones.count} milestones

View file

@ -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?

View file

@ -1,3 +1,4 @@
- page_title "Projects"
.panel.panel-default
.panel-heading
%strong= @group.name

View file

@ -1,3 +1,4 @@
- page_title "Help"
%div
%h1
GitLab

View file

@ -1,2 +1,3 @@
- page_title @file, *@category.split("/").reverse, "Help"
.documentation.wiki
= markdown @markdown.gsub('$your_email', current_user.email)

View file

@ -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

View file

@ -1,3 +1,4 @@
- page_title "Bitbucket import"
%h3.page-title
%i.fa.fa-bitbucket
Import projects from Bitbucket

View file

@ -1,3 +1,4 @@
- page_title "GitHub import"
%h3.page-title
%i.fa.fa-github
Import projects from GitHub

View file

@ -1,3 +1,4 @@
- page_title "GitLab.com import"
%h3.page-title
%i.fa.fa-heart
Import projects from GitLab.com

View file

@ -1,3 +1,4 @@
- page_title "Gitorious import"
%h3.page-title
%i.icon-gitorious.icon-gitorious-big
Import projects from Gitorious.org

View file

@ -1,3 +1,4 @@
- page_title "Google Code import"
%h3.page-title
%i.fa.fa-google
Import projects from Google Code

View file

@ -1,3 +1,4 @@
- page_title "User map", "Google Code import"
%h3.page-title
%i.fa.fa-google
Import projects from Google Code

Some files were not shown because too many files have changed in this diff Show more