diff options
Diffstat (limited to 'app/helpers/groups_helper.rb')
-rw-r--r-- | app/helpers/groups_helper.rb | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb index 5ce23baa226..8f647a49a64 100644 --- a/app/helpers/groups_helper.rb +++ b/app/helpers/groups_helper.rb @@ -7,7 +7,11 @@ module GroupsHelper groups#details groups#activity groups#subgroups - ] + ].tap do |paths| + break paths if Feature.disabled?(:sidebar_refactor, current_user, default_enabled: :yaml) + + paths.concat(['labels#index', 'group_members#index']) + end end def group_settings_nav_link_paths @@ -25,7 +29,9 @@ module GroupsHelper applications#index applications#show applications#edit - packages_and_registries#index + packages_and_registries#show + groups/runners#show + groups/runners#edit ] end @@ -36,6 +42,14 @@ module GroupsHelper ] end + def group_information_title(group) + if Feature.enabled?(:sidebar_refactor, current_user) + group.subgroup? ? _('Subgroup information') : _('Group information') + else + group.subgroup? ? _('Subgroup overview') : _('Group overview') + end + end + def group_container_registry_nav? Gitlab.config.registry.enabled && can?(current_user, :read_container_image, @group) @@ -113,9 +127,7 @@ module GroupsHelper @has_group_title = true full_title = [] - ancestors = group.ancestors.with_route - - ancestors.reverse_each.with_index do |parent, index| + sorted_ancestors(group).with_route.reverse_each.with_index do |parent, index| if index > 0 add_to_breadcrumb_dropdown(group_title_link(parent, hidable: false, show_avatar: true, for_dropdown: true), location: :before) else @@ -141,9 +153,9 @@ module GroupsHelper def projects_lfs_status(group) lfs_status = if group.lfs_enabled? - group.projects.select(&:lfs_enabled?).size + group.projects.count(&:lfs_enabled?) else - group.projects.reject(&:lfs_enabled?).size + group.projects.count { |project| !project.lfs_enabled? } end size = group.projects.size @@ -206,10 +218,9 @@ module GroupsHelper end def show_invite_banner?(group) - Feature.enabled?(:invite_your_teammates_banner_a, group) && - can?(current_user, :admin_group, group) && - !just_created? && - !multiple_members?(group) + can?(current_user, :admin_group, group) && + !just_created? && + !multiple_members?(group) end def render_setting_to_allow_project_access_token_creation?(group) @@ -231,7 +242,7 @@ module GroupsHelper end def multiple_members?(group) - group.member_count > 1 + group.member_count > 1 || group.members_with_parents.count > 1 end def get_group_sidebar_links @@ -285,11 +296,20 @@ module GroupsHelper end def oldest_consecutively_locked_ancestor(group) - group.ancestors.find do |group| + sorted_ancestors(group).find do |group| !group.has_parent? || !group.parent.share_with_group_lock? end end + # Ancestors sorted by hierarchy depth in bottom-top order. + def sorted_ancestors(group) + if group.root_ancestor.use_traversal_ids? + group.ancestors(hierarchy_order: :asc) + else + group.ancestors + end + end + def default_help s_("GroupSettings|This setting will be applied to all subgroups unless overridden by a group owner. Groups that already have access to the project will continue to have access unless removed manually.") end @@ -327,4 +347,4 @@ module GroupsHelper end end -GroupsHelper.prepend_if_ee('EE::GroupsHelper') +GroupsHelper.prepend_mod_with('GroupsHelper') |