summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-05-01 10:39:11 +0200
committerDouwe Maan <douwe@gitlab.com>2015-05-01 10:39:16 +0200
commit92fd3ccee05acdfd5e498734ed287458a8dd21a3 (patch)
treea794a8017636ce7f50a7f4ef4201395894a5451e
parentae09c2a6db0d15caedc080c319add147c79fd02a (diff)
downloadgitlab-ce-92fd3ccee05acdfd5e498734ed287458a8dd21a3.tar.gz
Add helpers for header title and sidebar, and move setting those from controllers to layouts.
-rw-r--r--app/assets/javascripts/dispatcher.js.coffee1
-rw-r--r--app/controllers/admin/application_controller.rb8
-rw-r--r--app/controllers/application_controller.rb1
-rw-r--r--app/controllers/dashboard/application_controller.rb10
-rw-r--r--app/controllers/explore/application_controller.rb10
-rw-r--r--app/controllers/groups/application_controller.rb8
-rw-r--r--app/controllers/groups_controller.rb8
-rw-r--r--app/controllers/help_controller.rb7
-rw-r--r--app/controllers/oauth/applications_controller.rb11
-rw-r--r--app/controllers/oauth/authorizations_controller.rb9
-rw-r--r--app/controllers/oauth/authorized_applications_controller.rb12
-rw-r--r--app/controllers/profiles/application_controller.rb10
-rw-r--r--app/controllers/profiles/passwords_controller.rb9
-rw-r--r--app/controllers/projects_controller.rb5
-rw-r--r--app/controllers/search_controller.rb9
-rw-r--r--app/controllers/snippets_controller.rb9
-rw-r--r--app/helpers/application_helper.rb8
-rw-r--r--app/helpers/page_layout_helper.rb26
-rw-r--r--app/views/groups/new.html.haml2
-rw-r--r--app/views/layouts/admin.html.haml5
-rw-r--r--app/views/layouts/application.html.haml11
-rw-r--r--app/views/layouts/dashboard.html.haml5
-rw-r--r--app/views/layouts/explore.html.haml5
-rw-r--r--app/views/layouts/group.html.haml5
-rw-r--r--app/views/layouts/help.html.haml4
-rw-r--r--app/views/layouts/profile.html.haml5
-rw-r--r--app/views/layouts/project.html.haml20
-rw-r--r--app/views/layouts/project_settings.html.haml4
-rw-r--r--app/views/layouts/search.html.haml4
-rw-r--r--app/views/layouts/snippets.html.haml5
-rw-r--r--app/views/profiles/passwords/new.html.haml2
-rw-r--r--app/views/projects/edit.html.haml1
-rw-r--r--app/views/projects/new.html.haml2
33 files changed, 112 insertions, 129 deletions
diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee
index 9aee3b281f3..06787ddf874 100644
--- a/app/assets/javascripts/dispatcher.js.coffee
+++ b/app/assets/javascripts/dispatcher.js.coffee
@@ -8,7 +8,6 @@ class Dispatcher
initPageScripts: ->
page = $('body').attr('data-page')
- project_id = $('body').attr('data-project-id')
unless page
return false
diff --git a/app/controllers/admin/application_controller.rb b/app/controllers/admin/application_controller.rb
index cfbeb035c0e..56e24386463 100644
--- a/app/controllers/admin/application_controller.rb
+++ b/app/controllers/admin/application_controller.rb
@@ -3,15 +3,9 @@
# Automatically sets the layout and ensures an administrator is logged in
class Admin::ApplicationController < ApplicationController
before_action :authenticate_admin!
- before_action :set_title
+ layout 'admin'
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/application_controller.rb b/app/controllers/application_controller.rb
index 69fd7901832..c9b34eac4b0 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -3,6 +3,7 @@ require 'gon'
class ApplicationController < ActionController::Base
include Gitlab::CurrentSettings
include GitlabRoutingHelper
+ include PageLayoutHelper
PER_PAGE = 20
diff --git a/app/controllers/dashboard/application_controller.rb b/app/controllers/dashboard/application_controller.rb
index 0a0af3d4ce2..962ea38d6c9 100644
--- a/app/controllers/dashboard/application_controller.rb
+++ b/app/controllers/dashboard/application_controller.rb
@@ -1,11 +1,3 @@
class Dashboard::ApplicationController < ApplicationController
- before_action :set_title
-
- private
-
- def set_title
- @title = "Dashboard"
- @title_url = root_path
- @sidebar = "dashboard"
- end
+ layout 'dashboard'
end
diff --git a/app/controllers/explore/application_controller.rb b/app/controllers/explore/application_controller.rb
index 8d94fd238a6..4b275033d26 100644
--- a/app/controllers/explore/application_controller.rb
+++ b/app/controllers/explore/application_controller.rb
@@ -1,11 +1,3 @@
class Explore::ApplicationController < ApplicationController
- before_action :set_title
-
- private
-
- def set_title
- @title = "Explore GitLab"
- @title_url = explore_root_path
- @sidebar = "explore"
- end
+ layout 'explore'
end
diff --git a/app/controllers/groups/application_controller.rb b/app/controllers/groups/application_controller.rb
index e0fd4befae9..4df9d1b7533 100644
--- a/app/controllers/groups/application_controller.rb
+++ b/app/controllers/groups/application_controller.rb
@@ -1,5 +1,5 @@
class Groups::ApplicationController < ApplicationController
- before_action :set_title
+ layout 'group'
private
@@ -18,10 +18,4 @@ class Groups::ApplicationController < ApplicationController
return render_404
end
end
-
- def set_title
- @title = group.name
- @title_url = group_path(group)
- @sidebar = "group"
- end
end
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 66e92abff8d..34f0b257db3 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -12,6 +12,8 @@ class GroupsController < Groups::ApplicationController
before_action :load_projects, except: [:new, :create, :projects, :edit, :update]
before_action :event_filter, only: :show
+ layout :determine_layout
+
def new
@group = Group.new
end
@@ -116,11 +118,11 @@ class GroupsController < Groups::ApplicationController
end
end
- def set_title
+ def determine_layout
if [:new, :create].include?(action_name.to_sym)
- @title = 'New Group'
+ 'application'
else
- super
+ 'group'
end
end
diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index 2842151e3bd..8a45dc8860d 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -1,5 +1,5 @@
class HelpController < ApplicationController
- before_action :set_title
+ layout 'help'
def index
end
@@ -46,11 +46,6 @@ class HelpController < ApplicationController
private
- def set_title
- @title = "Help"
- @title_url = help_path
- end
-
def path_params
params.require(:category)
params.require(:file)
diff --git a/app/controllers/oauth/applications_controller.rb b/app/controllers/oauth/applications_controller.rb
index f30a85564d4..507b8290a2b 100644
--- a/app/controllers/oauth/applications_controller.rb
+++ b/app/controllers/oauth/applications_controller.rb
@@ -1,6 +1,9 @@
class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
+ include PageLayoutHelper
+
before_action :authenticate_user!
- before_action :set_title
+
+ layout 'profile'
def index
head :forbidden and return
@@ -36,10 +39,4 @@ 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 c62890ba85b..24025d8c723 100644
--- a/app/controllers/oauth/authorizations_controller.rb
+++ b/app/controllers/oauth/authorizations_controller.rb
@@ -1,6 +1,7 @@
class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
before_action :authenticate_resource_owner!
- before_action :set_title
+
+ layout 'profile'
def new
if pre_auth.authorizable?
@@ -54,10 +55,4 @@ 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 63c634f376b..3ab6def511c 100644
--- a/app/controllers/oauth/authorized_applications_controller.rb
+++ b/app/controllers/oauth/authorized_applications_controller.rb
@@ -1,16 +1,10 @@
class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicationsController
- before_action :set_title
+ include PageLayoutHelper
+
+ layout 'profile'
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/application_controller.rb b/app/controllers/profiles/application_controller.rb
index 8373ff7a758..c8be288b9a0 100644
--- a/app/controllers/profiles/application_controller.rb
+++ b/app/controllers/profiles/application_controller.rb
@@ -1,11 +1,3 @@
class Profiles::ApplicationController < ApplicationController
- before_action :set_title
-
- private
-
- def set_title
- @title = "Profile"
- @title_url = profile_path
- @sidebar = "profile"
- end
+ layout 'profile'
end
diff --git a/app/controllers/profiles/passwords_controller.rb b/app/controllers/profiles/passwords_controller.rb
index 86976ae39e3..c780e0983f9 100644
--- a/app/controllers/profiles/passwords_controller.rb
+++ b/app/controllers/profiles/passwords_controller.rb
@@ -2,9 +2,10 @@ class Profiles::PasswordsController < Profiles::ApplicationController
skip_before_action :check_password_expiration, only: [:new, :create]
before_action :set_user
- before_action :set_title
before_action :authorize_change_password!
+ layout :determine_layout
+
def new
end
@@ -64,11 +65,11 @@ class Profiles::PasswordsController < Profiles::ApplicationController
@user = current_user
end
- def set_title
+ def determine_layout
if [:new, :create].include?(action_name.to_sym)
- @title = "New password"
+ 'application'
else
- super
+ 'profile'
end
end
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index da6b0c3c91a..dc430351551 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -6,7 +6,6 @@ class ProjectsController < ApplicationController
# Authorize
before_action :authorize_admin_project!, only: [:edit, :update, :destroy, :transfer, :archive, :unarchive]
- before_action :set_title, only: [:new, :create]
before_action :event_filter, only: :show
layout :determine_layout
@@ -160,10 +159,6 @@ class ProjectsController < ApplicationController
private
- def set_title
- @title = 'New Project'
- end
-
def determine_layout
if [:new, :create].include?(action_name.to_sym)
'application'
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index ba6f2a41fdc..4e2ea6c5710 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -1,7 +1,7 @@
class SearchController < ApplicationController
include SearchHelper
- before_action :set_title
+ layout 'search'
def show
return if params[:search].nil? || params[:search].blank?
@@ -57,11 +57,4 @@ 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 c960724b47a..cf672c5c093 100644
--- a/app/controllers/snippets_controller.rb
+++ b/app/controllers/snippets_controller.rb
@@ -7,10 +7,9 @@ class SnippetsController < ApplicationController
# Allow destroy snippet
before_action :authorize_admin_snippet!, only: [:destroy]
- before_action :set_title
-
skip_before_action :authenticate_user!, only: [:index, :user_index, :show, :raw]
+ layout 'snippets'
respond_to :html
def index
@@ -96,12 +95,6 @@ class SnippetsController < ApplicationController
return render_404 unless can?(current_user, :admin_personal_snippet, @snippet)
end
- def set_title
- @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
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 399e49e352d..6e86400a4f6 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -332,12 +332,4 @@ 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/page_layout_helper.rb b/app/helpers/page_layout_helper.rb
new file mode 100644
index 00000000000..01b6a63552c
--- /dev/null
+++ b/app/helpers/page_layout_helper.rb
@@ -0,0 +1,26 @@
+module PageLayoutHelper
+ def page_title(*titles)
+ @page_title ||= []
+
+ @page_title.push(*titles.compact) if titles.any?
+
+ @page_title.join(" | ")
+ end
+
+ def header_title(title = nil, title_url = nil)
+ if title
+ @header_title = title
+ @header_title_url = title_url
+ else
+ @header_title_url ? link_to(@header_title, @header_title_url) : @header_title
+ end
+ end
+
+ def sidebar(name = nil)
+ if name
+ @sidebar = name
+ else
+ @sidebar
+ end
+ end
+end
diff --git a/app/views/groups/new.html.haml b/app/views/groups/new.html.haml
index 6e17cdaef6f..edb882bea19 100644
--- a/app/views/groups/new.html.haml
+++ b/app/views/groups/new.html.haml
@@ -1,3 +1,5 @@
+- page_title 'New Group'
+- header_title 'New Group'
= form_for @group, html: { class: 'group-form form-horizontal' } do |f|
- if @group.errors.any?
.alert.alert-danger
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
new file mode 100644
index 00000000000..1c738719bd8
--- /dev/null
+++ b/app/views/layouts/admin.html.haml
@@ -0,0 +1,5 @@
+- page_title "Admin area"
+- header_title "Admin area", admin_root_path
+- sidebar "admin"
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index e0829d40bc4..a97feeb1ecd 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -1,13 +1,10 @@
-- page_title @title
!!! 5
%html{ lang: "en"}
= render "layouts/head"
- %body{class: "#{app_theme} application", :'data-page' => body_data_page}
- - title = defined?(@title_url) ? link_to(@title, @title_url) : @title
-
+ %body{class: "#{app_theme}", :'data-page' => body_data_page}
- if current_user
- = render "layouts/head_panel", title: title
+ = render "layouts/head_panel", title: header_title
- else
- = render "layouts/public_head_panel", title: title
+ = render "layouts/public_head_panel", title: header_title
- = render 'layouts/page', sidebar: @sidebar
+ = render 'layouts/page', sidebar: sidebar
diff --git a/app/views/layouts/dashboard.html.haml b/app/views/layouts/dashboard.html.haml
new file mode 100644
index 00000000000..c72eca10bf4
--- /dev/null
+++ b/app/views/layouts/dashboard.html.haml
@@ -0,0 +1,5 @@
+- page_title "Dashboard"
+- header_title "Dashboard", root_path
+- sidebar "dashboard"
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/explore.html.haml b/app/views/layouts/explore.html.haml
new file mode 100644
index 00000000000..56bb92a536e
--- /dev/null
+++ b/app/views/layouts/explore.html.haml
@@ -0,0 +1,5 @@
+- page_title "Explore"
+- header_title "Explore GitLab", explore_root_path
+- sidebar "explore"
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/group.html.haml b/app/views/layouts/group.html.haml
new file mode 100644
index 00000000000..5edc03129d2
--- /dev/null
+++ b/app/views/layouts/group.html.haml
@@ -0,0 +1,5 @@
+- page_title @group.name
+- header_title @group.name, group_path(@group)
+- sidebar "group"
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/help.html.haml b/app/views/layouts/help.html.haml
new file mode 100644
index 00000000000..224b24befbe
--- /dev/null
+++ b/app/views/layouts/help.html.haml
@@ -0,0 +1,4 @@
+- page_title "Help"
+- header_title "Help", help_path
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml
new file mode 100644
index 00000000000..9799b4cc4d7
--- /dev/null
+++ b/app/views/layouts/profile.html.haml
@@ -0,0 +1,5 @@
+- page_title "Profile"
+- header_title "Profile", profile_path
+- sidebar "profile"
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index 62a6f5ddf4d..4aeb9d397d2 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -1,14 +1,8 @@
-- 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)
+- page_title @project.name_with_namespace
+- header_title project_title(@project)
+- sidebar "project" unless sidebar
- - 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'
+- content_for :embedded_scripts do
+ = render "layouts/init_auto_complete" if current_user
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/project_settings.html.haml b/app/views/layouts/project_settings.html.haml
index d12d07273f3..43401668334 100644
--- a/app/views/layouts/project_settings.html.haml
+++ b/app/views/layouts/project_settings.html.haml
@@ -1,2 +1,4 @@
-- @sidebar = "project_settings"
+- page_title "Settings"
+- sidebar "project_settings"
+
= render template: "layouts/project"
diff --git a/app/views/layouts/search.html.haml b/app/views/layouts/search.html.haml
new file mode 100644
index 00000000000..fd4c7ad21a7
--- /dev/null
+++ b/app/views/layouts/search.html.haml
@@ -0,0 +1,4 @@
+- page_title "Search"
+- header_title "Search", search_path
+
+= render template: "layouts/application"
diff --git a/app/views/layouts/snippets.html.haml b/app/views/layouts/snippets.html.haml
new file mode 100644
index 00000000000..9b0f40073ab
--- /dev/null
+++ b/app/views/layouts/snippets.html.haml
@@ -0,0 +1,5 @@
+- page_title 'Snippets'
+- header_title 'Snippets', snippets_path
+- sidebar "snippets"
+
+= render template: "layouts/application"
diff --git a/app/views/profiles/passwords/new.html.haml b/app/views/profiles/passwords/new.html.haml
index 8bed6e0dbee..9c6204963e0 100644
--- a/app/views/profiles/passwords/new.html.haml
+++ b/app/views/profiles/passwords/new.html.haml
@@ -1,3 +1,5 @@
+- page_title "New Password"
+- header_title "New Password"
%h3.page-title Setup new password
%hr
= form_for @user, url: profile_password_path, method: :post, html: { class: 'form-horizontal '} do |f|
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 1fe6a24e89f..c09d794ef7f 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -1,4 +1,3 @@
-- page_title "Settings"
.project-edit-container
.project-edit-errors
.project-edit-content
diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml
index 47c69f89a97..e56d8615132 100644
--- a/app/views/projects/new.html.haml
+++ b/app/views/projects/new.html.haml
@@ -1,3 +1,5 @@
+- page_title 'New Project'
+- header_title 'New Project'
.project-edit-container
.project-edit-errors
= render 'projects/errors'