From 55cccf21258cdc5bb7431e25cd01a089997cd27c Mon Sep 17 00:00:00 2001 From: Luke Bennett Date: Tue, 21 May 2019 18:50:06 +0100 Subject: [PATCH] Resolve CE/EE diffs in project members Part of single codebase changes. --- app/helpers/projects_helper.rb | 24 +++++++++++ .../projects/project_members/index.html.haml | 42 +++++++++++-------- locale/gitlab.pot | 6 +++ 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 91d15e0e4ea..f798bfbf703 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -319,6 +319,30 @@ module ProjectsHelper Ability.allowed?(current_user, :admin_project_member, @project) end + def project_can_be_shared? + !membership_locked? || @project.allowed_to_share_with_group? + end + + def membership_locked? + false + end + + def share_project_description(project) + share_with_group = project.allowed_to_share_with_group? + share_with_members = !membership_locked? + + description = + if share_with_group && share_with_members + _("You can invite a new member to %{project_name} or invite another group.") + elsif share_with_group + _("You can invite another group to %{project_name}.") + elsif share_with_members + _("You can invite a new member to %{project_name}.") + end + + description.html_safe % { project_name: project.name } + end + private def get_project_nav_tabs(project, current_user) diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml index 8373903443e..cc98ba64f08 100644 --- a/app/views/projects/project_members/index.html.haml +++ b/app/views/projects/project_members/index.html.haml @@ -1,29 +1,35 @@ - page_title _("Members") +- can_admin_project_members = can?(current_user, :admin_project_member, @project) .row.prepend-top-default .col-lg-12 - %h4 - = _("Project members") - - if can?(current_user, :admin_project_member, @project) - %p - = _("You can invite a new member to %{project_name} or invite another group.").html_safe % { project_name: sanitize(@project.name, tags: []) } - - else - %p - = _("Members can be added by project Maintainers or Owners").html_safe + - if project_can_be_shared? + %h4 + = _("Project members") + - if can_admin_project_members + %p= share_project_description(@project) + - else + %p + = _("Members can be added by project Maintainers or Owners").html_safe + .light - - if can?(current_user, :admin_project_member, @project) - %ul.nav-links.nav.nav-tabs.gitlab-tabs{ role: 'tablist' } - %li.nav-tab{ role: 'presentation' } - %a.nav-link.active{ href: '#invite-member-pane', id: 'invite-member-tab', data: { toggle: 'tab' }, role: 'tab' }= _("Invite member") - - if @project.allowed_to_share_with_group? + - if can_admin_project_members && project_can_be_shared? + - if !membership_locked? && @project.allowed_to_share_with_group? + %ul.nav-links.nav.nav-tabs.gitlab-tabs{ role: 'tablist' } %li.nav-tab{ role: 'presentation' } + %a.nav-link.active{ href: '#invite-member-pane', id: 'invite-member-tab', data: { toggle: 'tab' }, role: 'tab' }= _("Invite member") + %li.nav-tab{ role: 'presentation', class: ('active' if membership_locked?) } %a.nav-link{ href: '#invite-group-pane', id: 'invite-group-tab', data: { toggle: 'tab' }, role: 'tab' }= _("Invite group") - .tab-content.gitlab-tab-content - .tab-pane.active{ id: 'invite-member-pane', role: 'tabpanel' } - = render 'projects/project_members/new_project_member', tab_title: _('Invite member') - .tab-pane{ id: 'invite-group-pane', role: 'tabpanel' } - = render 'projects/project_members/new_project_group', tab_title: _('Invite group') + .tab-content.gitlab-tab-content + .tab-pane.active{ id: 'invite-member-pane', role: 'tabpanel' } + = render 'projects/project_members/new_project_member', tab_title: _('Invite member') + .tab-pane{ id: 'invite-group-pane', role: 'tabpanel', class: ('active' if membership_locked?) } + = render 'projects/project_members/new_project_group', tab_title: _('Invite group') + - elsif !membership_locked? + .invite-member= render 'projects/project_members/new_project_member', tab_title: _('Invite member') + - elsif @project.allowed_to_share_with_group? + .invite-group= render 'projects/project_members/new_project_group', tab_title: _('Invite group') = render 'shared/members/requests', membership_source: @project, requesters: @requesters .clearfix diff --git a/locale/gitlab.pot b/locale/gitlab.pot index b1fe186d96a..84c1f1698c8 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -11250,6 +11250,12 @@ msgstr "" msgid "You can invite a new member to %{project_name} or invite another group." msgstr "" +msgid "You can invite a new member to %{project_name}." +msgstr "" + +msgid "You can invite another group to %{project_name}." +msgstr "" + msgid "You can move around the graph by using the arrow keys." msgstr ""