Add helpers for header title and sidebar, and move setting those from controllers to layouts.
This commit is contained in:
parent
ae09c2a6db
commit
92fd3ccee0
33 changed files with 112 additions and 129 deletions
|
@ -8,7 +8,6 @@ class Dispatcher
|
|||
|
||||
initPageScripts: ->
|
||||
page = $('body').attr('data-page')
|
||||
project_id = $('body').attr('data-project-id')
|
||||
|
||||
unless page
|
||||
return false
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -3,6 +3,7 @@ require 'gon'
|
|||
class ApplicationController < ActionController::Base
|
||||
include Gitlab::CurrentSettings
|
||||
include GitlabRoutingHelper
|
||||
include PageLayoutHelper
|
||||
|
||||
PER_PAGE = 20
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
26
app/helpers/page_layout_helper.rb
Normal file
26
app/helpers/page_layout_helper.rb
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
5
app/views/layouts/admin.html.haml
Normal file
5
app/views/layouts/admin.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title "Admin area"
|
||||
- header_title "Admin area", admin_root_path
|
||||
- sidebar "admin"
|
||||
|
||||
= render template: "layouts/application"
|
|
@ -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
|
||||
|
|
5
app/views/layouts/dashboard.html.haml
Normal file
5
app/views/layouts/dashboard.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title "Dashboard"
|
||||
- header_title "Dashboard", root_path
|
||||
- sidebar "dashboard"
|
||||
|
||||
= render template: "layouts/application"
|
5
app/views/layouts/explore.html.haml
Normal file
5
app/views/layouts/explore.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title "Explore"
|
||||
- header_title "Explore GitLab", explore_root_path
|
||||
- sidebar "explore"
|
||||
|
||||
= render template: "layouts/application"
|
5
app/views/layouts/group.html.haml
Normal file
5
app/views/layouts/group.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title @group.name
|
||||
- header_title @group.name, group_path(@group)
|
||||
- sidebar "group"
|
||||
|
||||
= render template: "layouts/application"
|
4
app/views/layouts/help.html.haml
Normal file
4
app/views/layouts/help.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
|||
- page_title "Help"
|
||||
- header_title "Help", help_path
|
||||
|
||||
= render template: "layouts/application"
|
5
app/views/layouts/profile.html.haml
Normal file
5
app/views/layouts/profile.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title "Profile"
|
||||
- header_title "Profile", profile_path
|
||||
- sidebar "profile"
|
||||
|
||||
= render template: "layouts/application"
|
|
@ -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"
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
- @sidebar = "project_settings"
|
||||
- page_title "Settings"
|
||||
- sidebar "project_settings"
|
||||
|
||||
= render template: "layouts/project"
|
||||
|
|
4
app/views/layouts/search.html.haml
Normal file
4
app/views/layouts/search.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
|||
- page_title "Search"
|
||||
- header_title "Search", search_path
|
||||
|
||||
= render template: "layouts/application"
|
5
app/views/layouts/snippets.html.haml
Normal file
5
app/views/layouts/snippets.html.haml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- page_title 'Snippets'
|
||||
- header_title 'Snippets', snippets_path
|
||||
- sidebar "snippets"
|
||||
|
||||
= render template: "layouts/application"
|
|
@ -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|
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
- page_title "Settings"
|
||||
.project-edit-container
|
||||
.project-edit-errors
|
||||
.project-edit-content
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
- page_title 'New Project'
|
||||
- header_title 'New Project'
|
||||
.project-edit-container
|
||||
.project-edit-errors
|
||||
= render 'projects/errors'
|
||||
|
|
Loading…
Reference in a new issue