Merge branch 'clean-up-new-nav-templates' into 'master'
Clean up new navigation templates See merge request !13983
This commit is contained in:
commit
1632ffa6ad
|
@ -1,4 +1,3 @@
|
|||
import Cookies from 'js-cookie';
|
||||
import _ from 'underscore';
|
||||
|
||||
export default class GroupName {
|
||||
|
@ -39,17 +38,9 @@ export default class GroupName {
|
|||
this.toggle.setAttribute('type', 'button');
|
||||
this.toggle.className = 'text-expander group-name-toggle';
|
||||
this.toggle.setAttribute('aria-label', 'Toggle full path');
|
||||
if (Cookies.get('new_nav') === 'true') {
|
||||
this.toggle.innerHTML = '<i class="fa fa-ellipsis-h" aria-hidden="true"></i>';
|
||||
} else {
|
||||
this.toggle.innerHTML = '...';
|
||||
}
|
||||
this.toggle.innerHTML = '<i class="fa fa-ellipsis-h" aria-hidden="true"></i>';
|
||||
this.toggle.addEventListener('click', this.toggleGroups.bind(this));
|
||||
if (Cookies.get('new_nav') === 'true') {
|
||||
this.title.insertBefore(this.toggle, this.groupTitle);
|
||||
} else {
|
||||
this.titleContainer.insertBefore(this.toggle, this.title);
|
||||
}
|
||||
this.title.insertBefore(this.toggle, this.groupTitle);
|
||||
this.toggleGroups();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
/* global SubscriptionSelect */
|
||||
|
||||
import IssuableBulkUpdateActions from './issuable_bulk_update_actions';
|
||||
import SidebarHeightManager from './sidebar_height_manager';
|
||||
|
||||
const HIDDEN_CLASS = 'hidden';
|
||||
const DISABLED_CONTENT_CLASS = 'disabled-content';
|
||||
|
@ -50,13 +49,6 @@ export default class IssuableBulkUpdateSidebar {
|
|||
new SubscriptionSelect();
|
||||
}
|
||||
|
||||
getNavHeight() {
|
||||
const navbarHeight = $('.navbar-gitlab').outerHeight();
|
||||
const layoutNavHeight = $('.layout-nav').outerHeight();
|
||||
const subNavScroll = $('.sub-nav-scroll').outerHeight();
|
||||
return navbarHeight + layoutNavHeight + subNavScroll;
|
||||
}
|
||||
|
||||
setupBulkUpdateActions() {
|
||||
IssuableBulkUpdateActions.setOriginalDropdownData();
|
||||
}
|
||||
|
@ -84,23 +76,6 @@ export default class IssuableBulkUpdateSidebar {
|
|||
this.toggleBulkEditButtonDisabled(enable);
|
||||
this.toggleOtherFiltersDisabled(enable);
|
||||
this.toggleCheckboxDisplay(enable);
|
||||
|
||||
if (enable) {
|
||||
this.initAffix();
|
||||
SidebarHeightManager.init();
|
||||
}
|
||||
}
|
||||
|
||||
initAffix() {
|
||||
if (!this.$sidebar.hasClass('affix-top')) {
|
||||
const offsetTop = $('.scrolling-tabs-container').outerHeight() + $('.sub-nav-scroll').outerHeight();
|
||||
|
||||
this.$sidebar.affix({
|
||||
offset: {
|
||||
top: offsetTop,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
updateSelectedIssuableIds() {
|
||||
|
|
|
@ -50,19 +50,10 @@ import initFlyOutNav from './fly_out_nav';
|
|||
});
|
||||
});
|
||||
|
||||
function applyScrollNavClass() {
|
||||
const scrollOpacityHeight = 40;
|
||||
$('.navbar-border').css('opacity', Math.min($(window).scrollTop() / scrollOpacityHeight, 1));
|
||||
}
|
||||
|
||||
$(() => {
|
||||
if (Cookies.get('new_nav') === 'true') {
|
||||
const newNavSidebar = new NewNavSidebar();
|
||||
newNavSidebar.bindEvents();
|
||||
const newNavSidebar = new NewNavSidebar();
|
||||
newNavSidebar.bindEvents();
|
||||
|
||||
initFlyOutNav();
|
||||
}
|
||||
|
||||
$(window).on('scroll', _.throttle(applyScrollNavClass, 100));
|
||||
initFlyOutNav();
|
||||
});
|
||||
}).call(window);
|
||||
|
|
|
@ -63,7 +63,7 @@ export default class NewNavSidebar {
|
|||
if (breakpoint === 'sm' || breakpoint === 'md') {
|
||||
this.toggleCollapsedSidebar(true);
|
||||
} else if (breakpoint === 'lg') {
|
||||
const collapse = Cookies.get('sidebar_collapsed') === 'true';
|
||||
const collapse = this.$sidebar.hasClass('sidebar-icons-only');
|
||||
this.toggleCollapsedSidebar(collapse);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
import _ from 'underscore';
|
||||
import Cookies from 'js-cookie';
|
||||
import SidebarHeightManager from './sidebar_height_manager';
|
||||
|
||||
(function() {
|
||||
this.Sidebar = (function() {
|
||||
|
@ -23,7 +22,6 @@ import SidebarHeightManager from './sidebar_height_manager';
|
|||
};
|
||||
|
||||
Sidebar.prototype.addEventListeners = function() {
|
||||
SidebarHeightManager.init();
|
||||
const $document = $(document);
|
||||
|
||||
this.sidebar.on('click', '.sidebar-collapsed-icon', this, this.sidebarCollapseClicked);
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
import _ from 'underscore';
|
||||
import Cookies from 'js-cookie';
|
||||
|
||||
export default {
|
||||
init() {
|
||||
if (!this.initialized) {
|
||||
if (Cookies.get('new_nav') === 'true' && $('.js-issuable-sidebar').length) return;
|
||||
|
||||
this.$window = $(window);
|
||||
this.$rightSidebar = $('.js-right-sidebar');
|
||||
this.$navHeight = $('.navbar-gitlab').outerHeight() +
|
||||
$('.layout-nav').outerHeight() +
|
||||
$('.sub-nav-scroll').outerHeight();
|
||||
|
||||
const throttledSetSidebarHeight = _.throttle(() => this.setSidebarHeight(), 20);
|
||||
const debouncedSetSidebarHeight = _.debounce(() => this.setSidebarHeight(), 200);
|
||||
|
||||
this.$window.on('scroll', throttledSetSidebarHeight);
|
||||
this.$window.on('resize', debouncedSetSidebarHeight);
|
||||
this.initialized = true;
|
||||
}
|
||||
},
|
||||
|
||||
setSidebarHeight() {
|
||||
const currentScrollDepth = window.pageYOffset || 0;
|
||||
const diff = this.$navHeight - currentScrollDepth;
|
||||
|
||||
if (diff > 0) {
|
||||
const newSidebarHeight = window.innerHeight - diff;
|
||||
this.$rightSidebar.outerHeight(newSidebarHeight);
|
||||
this.sidebarHeightIsCustom = true;
|
||||
} else if (this.sidebarHeightIsCustom) {
|
||||
this.$rightSidebar.outerHeight('100%');
|
||||
this.sidebarHeightIsCustom = false;
|
||||
}
|
||||
},
|
||||
};
|
|
@ -440,6 +440,7 @@
|
|||
&.right-sidebar {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.issuable-sidebar-header {
|
||||
|
|
|
@ -302,10 +302,6 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
def show_new_nav?
|
||||
true
|
||||
end
|
||||
|
||||
def collapsed_sidebar?
|
||||
cookies["sidebar_collapsed"] == "true"
|
||||
end
|
||||
|
|
|
@ -68,7 +68,7 @@ module GroupsHelper
|
|||
def group_title_link(group, hidable: false)
|
||||
link_to(group_path(group), class: "group-path #{'hidable' if hidable}") do
|
||||
output =
|
||||
if show_new_nav? && !Rails.env.test?
|
||||
if !Rails.env.test?
|
||||
image_tag(group_icon(group), class: "avatar-tile", width: 16, height: 16)
|
||||
else
|
||||
""
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
module NavHelper
|
||||
def page_with_sidebar_class
|
||||
class_name = page_gutter_class
|
||||
class_name << 'page-with-new-sidebar' if defined?(@new_sidebar) && @new_sidebar
|
||||
class_name << 'page-with-icon-sidebar' if collapsed_sidebar? && @new_sidebar
|
||||
class_name << 'page-with-new-sidebar' if defined?(@left_sidebar) && @left_sidebar
|
||||
class_name << 'page-with-icon-sidebar' if collapsed_sidebar? && @left_sidebar
|
||||
|
||||
class_name
|
||||
end
|
||||
|
@ -30,23 +30,6 @@ module NavHelper
|
|||
end
|
||||
end
|
||||
|
||||
def nav_header_class
|
||||
class_names = []
|
||||
class_names << 'with-horizontal-nav' if defined?(nav) && nav
|
||||
|
||||
class_names
|
||||
end
|
||||
|
||||
def layout_nav_class
|
||||
return 'page-with-new-nav' if show_new_nav?
|
||||
|
||||
class_names = []
|
||||
class_names << 'page-with-layout-nav' if defined?(nav) && nav
|
||||
class_names << 'page-with-sub-nav' if content_for?(:sub_nav)
|
||||
|
||||
class_names
|
||||
end
|
||||
|
||||
def nav_control_class
|
||||
"nav-control" if current_user
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@ module PageLayoutHelper
|
|||
|
||||
@page_title.push(*titles.compact) if titles.any?
|
||||
|
||||
if show_new_nav? && titles.any? && !defined?(@breadcrumb_title)
|
||||
if titles.any? && !defined?(@breadcrumb_title)
|
||||
@breadcrumb_title = @page_title.last
|
||||
end
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ module ProjectsHelper
|
|||
|
||||
project_link = link_to project_path(project), { class: "project-item-select-holder" } do
|
||||
output =
|
||||
if show_new_nav? && !Rails.env.test?
|
||||
if !Rails.env.test?
|
||||
project_icon(project, alt: project.name, class: 'avatar-tile', width: 16, height: 16)
|
||||
else
|
||||
""
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- if show_new_nav? && current_user.can_create_group?
|
||||
- if current_user.can_create_group?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New group", new_group_path, class: "btn btn-new"
|
||||
|
||||
|
@ -10,8 +10,8 @@
|
|||
= nav_link(page: explore_groups_path) do
|
||||
= link_to explore_groups_path, title: 'Explore public groups' do
|
||||
Explore public groups
|
||||
.nav-controls{ class: ("nav-controls-new-nav" if show_new_nav?) }
|
||||
.nav-controls.nav-controls-new-nav
|
||||
= render 'shared/groups/search_form'
|
||||
= render 'shared/groups/dropdown'
|
||||
- if current_user.can_create_group?
|
||||
= link_to "New group", new_group_path, class: "btn btn-new #{("visible-xs" if show_new_nav?)}"
|
||||
= link_to "New group", new_group_path, class: "btn btn-new visible-xs"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
= content_for :flash_message do
|
||||
= render 'shared/project_limit'
|
||||
|
||||
- if show_new_nav? && current_user.can_create_project?
|
||||
- if current_user.can_create_project?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New project", new_project_path, class: 'btn btn-new'
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
|||
= link_to explore_root_path, title: 'Explore', data: {placement: 'right'} do
|
||||
Explore projects
|
||||
|
||||
.nav-controls{ class: ("nav-controls-new-nav" if show_new_nav?) }
|
||||
.nav-controls.nav-controls-new-nav
|
||||
= render 'shared/projects/search_form'
|
||||
= render 'shared/projects/dropdown'
|
||||
- if current_user.can_create_project?
|
||||
= link_to "New project", new_project_path, class: "btn btn-new #{("visible-xs" if show_new_nav?)}"
|
||||
= link_to "New project", new_project_path, class: "btn btn-new visible-xs"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- if show_new_nav? && current_user
|
||||
- if current_user
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New snippet", new_snippet_path, class: "btn btn-new", title: "New snippet"
|
||||
|
||||
|
@ -10,7 +10,3 @@
|
|||
= nav_link(page: explore_snippets_path) do
|
||||
= link_to explore_snippets_path, title: 'Explore snippets', data: {placement: 'right'} do
|
||||
Explore Snippets
|
||||
|
||||
- if current_user
|
||||
.nav-controls.hidden-xs{ class: ("hidden-sm hidden-md hidden-lg" if show_new_nav?) }
|
||||
= link_to "New snippet", new_snippet_path, class: "btn btn-new", title: "New snippet"
|
||||
|
|
|
@ -4,15 +4,14 @@
|
|||
= content_for :meta_tags do
|
||||
= auto_discovery_link_tag(:atom, params.merge(rss_url_options), title: "#{current_user.name} issues")
|
||||
|
||||
- if show_new_nav?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to params.merge(rss_url_options), class: 'btn has-tooltip append-right-10', title: 'Subscribe' do
|
||||
= icon('rss')
|
||||
= render 'shared/new_project_item_select', path: 'issues/new', label: "New issue", with_feature_enabled: 'issues', type: :issues
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to params.merge(rss_url_options), class: 'btn has-tooltip append-right-10', title: 'Subscribe' do
|
||||
= icon('rss')
|
||||
= render 'shared/new_project_item_select', path: 'issues/new', label: "New issue", with_feature_enabled: 'issues', type: :issues
|
||||
|
||||
.top-area
|
||||
= render 'shared/issuable/nav', type: :issues
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= link_to params.merge(rss_url_options), class: 'btn has-tooltip', title: 'Subscribe' do
|
||||
= icon('rss')
|
||||
= render 'shared/new_project_item_select', path: 'issues/new', label: "New issue", with_feature_enabled: 'issues', type: :issues
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
- page_title "Merge Requests"
|
||||
- header_title "Merge Requests", merge_requests_dashboard_path(assignee_id: current_user.id)
|
||||
|
||||
- if show_new_nav?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", with_feature_enabled: 'merge_requests', type: :merge_requests
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", with_feature_enabled: 'merge_requests', type: :merge_requests
|
||||
|
||||
.top-area
|
||||
= render 'shared/issuable/nav', type: :merge_requests
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", with_feature_enabled: 'merge_requests', type: :merge_requests
|
||||
|
||||
= render 'shared/issuable/filter', type: :merge_requests
|
||||
|
|
|
@ -2,14 +2,13 @@
|
|||
- page_title 'Milestones'
|
||||
- header_title 'Milestones', dashboard_milestones_path
|
||||
|
||||
- if show_new_nav?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render 'shared/new_project_item_select', path: 'milestones/new', label: 'New milestone', include_groups: true, type: :milestones
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render 'shared/new_project_item_select', path: 'milestones/new', label: 'New milestone', include_groups: true, type: :milestones
|
||||
|
||||
.top-area
|
||||
= render 'shared/milestones_filter', counts: @milestone_states
|
||||
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= render 'shared/new_project_item_select', path: 'milestones/new', label: 'New milestone', include_groups: true, type: :milestones
|
||||
|
||||
.milestones
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
= webpack_bundle_tag 'common_vue'
|
||||
= webpack_bundle_tag 'filtered_search'
|
||||
|
||||
- if show_new_nav? && group_issues_exists
|
||||
- if group_issues_exists
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to params.merge(rss_url_options), class: 'btn btn-default append-right-10' do
|
||||
= icon('rss')
|
||||
|
@ -19,7 +19,7 @@
|
|||
- if group_issues_exists
|
||||
.top-area
|
||||
= render 'shared/issuable/nav', type: :issues
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= link_to params.merge(rss_url_options), class: 'btn' do
|
||||
= icon('rss')
|
||||
%span.icon-label
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- page_title 'Labels'
|
||||
- if show_new_nav? && can?(current_user, :admin_label, @group)
|
||||
- if can?(current_user, :admin_label, @group)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New label", new_group_label_path(@group), class: "btn btn-new"
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
|||
.nav-text
|
||||
Labels can be applied to issues and merge requests. Group labels are available for any project within the group.
|
||||
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
- if can?(current_user, :admin_label, @group)
|
||||
= link_to "New label", new_group_label_path(@group), class: "btn btn-new"
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
= webpack_bundle_tag 'common_vue'
|
||||
= webpack_bundle_tag 'filtered_search'
|
||||
|
||||
- if show_new_nav? && current_user
|
||||
- if current_user
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", type: :merge_requests
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
.top-area
|
||||
= render 'shared/issuable/nav', type: :merge_requests
|
||||
- if current_user
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", type: :merge_requests
|
||||
|
||||
= render 'shared/issuable/search_bar', type: :merge_requests
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- page_title "Milestones"
|
||||
- if show_new_nav? && can?(current_user, :admin_milestones, @group)
|
||||
- if can?(current_user, :admin_milestones, @group)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New milestone", new_group_milestone_path(@group), class: "btn btn-new"
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
|||
.top-area
|
||||
= render 'shared/milestones_filter', counts: @milestone_states
|
||||
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
- if can?(current_user, :admin_milestones, @group)
|
||||
= link_to "New milestone", new_group_milestone_path(@group), class: "btn btn-new"
|
||||
|
||||
|
|
|
@ -32,9 +32,9 @@
|
|||
= stylesheet_link_tag "test", media: "all" if Rails.env.test?
|
||||
= stylesheet_link_tag 'performance_bar' if performance_bar_enabled?
|
||||
|
||||
- if show_new_nav?
|
||||
= stylesheet_link_tag "new_nav", media: "all"
|
||||
= stylesheet_link_tag "new_sidebar", media: "all"
|
||||
// TODO: Combine these 2 stylesheets into application.scss
|
||||
= stylesheet_link_tag "new_nav", media: "all"
|
||||
= stylesheet_link_tag "new_sidebar", media: "all"
|
||||
|
||||
= Gon::Base.render_data
|
||||
|
||||
|
|
|
@ -1,26 +1,14 @@
|
|||
.page-with-sidebar{ class: page_with_sidebar_class }
|
||||
- if show_new_nav?
|
||||
- if defined?(nav) && nav
|
||||
= render "layouts/nav/#{nav}"
|
||||
- else
|
||||
- if defined?(nav) && nav
|
||||
.layout-nav
|
||||
.container-fluid
|
||||
= render "layouts/nav/#{nav}"
|
||||
- if content_for?(:sub_nav)
|
||||
= yield :sub_nav
|
||||
.content-wrapper{ class: layout_nav_class }
|
||||
- if show_new_nav?
|
||||
.mobile-overlay
|
||||
- if defined?(nav) && nav
|
||||
= render "layouts/nav/sidebar/#{nav}"
|
||||
.content-wrapper.page-with-new-nav
|
||||
.mobile-overlay
|
||||
.alert-wrapper
|
||||
= render "layouts/broadcast"
|
||||
- if show_new_nav?
|
||||
- if content_for?(:new_global_flash)
|
||||
= yield :new_global_flash
|
||||
- unless @hide_breadcrumbs
|
||||
= render "layouts/nav/breadcrumbs"
|
||||
= render "layouts/flash"
|
||||
= yield :flash_message
|
||||
- unless @hide_breadcrumbs
|
||||
= render "layouts/nav/breadcrumbs"
|
||||
= render "layouts/flash"
|
||||
%div{ class: "#{(container_class unless @no_container)} #{@content_class}" }
|
||||
.content{ id: "content-body" }
|
||||
= yield
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
- page_title "Admin Area"
|
||||
- header_title "Admin Area", admin_root_path
|
||||
- if show_new_nav?
|
||||
- nav "new_admin_sidebar"
|
||||
- @new_sidebar = true
|
||||
- else
|
||||
- nav "admin"
|
||||
- nav "admin"
|
||||
- @left_sidebar = true
|
||||
|
||||
= render template: "layouts/application"
|
||||
|
|
|
@ -4,10 +4,7 @@
|
|||
%body{ class: @body_class, data: { page: body_data_page, project: "#{@project.path if @project}", group: "#{@group.path if @group}", find_file: find_file_path } }
|
||||
= render "layouts/init_auto_complete" if @gfm_form
|
||||
= render 'peek/bar'
|
||||
- if show_new_nav?
|
||||
= render "layouts/header/new"
|
||||
- else
|
||||
= render "layouts/header/default", title: header_title
|
||||
= render "layouts/header/default"
|
||||
= render 'layouts/page', sidebar: sidebar, nav: nav
|
||||
|
||||
= yield :scripts_body
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
- page_title @group.name
|
||||
- page_description @group.description unless page_description
|
||||
- header_title group_title(@group) unless header_title
|
||||
- if show_new_nav?
|
||||
- nav "new_group_sidebar"
|
||||
- @new_sidebar = true
|
||||
- else
|
||||
- nav "group"
|
||||
- nav "group"
|
||||
- @left_sidebar = true
|
||||
|
||||
= render template: "layouts/application"
|
||||
|
|
|
@ -1,55 +1,37 @@
|
|||
%header.navbar.navbar-gitlab{ class: nav_header_class }
|
||||
.navbar-border
|
||||
%header.navbar.navbar-gitlab.navbar-gitlab-new
|
||||
%a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
|
||||
.container-fluid
|
||||
.header-content
|
||||
.dropdown.global-dropdown
|
||||
%button.global-dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
|
||||
%span.sr-only Toggle navigation
|
||||
= icon('bars')
|
||||
.dropdown-menu-nav.global-dropdown-menu
|
||||
- if current_user
|
||||
= render 'layouts/nav/dashboard'
|
||||
- else
|
||||
= render 'layouts/nav/explore'
|
||||
.title-container
|
||||
%h1.title
|
||||
= link_to root_path, title: 'Dashboard', id: 'logo' do
|
||||
= brand_header_logo
|
||||
%span.logo-text.hidden-xs
|
||||
= render 'shared/logo_type.svg'
|
||||
|
||||
.header-logo
|
||||
= link_to root_path, class: 'home', title: 'Dashboard', id: 'logo' do
|
||||
= brand_header_logo
|
||||
|
||||
.title-container.js-title-container
|
||||
%h1.title{ class: ('initializing' if @has_group_title) }= title
|
||||
- if current_user
|
||||
= render "layouts/nav/dashboard"
|
||||
- else
|
||||
= render "layouts/nav/explore"
|
||||
|
||||
.navbar-collapse.collapse
|
||||
%ul.nav.navbar-nav
|
||||
- if current_user
|
||||
= render 'layouts/header/new_dropdown'
|
||||
%li.hidden-sm.hidden-xs
|
||||
= render 'layouts/search' unless current_controller?(:search)
|
||||
%li.visible-sm-inline-block.visible-xs-inline-block
|
||||
= link_to search_path, title: 'Search', aria: { label: "Search" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('search')
|
||||
- if current_user
|
||||
- if session[:impersonator_id]
|
||||
%li.impersonation
|
||||
= link_to admin_impersonation_path, method: :delete, title: "Stop impersonation", aria: { label: 'Stop impersonation' }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
|
||||
= icon('user-secret fw')
|
||||
- if current_user.admin?
|
||||
%li
|
||||
= link_to admin_root_path, title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('wrench fw')
|
||||
= render 'layouts/header/new_dropdown'
|
||||
- if Gitlab::Sherlock.enabled?
|
||||
%li
|
||||
= link_to sherlock_transactions_path, title: 'Sherlock Transactions',
|
||||
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('tachometer fw')
|
||||
%li.user-counter
|
||||
= link_to assigned_issues_dashboard_path, title: 'Issues', aria: { label: "Issues" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= link_to assigned_issues_dashboard_path, title: 'Issues', class: 'dashboard-shortcuts-issues', aria: { label: "Issues" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= custom_icon('issues')
|
||||
- issues_count = assigned_issuables_count(:issues)
|
||||
%span.badge.issues-count{ class: ('hidden' if issues_count.zero?) }
|
||||
= number_with_delimiter(issues_count)
|
||||
%li.user-counter
|
||||
= link_to assigned_mrs_dashboard_path, title: 'Merge requests', aria: { label: "Merge requests" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= link_to assigned_mrs_dashboard_path, title: 'Merge requests', class: 'dashboard-shortcuts-merge_requests', aria: { label: "Merge requests" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= custom_icon('mr_bold')
|
||||
- merge_requests_count = assigned_issuables_count(:merge_requests)
|
||||
%span.badge.merge-requests-count{ class: ('hidden' if merge_requests_count.zero?) }
|
||||
|
@ -60,9 +42,9 @@
|
|||
%span.badge.todos-count{ class: ('hidden' if todos_pending_count.zero?) }
|
||||
= todos_count_format(todos_pending_count)
|
||||
%li.header-user.dropdown
|
||||
= link_to current_user, class: "header-user-dropdown-toggle", data: { toggle: "dropdown" } do
|
||||
= image_tag avatar_icon(current_user, 26), width: 26, height: 26, class: "header-user-avatar"
|
||||
= icon('caret-down')
|
||||
= link_to current_user, class: user_dropdown_class, data: { toggle: "dropdown" } do
|
||||
= image_tag avatar_icon(current_user, 23), width: 23, height: 23, class: "header-user-avatar"
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu-nav.dropdown-menu-align-right
|
||||
%ul
|
||||
%li.current-user
|
||||
|
@ -74,18 +56,24 @@
|
|||
= link_to "Profile", current_user, class: 'profile-link', data: { user: current_user.username }
|
||||
%li
|
||||
= link_to "Settings", profile_path
|
||||
- if current_user
|
||||
%li
|
||||
= link_to "Help", help_path
|
||||
%li.divider
|
||||
%li
|
||||
= link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link"
|
||||
- if session[:impersonator_id]
|
||||
%li.impersonation
|
||||
= link_to admin_impersonation_path, class: 'impersonation-btn', method: :delete, title: "Stop impersonation", aria: { label: 'Stop impersonation' }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
|
||||
= icon('user-secret')
|
||||
- else
|
||||
%li
|
||||
%div
|
||||
= link_to "Sign in", new_session_path(:user, redirect_to_referer: 'yes'), class: 'btn btn-sign-in btn-success'
|
||||
= link_to "Sign in / Register", new_session_path(:user, redirect_to_referer: 'yes'), class: 'btn btn-sign-in'
|
||||
|
||||
%button.navbar-toggle{ type: 'button' }
|
||||
%button.navbar-toggle.hidden-sm.hidden-md.hidden-lg{ type: 'button' }
|
||||
%span.sr-only Toggle navigation
|
||||
= icon('ellipsis-v')
|
||||
|
||||
= yield :header_content
|
||||
= icon('ellipsis-v', class: 'js-navbar-toggle-right')
|
||||
= icon('times', class: 'js-navbar-toggle-left')
|
||||
|
||||
= render 'shared/outdated_browser'
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
%header.navbar.navbar-gitlab.navbar-gitlab-new{ class: nav_header_class }
|
||||
%a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
|
||||
.container-fluid
|
||||
.header-content
|
||||
.title-container
|
||||
%h1.title
|
||||
= link_to root_path, title: 'Dashboard', id: 'logo' do
|
||||
= brand_header_logo
|
||||
%span.logo-text.hidden-xs
|
||||
= render 'shared/logo_type.svg'
|
||||
|
||||
- if current_user
|
||||
= render "layouts/nav/new_dashboard"
|
||||
- else
|
||||
= render "layouts/nav/new_explore"
|
||||
|
||||
.navbar-collapse.collapse
|
||||
%ul.nav.navbar-nav
|
||||
- if current_user
|
||||
= render 'layouts/header/new_dropdown'
|
||||
%li.hidden-sm.hidden-xs
|
||||
= render 'layouts/search' unless current_controller?(:search)
|
||||
%li.visible-sm-inline-block.visible-xs-inline-block
|
||||
= link_to search_path, title: 'Search', aria: { label: "Search" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('search')
|
||||
- if current_user
|
||||
%li.user-counter
|
||||
= link_to assigned_issues_dashboard_path, title: 'Issues', class: 'dashboard-shortcuts-issues', aria: { label: "Issues" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= custom_icon('issues')
|
||||
- issues_count = assigned_issuables_count(:issues)
|
||||
%span.badge.issues-count{ class: ('hidden' if issues_count.zero?) }
|
||||
= number_with_delimiter(issues_count)
|
||||
%li.user-counter
|
||||
= link_to assigned_mrs_dashboard_path, title: 'Merge requests', class: 'dashboard-shortcuts-merge_requests', aria: { label: "Merge requests" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= custom_icon('mr_bold')
|
||||
- merge_requests_count = assigned_issuables_count(:merge_requests)
|
||||
%span.badge.merge-requests-count{ class: ('hidden' if merge_requests_count.zero?) }
|
||||
= number_with_delimiter(merge_requests_count)
|
||||
%li.user-counter
|
||||
= link_to dashboard_todos_path, title: 'Todos', aria: { label: "Todos" }, class: 'shortcuts-todos', data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= custom_icon('todo_done')
|
||||
%span.badge.todos-count{ class: ('hidden' if todos_pending_count.zero?) }
|
||||
= todos_count_format(todos_pending_count)
|
||||
%li.header-user.dropdown
|
||||
= link_to current_user, class: user_dropdown_class, data: { toggle: "dropdown" } do
|
||||
= image_tag avatar_icon(current_user, 23), width: 23, height: 23, class: "header-user-avatar"
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu-nav.dropdown-menu-align-right
|
||||
%ul
|
||||
%li.current-user
|
||||
.user-name.bold
|
||||
= current_user.name
|
||||
@#{current_user.username}
|
||||
%li.divider
|
||||
%li
|
||||
= link_to "Profile", current_user, class: 'profile-link', data: { user: current_user.username }
|
||||
%li
|
||||
= link_to "Settings", profile_path
|
||||
- if current_user
|
||||
%li
|
||||
= link_to "Help", help_path
|
||||
%li.divider
|
||||
%li
|
||||
= link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link"
|
||||
- if session[:impersonator_id]
|
||||
%li.impersonation
|
||||
= link_to admin_impersonation_path, class: 'impersonation-btn', method: :delete, title: "Stop impersonation", aria: { label: 'Stop impersonation' }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
|
||||
= icon('user-secret')
|
||||
- else
|
||||
%li
|
||||
%div
|
||||
= link_to "Sign in / Register", new_session_path(:user, redirect_to_referer: 'yes'), class: 'btn btn-sign-in'
|
||||
|
||||
%button.navbar-toggle.hidden-sm.hidden-md.hidden-lg{ type: 'button' }
|
||||
%span.sr-only Toggle navigation
|
||||
= icon('ellipsis-v', class: 'js-navbar-toggle-right')
|
||||
= icon('times', class: 'js-navbar-toggle-left')
|
||||
|
||||
= render 'shared/outdated_browser'
|
|
@ -1,11 +1,7 @@
|
|||
%li.header-new.dropdown
|
||||
= link_to new_project_path, class: "header-new-dropdown-toggle has-tooltip", title: "New...", ref: 'tooltip', aria: { label: "New..." }, data: { toggle: 'dropdown', placement: 'bottom', container: 'body' } do
|
||||
- if show_new_nav?
|
||||
= custom_icon('plus_square')
|
||||
= custom_icon('caret_down')
|
||||
- else
|
||||
= icon('plus fw')
|
||||
= custom_icon('caret_down')
|
||||
= custom_icon('plus_square')
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu-nav.dropdown-menu-align-right
|
||||
%ul
|
||||
- if @group&.persisted?
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
= render 'layouts/nav/admin_settings'
|
||||
.scrolling-tabs-container{ class: nav_control_class }
|
||||
.fade-left
|
||||
= icon('angle-left')
|
||||
.fade-right
|
||||
= icon('angle-right')
|
||||
%ul.nav-links.scrolling-tabs
|
||||
= nav_link(controller: %w(dashboard admin projects users groups builds runners cohorts), html_options: {class: 'home'}) do
|
||||
= link_to admin_root_path, title: 'Overview', class: 'shortcuts-tree' do
|
||||
%span
|
||||
Overview
|
||||
= nav_link(controller: %w(conversational_development_index system_info background_jobs logs health_check requests_profiles)) do
|
||||
= link_to admin_conversational_development_index_path, title: 'Monitoring' do
|
||||
%span
|
||||
Monitoring
|
||||
= nav_link(controller: :broadcast_messages) do
|
||||
= link_to admin_broadcast_messages_path, title: 'Messages' do
|
||||
%span
|
||||
Messages
|
||||
= nav_link(controller: [:hooks, :hook_logs]) do
|
||||
= link_to admin_hooks_path, title: 'Hooks' do
|
||||
%span
|
||||
System Hooks
|
||||
|
||||
= nav_link(controller: :applications) do
|
||||
= link_to admin_applications_path, title: 'Applications' do
|
||||
%span
|
||||
Applications
|
||||
|
||||
= nav_link(controller: :abuse_reports) do
|
||||
= link_to admin_abuse_reports_path, title: "Abuse Reports" do
|
||||
%span
|
||||
Abuse Reports
|
||||
%span.badge.count= number_with_delimiter(AbuseReport.count(:all))
|
||||
|
||||
- if akismet_enabled?
|
||||
= nav_link(controller: :spam_logs) do
|
||||
= link_to admin_spam_logs_path, title: "Spam Logs" do
|
||||
%span
|
||||
Spam Logs
|
|
@ -1,31 +0,0 @@
|
|||
.controls
|
||||
.dropdown.admin-settings-dropdown
|
||||
%a.dropdown-new.btn.btn-default{ href: '#', 'data-toggle' => 'dropdown' }
|
||||
= icon('cog')
|
||||
= icon('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
= nav_link(controller: :deploy_keys) do
|
||||
= link_to admin_deploy_keys_path, title: 'Deploy Keys' do
|
||||
%span
|
||||
Deploy Keys
|
||||
|
||||
= nav_link(controller: :services) do
|
||||
= link_to admin_application_settings_services_path, title: 'Service Templates' do
|
||||
%span
|
||||
Service Templates
|
||||
|
||||
= nav_link(controller: :labels) do
|
||||
= link_to admin_labels_path, title: 'Labels' do
|
||||
%span
|
||||
Labels
|
||||
|
||||
= nav_link(controller: :appearances) do
|
||||
= link_to admin_appearances_path, title: 'Appearances' do
|
||||
%span
|
||||
Appearance
|
||||
|
||||
%li.divider
|
||||
= nav_link(controller: :application_settings) do
|
||||
= link_to admin_application_settings_path, title: 'Settings' do
|
||||
%span
|
||||
Settings
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
%nav.breadcrumbs{ role: "navigation" }
|
||||
.breadcrumbs-container{ class: [container, @content_class] }
|
||||
- if defined?(@new_sidebar)
|
||||
- if defined?(@left_sidebar)
|
||||
= button_tag class: 'toggle-mobile-nav', type: 'button' do
|
||||
%span.sr-only Open sidebar
|
||||
= icon ('bars')
|
||||
|
|
|
@ -1,67 +1,62 @@
|
|||
%ul
|
||||
= nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: {class: "#{project_tab_class} home"}) do
|
||||
= link_to dashboard_projects_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
P
|
||||
%span
|
||||
Projects
|
||||
= nav_link(path: 'dashboard#activity') do
|
||||
= link_to activity_dashboard_path, class: 'dashboard-shortcuts-activity', title: 'Activity' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
A
|
||||
%span
|
||||
Activity
|
||||
- if koding_enabled?
|
||||
= nav_link(controller: :koding) do
|
||||
= link_to koding_path, title: 'Koding' do
|
||||
%span
|
||||
Koding
|
||||
= nav_link(controller: [:groups, 'groups/milestones', 'groups/group_members']) do
|
||||
%ul.list-unstyled.navbar-sub-nav
|
||||
= nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: { id: 'nav-projects-dropdown', class: "home dropdown" }) do
|
||||
%a{ href: "#", data: { toggle: "dropdown" } }
|
||||
Projects
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu.projects-dropdown-menu
|
||||
= render "layouts/nav/projects_dropdown/show"
|
||||
|
||||
= nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { class: "hidden-xs" }) do
|
||||
= link_to dashboard_groups_path, class: 'dashboard-shortcuts-groups', title: 'Groups' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
G
|
||||
%span
|
||||
Groups
|
||||
= nav_link(controller: 'dashboard/milestones') do
|
||||
Groups
|
||||
|
||||
= nav_link(path: 'dashboard#activity', html_options: { class: "visible-lg" }) do
|
||||
= link_to activity_dashboard_path, class: 'dashboard-shortcuts-activity', title: 'Activity' do
|
||||
Activity
|
||||
|
||||
= nav_link(controller: 'dashboard/milestones', html_options: { class: "visible-lg" }) do
|
||||
= link_to dashboard_milestones_path, class: 'dashboard-shortcuts-milestones', title: 'Milestones' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
L
|
||||
%span
|
||||
Milestones
|
||||
= nav_link(path: 'dashboard#issues') do
|
||||
= link_to assigned_issues_dashboard_path, title: 'Issues', class: 'dashboard-shortcuts-issues' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
I
|
||||
%span.badge.pull-right= number_with_delimiter(assigned_issuables_count(:issues))
|
||||
%span
|
||||
Issues
|
||||
= nav_link(path: 'dashboard#merge_requests') do
|
||||
= link_to assigned_mrs_dashboard_path, title: 'Merge Requests', class: 'dashboard-shortcuts-merge_requests' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
M
|
||||
%span.badge.pull-right= number_with_delimiter(assigned_issuables_count(:merge_requests))
|
||||
%span
|
||||
Merge Requests
|
||||
= nav_link(controller: 'dashboard/snippets') do
|
||||
Milestones
|
||||
|
||||
= nav_link(controller: 'dashboard/snippets', html_options: { class: "visible-lg" }) do
|
||||
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: 'Snippets' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
S
|
||||
%span
|
||||
Snippets
|
||||
%li.divider
|
||||
%li
|
||||
= link_to "Help", help_path, title: 'About GitLab CE', class: 'about-gitlab'
|
||||
Snippets
|
||||
|
||||
%li.dropdown.hidden-lg
|
||||
%a{ href: "#", data: { toggle: "dropdown" } }
|
||||
More
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu
|
||||
%ul
|
||||
= nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { class: "visible-xs" }) do
|
||||
= link_to dashboard_groups_path, class: 'dashboard-shortcuts-groups', title: 'Groups' do
|
||||
Groups
|
||||
|
||||
= nav_link(path: 'dashboard#activity') do
|
||||
= link_to activity_dashboard_path, title: 'Activity' do
|
||||
Activity
|
||||
|
||||
= nav_link(controller: 'dashboard/milestones') do
|
||||
= link_to dashboard_milestones_path, class: 'dashboard-shortcuts-milestones', title: 'Milestones' do
|
||||
Milestones
|
||||
|
||||
= nav_link(controller: 'dashboard/snippets') do
|
||||
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: 'Snippets' do
|
||||
Snippets
|
||||
|
||||
-# Shortcut to Dashboard > Projects
|
||||
%li.hidden
|
||||
= link_to dashboard_projects_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do
|
||||
Projects
|
||||
|
||||
- if current_user.admin? || Gitlab::Sherlock.enabled?
|
||||
%li.line-separator.hidden-xs
|
||||
- if current_user.admin?
|
||||
= nav_link(controller: 'admin/dashboard') do
|
||||
= link_to admin_root_path, class: 'admin-icon', title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('wrench fw')
|
||||
- if Gitlab::Sherlock.enabled?
|
||||
%li
|
||||
= link_to sherlock_transactions_path, class: 'admin-icon', title: 'Sherlock Transactions',
|
||||
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('tachometer fw')
|
||||
|
|
|
@ -1,30 +1,12 @@
|
|||
%ul
|
||||
%ul.list-unstyled.navbar-sub-nav
|
||||
= nav_link(path: ['dashboard#show', 'root#show', 'projects#trending', 'projects#starred', 'projects#index'], html_options: {class: 'home'}) do
|
||||
= link_to explore_root_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
P
|
||||
%span
|
||||
Projects
|
||||
Projects
|
||||
= nav_link(controller: [:groups, 'groups/milestones', 'groups/group_members']) do
|
||||
= link_to explore_groups_path, title: 'Groups', class: 'dashboard-shortcuts-groups' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
G
|
||||
%span
|
||||
Groups
|
||||
Groups
|
||||
= nav_link(controller: :snippets) do
|
||||
= link_to explore_snippets_path, title: 'Snippets', class: 'dashboard-shortcuts-snippets' do
|
||||
.shortcut-mappings
|
||||
.key
|
||||
= icon('arrow-up', 'aria-label' => 'hidden')
|
||||
S
|
||||
%span
|
||||
Snippets
|
||||
%li.divider
|
||||
= nav_link(controller: :help) do
|
||||
= link_to help_path, title: 'Help' do
|
||||
%span
|
||||
Help
|
||||
Snippets
|
||||
%li
|
||||
= link_to "Help", help_path, title: 'About GitLab CE'
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
.scrolling-tabs-container{ class: nav_control_class }
|
||||
.fade-left
|
||||
= icon('angle-left')
|
||||
.fade-right
|
||||
= icon('angle-right')
|
||||
%ul.nav-links.scrolling-tabs
|
||||
= nav_link(path: ['groups#show', 'groups#activity', 'groups#subgroups'], html_options: { class: 'home' }) do
|
||||
= link_to group_path(@group), title: 'Home' do
|
||||
%span
|
||||
Group
|
||||
= nav_link(path: ['groups#issues', 'labels#index', 'milestones#index']) do
|
||||
= link_to issues_group_path(@group), title: 'Issues' do
|
||||
%span
|
||||
Issues
|
||||
- issues = IssuesFinder.new(current_user, group_id: @group.id, state: 'opened').execute
|
||||
%span.badge.count= number_with_delimiter(issues.count)
|
||||
= nav_link(path: 'groups#merge_requests') do
|
||||
= link_to merge_requests_group_path(@group), title: 'Merge Requests' do
|
||||
%span
|
||||
Merge Requests
|
||||
- merge_requests = MergeRequestsFinder.new(current_user, group_id: @group.id, state: 'opened', non_archived: true).execute
|
||||
%span.badge.count= number_with_delimiter(merge_requests.count)
|
||||
= nav_link(path: 'group_members#index') do
|
||||
= link_to group_group_members_path(@group), title: 'Members' do
|
||||
%span
|
||||
Members
|
||||
- if current_user && can?(current_user, :admin_group, @group)
|
||||
= nav_link(path: %w[groups#projects groups#edit ci_cd#show]) do
|
||||
= link_to edit_group_path(@group), title: 'Settings' do
|
||||
%span
|
||||
Settings
|
|
@ -1,62 +0,0 @@
|
|||
%ul.list-unstyled.navbar-sub-nav
|
||||
= nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: { id: 'nav-projects-dropdown', class: "home dropdown" }) do
|
||||
%a{ href: "#", data: { toggle: "dropdown" } }
|
||||
Projects
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu.projects-dropdown-menu
|
||||
= render "layouts/nav/projects_dropdown/show"
|
||||
|
||||
= nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { class: "hidden-xs" }) do
|
||||
= link_to dashboard_groups_path, class: 'dashboard-shortcuts-groups', title: 'Groups' do
|
||||
Groups
|
||||
|
||||
= nav_link(path: 'dashboard#activity', html_options: { class: "visible-lg" }) do
|
||||
= link_to activity_dashboard_path, class: 'dashboard-shortcuts-activity', title: 'Activity' do
|
||||
Activity
|
||||
|
||||
= nav_link(controller: 'dashboard/milestones', html_options: { class: "visible-lg" }) do
|
||||
= link_to dashboard_milestones_path, class: 'dashboard-shortcuts-milestones', title: 'Milestones' do
|
||||
Milestones
|
||||
|
||||
= nav_link(controller: 'dashboard/snippets', html_options: { class: "visible-lg" }) do
|
||||
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: 'Snippets' do
|
||||
Snippets
|
||||
|
||||
%li.dropdown.hidden-lg
|
||||
%a{ href: "#", data: { toggle: "dropdown" } }
|
||||
More
|
||||
= custom_icon('caret_down')
|
||||
.dropdown-menu
|
||||
%ul
|
||||
= nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { class: "visible-xs" }) do
|
||||
= link_to dashboard_groups_path, class: 'dashboard-shortcuts-groups', title: 'Groups' do
|
||||
Groups
|
||||
|
||||
= nav_link(path: 'dashboard#activity') do
|
||||
= link_to activity_dashboard_path, title: 'Activity' do
|
||||
Activity
|
||||
|
||||
= nav_link(controller: 'dashboard/milestones') do
|
||||
= link_to dashboard_milestones_path, class: 'dashboard-shortcuts-milestones', title: 'Milestones' do
|
||||
Milestones
|
||||
|
||||
= nav_link(controller: 'dashboard/snippets') do
|
||||
= link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: 'Snippets' do
|
||||
Snippets
|
||||
|
||||
-# Shortcut to Dashboard > Projects
|
||||
%li.hidden
|
||||
= link_to dashboard_projects_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do
|
||||
Projects
|
||||
|
||||
- if current_user.admin? || Gitlab::Sherlock.enabled?
|
||||
%li.line-separator.hidden-xs
|
||||
- if current_user.admin?
|
||||
= nav_link(controller: 'admin/dashboard') do
|
||||
= link_to admin_root_path, class: 'admin-icon', title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('wrench fw')
|
||||
- if Gitlab::Sherlock.enabled?
|
||||
%li
|
||||
= link_to sherlock_transactions_path, class: 'admin-icon', title: 'Sherlock Transactions',
|
||||
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
|
||||
= icon('tachometer fw')
|
|
@ -1,12 +0,0 @@
|
|||
%ul.list-unstyled.navbar-sub-nav
|
||||
= nav_link(path: ['dashboard#show', 'root#show', 'projects#trending', 'projects#starred', 'projects#index'], html_options: {class: 'home'}) do
|
||||
= link_to explore_root_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do
|
||||
Projects
|
||||
= nav_link(controller: [:groups, 'groups/milestones', 'groups/group_members']) do
|
||||
= link_to explore_groups_path, title: 'Groups', class: 'dashboard-shortcuts-groups' do
|
||||
Groups
|
||||
= nav_link(controller: :snippets) do
|
||||
= link_to explore_snippets_path, title: 'Snippets', class: 'dashboard-shortcuts-snippets' do
|
||||
Snippets
|
||||
%li
|
||||
= link_to "Help", help_path, title: 'About GitLab CE'
|
|
@ -1,57 +0,0 @@
|
|||
.scrolling-tabs-container
|
||||
.fade-left
|
||||
= icon('angle-left')
|
||||
.fade-right
|
||||
= icon('angle-right')
|
||||
%ul.nav-links.scrolling-tabs
|
||||
= nav_link(path: 'profiles#show', html_options: {class: 'home'}) do
|
||||
= link_to profile_path, title: 'Profile Settings' do
|
||||
%span
|
||||
Profile
|
||||
= nav_link(controller: [:accounts, :two_factor_auths]) do
|
||||
= link_to profile_account_path, title: 'Account' do
|
||||
%span
|
||||
Account
|
||||
- if current_application_settings.user_oauth_applications?
|
||||
= nav_link(controller: 'oauth/applications') do
|
||||
= link_to applications_profile_path, title: 'Applications' do
|
||||
%span
|
||||
Applications
|
||||
= nav_link(controller: :chat_names) do
|
||||
= link_to profile_chat_names_path, title: 'Chat' do
|
||||
%span
|
||||
Chat
|
||||
= nav_link(controller: :personal_access_tokens) do
|
||||
= link_to profile_personal_access_tokens_path, title: 'Access Tokens' do
|
||||
%span
|
||||
Access Tokens
|
||||
= nav_link(controller: :emails) do
|
||||
= link_to profile_emails_path, title: 'Emails' do
|
||||
%span
|
||||
Emails
|
||||
- unless current_user.ldap_user?
|
||||
= nav_link(controller: :passwords) do
|
||||
= link_to edit_profile_password_path, title: 'Password' do
|
||||
%span
|
||||
Password
|
||||
= nav_link(controller: :notifications) do
|
||||
= link_to profile_notifications_path, title: 'Notifications' do
|
||||
%span
|
||||
Notifications
|
||||
|
||||
= nav_link(controller: :keys) do
|
||||
= link_to profile_keys_path, title: 'SSH Keys' do
|
||||
%span
|
||||
SSH Keys
|
||||
= nav_link(controller: :gpg_keys) do
|
||||
= link_to profile_gpg_keys_path, title: 'GPG Keys' do
|
||||
%span
|
||||
GPG Keys
|
||||
= nav_link(controller: :preferences) do
|
||||
= link_to profile_preferences_path, title: 'Preferences' do
|
||||
%span
|
||||
Preferences
|
||||
= nav_link(path: 'profiles#audit_log') do
|
||||
= link_to audit_log_profile_path, title: 'Authentication log' do
|
||||
%span
|
||||
Authentication log
|
|
@ -1,111 +0,0 @@
|
|||
- can_edit = can?(current_user, :admin_project, @project)
|
||||
.scrolling-tabs-container{ class: nav_control_class }
|
||||
.fade-left
|
||||
= icon('angle-left')
|
||||
.fade-right
|
||||
= icon('angle-right')
|
||||
%ul.nav-links.scrolling-tabs
|
||||
= nav_link(path: ['projects#show', 'projects#activity', 'cycle_analytics#show'], html_options: { class: 'home' }) do
|
||||
= link_to project_path(@project), title: 'Project', class: 'shortcuts-project' do
|
||||
%span
|
||||
Project
|
||||
|
||||
- if project_nav_tab? :files
|
||||
= nav_link(controller: %w(tree blob blame edit_tree new_tree find_file commit commits compare projects/repositories tags branches releases graphs network)) do
|
||||
= link_to project_tree_path(@project), title: 'Repository', class: 'shortcuts-tree' do
|
||||
%span
|
||||
Repository
|
||||
|
||||
- if project_nav_tab? :container_registry
|
||||
= nav_link(controller: %w[projects/registry/repositories]) do
|
||||
= link_to project_container_registry_index_path(@project), title: 'Container Registry', class: 'shortcuts-container-registry' do
|
||||
%span
|
||||
Registry
|
||||
|
||||
- if project_nav_tab? :issues
|
||||
= nav_link(controller: @project.issues_enabled? ? [:issues, :labels, :milestones, :boards] : :issues) do
|
||||
= link_to project_issues_path(@project), title: 'Issues', class: 'shortcuts-issues' do
|
||||
%span
|
||||
Issues
|
||||
- if @project.issues_enabled?
|
||||
%span.badge.count.issue_counter
|
||||
= number_with_delimiter(@project.open_issues_count)
|
||||
|
||||
- if project_nav_tab? :merge_requests
|
||||
- controllers = [:merge_requests, 'projects/merge_requests/conflicts']
|
||||
- controllers.push(:merge_requests, :labels, :milestones) unless @project.issues_enabled?
|
||||
= nav_link(controller: controllers) do
|
||||
= link_to project_merge_requests_path(@project), title: 'Merge Requests', class: 'shortcuts-merge_requests' do
|
||||
%span
|
||||
Merge Requests
|
||||
%span.badge.count.merge_counter.js-merge-counter
|
||||
= number_with_delimiter(@project.open_merge_requests_count)
|
||||
|
||||
- if project_nav_tab? :pipelines
|
||||
= nav_link(controller: [:pipelines, :builds, :environments, :artifacts]) do
|
||||
= link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
|
||||
%span
|
||||
Pipelines
|
||||
|
||||
- if project_nav_tab? :wiki
|
||||
= nav_link(controller: :wikis) do
|
||||
= link_to get_project_wiki_path(@project), title: 'Wiki', class: 'shortcuts-wiki' do
|
||||
%span
|
||||
Wiki
|
||||
|
||||
- if project_nav_tab? :snippets
|
||||
= nav_link(controller: :snippets) do
|
||||
= link_to project_snippets_path(@project), title: 'Snippets', class: 'shortcuts-snippets' do
|
||||
%span
|
||||
Snippets
|
||||
|
||||
- if project_nav_tab? :project_members
|
||||
= nav_link(controller: :project_members) do
|
||||
= link_to project_project_members_path(@project), title: 'Members', class: 'shortcuts-members' do
|
||||
%span
|
||||
Members
|
||||
|
||||
- if project_nav_tab? :settings
|
||||
= nav_link(path: %w[projects#edit members#show integrations#show services#edit repository#show ci_cd#show pages#show]) do
|
||||
= link_to edit_project_path(@project), title: 'Settings', class: 'shortcuts-tree' do
|
||||
%span
|
||||
Settings
|
||||
|
||||
-# Shortcut to Project > Activity
|
||||
%li.hidden
|
||||
= link_to activity_project_path(@project), title: 'Activity', class: 'shortcuts-project-activity' do
|
||||
%span
|
||||
Activity
|
||||
|
||||
-# Shortcut to Repository > Graph (formerly, Network)
|
||||
- if project_nav_tab? :network
|
||||
%li.hidden
|
||||
= link_to project_network_path(@project, current_ref), title: 'Network', class: 'shortcuts-network' do
|
||||
Graph
|
||||
|
||||
-# Shortcut to Repository > Charts (formerly, top-nav item "Graphs")
|
||||
- unless @project.empty_repo?
|
||||
%li.hidden
|
||||
= link_to charts_project_graph_path(@project, current_ref), title: 'Charts', class: 'shortcuts-repository-charts' do
|
||||
Charts
|
||||
|
||||
-# Shortcut to Issues > New Issue
|
||||
%li.hidden
|
||||
= link_to new_project_issue_path(@project), class: 'shortcuts-new-issue' do
|
||||
Create a new issue
|
||||
|
||||
-# Shortcut to Pipelines > Jobs
|
||||
- if project_nav_tab? :builds
|
||||
%li.hidden
|
||||
= link_to project_jobs_path(@project), title: 'Jobs', class: 'shortcuts-builds' do
|
||||
Jobs
|
||||
|
||||
-# Shortcut to commits page
|
||||
- if project_nav_tab? :commits
|
||||
%li.hidden
|
||||
= link_to project_commits_path(@project), title: 'Commits', class: 'shortcuts-commits' do
|
||||
Commits
|
||||
|
||||
-# Shortcut to issue boards
|
||||
%li.hidden
|
||||
= link_to 'Issue Boards', project_boards_path(@project), title: 'Issue Boards', class: 'shortcuts-issue-boards'
|
|
@ -1,10 +1,7 @@
|
|||
- page_title "User Settings"
|
||||
- header_title "User Settings", profile_path unless header_title
|
||||
- sidebar "dashboard"
|
||||
- if show_new_nav?
|
||||
- nav "new_profile_sidebar"
|
||||
- @new_sidebar = true
|
||||
- else
|
||||
- nav "profile"
|
||||
- nav "profile"
|
||||
- @left_sidebar = true
|
||||
|
||||
= render template: "layouts/application"
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
- page_title @project.name_with_namespace
|
||||
- page_description @project.description unless page_description
|
||||
- header_title project_title(@project) unless header_title
|
||||
- if show_new_nav?
|
||||
- nav "new_project_sidebar"
|
||||
- @new_sidebar = true
|
||||
- else
|
||||
- nav "project"
|
||||
- nav "project"
|
||||
- @left_sidebar = true
|
||||
|
||||
- content_for :project_javascripts do
|
||||
- project = @target_project || @project
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
- page_title 'Two-Factor Authentication', 'Account'
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Account", profile_account_path)
|
||||
- else
|
||||
- header_title "Two-Factor Authentication", profile_two_factor_auth_path
|
||||
- add_to_breadcrumbs("Account", profile_account_path)
|
||||
- @content_class = "limit-container-width" unless fluid_layout
|
||||
|
||||
= render 'profiles/head'
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- project = local_assigns.fetch(:project)
|
||||
- flash_message_container = show_new_nav? ? :new_global_flash : :flash_message
|
||||
|
||||
= content_for flash_message_container do
|
||||
= content_for :flash_message do
|
||||
= render partial: 'deletion_failed', locals: { project: project }
|
||||
- if current_user && can?(current_user, :download_code, project)
|
||||
= render 'shared/no_ssh'
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
- @no_container = true
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs(_("Project"), project_path(@project))
|
||||
- add_to_breadcrumbs(_("Project"), project_path(@project))
|
||||
|
||||
- page_title _("Activity")
|
||||
= render "projects/head"
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
- @no_container = true
|
||||
- @content_class = "issue-boards-content"
|
||||
- page_title "Boards"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Issues", project_issues_path(@project))
|
||||
- add_to_breadcrumbs("Issues", project_issues_path(@project))
|
||||
|
||||
- content_for :page_specific_javascripts do
|
||||
= webpack_bundle_tag 'common_vue'
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
- @no_container = true
|
||||
- page_title "Branches"
|
||||
= render "projects/commits/head"
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
= render "projects/commits/head"
|
||||
|
||||
%div{ class: container_class }
|
||||
.top-area.adjust
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
= content_for :meta_tags do
|
||||
= auto_discovery_link_tag(:atom, project_commits_url(@project, @ref, rss_url_options), title: "#{@project.name}:#{@ref} commits")
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
|
||||
= content_for :sub_nav do
|
||||
= render "head"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- @no_container = true
|
||||
- page_title "Compare"
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
= render "projects/commits/head"
|
||||
|
||||
%div{ class: container_class }
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
- @no_container = true
|
||||
- breadcrumb_title "Compare"
|
||||
- page_title "#{params[:from]}...#{params[:to]}"
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
= render "projects/commits/head"
|
||||
|
||||
%div{ class: container_class }
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- @no_container = true
|
||||
- page_title "Cycle Analytics"
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Project", project_path(@project))
|
||||
- add_to_breadcrumbs("Project", project_path(@project))
|
||||
- content_for :page_specific_javascripts do
|
||||
= page_specific_javascript_bundle_tag('common_vue')
|
||||
= page_specific_javascript_bundle_tag('cycle_analytics')
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
- @no_container = true
|
||||
- page_title "Environments"
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
= render "projects/pipelines/head"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
|
||||
- content_for :page_specific_javascripts do
|
||||
= page_specific_javascript_bundle_tag('common_vue')
|
||||
= page_specific_javascript_bundle_tag("environments")
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- @no_container = true
|
||||
- page_title "Charts"
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- content_for :page_specific_javascripts do
|
||||
= webpack_bundle_tag('common_d3')
|
||||
= webpack_bundle_tag('graphs')
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
= webpack_bundle_tag('graphs')
|
||||
= webpack_bundle_tag('graphs_show')
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
|
||||
= render 'projects/commits/head'
|
||||
|
||||
|
|
|
@ -13,15 +13,14 @@
|
|||
= content_for :meta_tags do
|
||||
= auto_discovery_link_tag(:atom, params.merge(rss_url_options), title: "#{@project.name} issues")
|
||||
|
||||
- if show_new_nav?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render "projects/issues/nav_btns"
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render "projects/issues/nav_btns"
|
||||
|
||||
- if project_issues(@project).exists?
|
||||
%div{ class: (container_class) }
|
||||
.top-area
|
||||
= render 'shared/issuable/nav', type: :issues
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= render "projects/issues/nav_btns"
|
||||
= render 'shared/issuable/search_bar', type: :issues
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
- page_title "Jobs"
|
||||
= render "projects/pipelines/head"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
|
||||
%div{ class: container_class }
|
||||
.top-area
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
- hide_class = ''
|
||||
- can_admin_label = can?(current_user, :admin_label, @project)
|
||||
|
||||
- if show_new_nav? && can?(current_user, :admin_label, @project)
|
||||
- if can?(current_user, :admin_label, @project)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New label", new_namespace_project_label_path(@project.namespace, @project), class: "btn btn-new"
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
|||
Star a label to make it a priority label. Order the prioritized labels to change their relative priority, by dragging.
|
||||
|
||||
- if can_admin_label
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= link_to new_project_label_path(@project), class: "btn btn-new" do
|
||||
New label
|
||||
|
||||
|
|
|
@ -12,9 +12,8 @@
|
|||
= webpack_bundle_tag 'common_vue'
|
||||
= webpack_bundle_tag 'filtered_search'
|
||||
|
||||
- if show_new_nav?
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render "projects/merge_requests/nav_btns", merge_project: merge_project, new_merge_request_path: new_merge_request_path
|
||||
- content_for :breadcrumbs_extra do
|
||||
= render "projects/merge_requests/nav_btns", merge_project: merge_project, new_merge_request_path: new_merge_request_path
|
||||
|
||||
= render 'projects/last_push'
|
||||
|
||||
|
@ -22,7 +21,7 @@
|
|||
%div{ class: container_class }
|
||||
.top-area
|
||||
= render 'shared/issuable/nav', type: :merge_requests
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= render "projects/merge_requests/nav_btns", merge_project: merge_project, new_merge_request_path: new_merge_request_path
|
||||
|
||||
= render 'shared/issuable/search_bar', type: :merge_requests
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- @no_container = true
|
||||
- page_title 'Milestones'
|
||||
|
||||
- if show_new_nav? && can?(current_user, :admin_milestone, @project)
|
||||
- if can?(current_user, :admin_milestone, @project)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New milestone", new_namespace_project_milestone_path(@project.namespace, @project), class: 'btn btn-new', title: 'New milestone'
|
||||
|
||||
|
@ -11,10 +11,10 @@
|
|||
.top-area
|
||||
= render 'shared/milestones_filter', counts: milestone_counts(@project.milestones)
|
||||
|
||||
.nav-controls{ class: ("nav-controls-new-nav" if show_new_nav?) }
|
||||
.nav-controls.nav-controls-new-nav
|
||||
= render 'shared/milestones_sort_dropdown'
|
||||
- if can?(current_user, :admin_milestone, @project)
|
||||
= link_to new_project_milestone_path(@project), class: "btn btn-new #{("visible-xs" if show_new_nav?)}", title: 'New milestone' do
|
||||
= link_to new_project_milestone_path(@project), class: "btn btn-new visible-xs", title: 'New milestone' do
|
||||
New milestone
|
||||
|
||||
.milestones
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
- page_title "Graph", @ref
|
||||
- content_for :page_specific_javascripts do
|
||||
= page_specific_javascript_bundle_tag('network')
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
= render "projects/commits/head"
|
||||
= render "head"
|
||||
%div{ class: container_class }
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
- @no_container = true
|
||||
- page_title _("Pipeline Schedules")
|
||||
|
||||
- if show_new_nav? && can?(current_user, :create_pipeline_schedule, @project)
|
||||
- if can?(current_user, :create_pipeline_schedule, @project)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to _('New schedule'), new_namespace_project_pipeline_schedule_path(@project.namespace, @project), class: 'btn btn-create'
|
||||
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
|
||||
= render "projects/pipelines/head"
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
= render "tabs", schedule_path_proc: schedule_path_proc, all_schedules: @all_schedules, scope: @scope
|
||||
|
||||
- if can?(current_user, :create_pipeline_schedule, @project)
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
= link_to new_project_pipeline_schedule_path(@project), class: 'btn btn-create' do
|
||||
%span= _('New schedule')
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
- @breadcrumb_link = namespace_project_pipeline_schedules_path(@project.namespace, @project)
|
||||
- page_title _("New Pipeline Schedule")
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
|
||||
%h3.page-title
|
||||
= _("Schedule a new pipeline")
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- @no_container = true
|
||||
- page_title _("Charts"), _("Pipelines")
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
- add_to_breadcrumbs("Pipelines", project_pipelines_path(@project))
|
||||
- content_for :page_specific_javascripts do
|
||||
= page_specific_javascript_bundle_tag('common_d3')
|
||||
= page_specific_javascript_bundle_tag('graphs')
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- page_title "Members"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
|
||||
.row.prepend-top-default
|
||||
.col-lg-12
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
- breadcrumb_title "Integrations"
|
||||
- page_title @service.title, "Services"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
|
||||
= render "projects/settings/head"
|
||||
= render 'form'
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
- @content_class = "limit-container-width" unless fluid_layout
|
||||
- page_title "Pipelines"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
|
||||
= render "projects/settings/head"
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- @content_class = "limit-container-width" unless fluid_layout
|
||||
- page_title 'Integrations'
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
= render "projects/settings/head"
|
||||
= render 'projects/hooks/index'
|
||||
= render 'projects/services/index'
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
- page_title "Repository"
|
||||
- @content_class = "limit-container-width" unless fluid_layout
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
- add_to_breadcrumbs("Settings", edit_project_path(@project))
|
||||
|
||||
= render "projects/settings/head"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- page_title "Snippets"
|
||||
|
||||
- if show_new_nav? && can?(current_user, :create_project_snippet, @project)
|
||||
- if can?(current_user, :create_project_snippet, @project)
|
||||
- content_for :breadcrumbs_extra do
|
||||
= link_to "New snippet", new_namespace_project_snippet_path(@project.namespace, @project), class: "btn btn-new", title: "New snippet"
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
- include_private = @project.team.member?(current_user) || current_user.admin?
|
||||
= render partial: 'snippets/snippets_scope_menu', locals: { subject: @project, include_private: include_private }
|
||||
|
||||
.nav-controls{ class: ("visible-xs" if show_new_nav?) }
|
||||
.nav-controls.visible-xs
|
||||
- if can?(current_user, :create_project_snippet, @project)
|
||||
= link_to "New snippet", new_project_snippet_path(@project), class: "btn btn-new", title: "New snippet"
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
- @no_container = true
|
||||
- @sort ||= sort_value_recently_updated
|
||||
- page_title "Tags"
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
= render "projects/commits/head"
|
||||
|
||||
- if show_new_nav?
|
||||
- add_to_breadcrumbs("Repository", project_tree_path(@project))
|
||||
|
||||
.flex-list{ class: container_class }
|
||||
.top-area.adjust
|
||||
.nav-text.row-main-content
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
= page_specific_javascript_bundle_tag('common_vue')
|
||||
= page_specific_javascript_bundle_tag('sidebar')
|
||||
|
||||
%aside.right-sidebar.js-right-sidebar.js-issuable-sidebar{ data: { "offset-top" => ("50" unless show_new_nav?), "spy" => ("affix" unless show_new_nav?), signed: { in: current_user.present? } }, class: sidebar_gutter_collapsed_class, 'aria-live' => 'polite' }
|
||||
%aside.right-sidebar.js-right-sidebar.js-issuable-sidebar{ data: { signed: { in: current_user.present? } }, class: sidebar_gutter_collapsed_class, 'aria-live' => 'polite' }
|
||||
.issuable-sidebar{ data: { endpoint: "#{issuable_json_path(issuable)}" } }
|
||||
- can_edit_issuable = can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
|
||||
.block.issuable-sidebar-header
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'layouts/nav/_project' do
|
||||
describe 'layouts/nav/sidebar/_project' do
|
||||
describe 'container registry tab' do
|
||||
before do
|
||||
project = create(:project, :repository)
|
||||
stub_container_registry_config(enabled: true)
|
||||
|
||||
assign(:project, create(:project, :repository))
|
||||
assign(:project, project)
|
||||
assign(:repository, project.repository)
|
||||
allow(view).to receive(:current_ref).and_return('master')
|
||||
|
||||
allow(view).to receive(:can?).and_return(true)
|
Loading…
Reference in New Issue