summaryrefslogtreecommitdiff
path: root/app/views/projects/project_members/index.html.haml
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/projects/project_members/index.html.haml')
-rw-r--r--app/views/projects/project_members/index.html.haml62
1 files changed, 14 insertions, 48 deletions
diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml
index 0fa9fb7079b..d1b6db95392 100644
--- a/app/views/projects/project_members/index.html.haml
+++ b/app/views/projects/project_members/index.html.haml
@@ -25,8 +25,11 @@
title: _("Import members from another project")
- if @project.allowed_to_share_with_group?
.js-invite-group-trigger{ data: { classes: 'gl-mt-3 gl-sm-w-auto gl-w-full gl-sm-ml-3', display_text: _('Invite a group') } }
- - if !membership_locked?
- .js-invite-members-trigger{ data: { variant: 'success', classes: 'gl-mt-3 gl-sm-w-auto gl-w-full gl-sm-ml-3', display_text: _('Invite members') } }
+ - if can_manage_project_members?(@project) && !membership_locked?
+ .js-invite-members-trigger{ data: { variant: 'success',
+ classes: 'gl-mt-3 gl-sm-w-auto gl-w-full gl-sm-ml-3',
+ trigger_source: 'project-members-page',
+ display_text: _('Invite members') } }
= render 'projects/invite_members_modal', project: @project
- else
@@ -51,52 +54,15 @@
.tab-pane.active{ id: 'invite-member-pane', role: 'tabpanel' }
= render 'shared/members/invite_member', submit_url: project_project_members_path(@project), access_levels: ProjectMember.access_level_roles, default_access_level: @project_member.access_level, can_import_members?: can_import_members?, import_path: import_project_project_members_path(@project)
.tab-pane{ id: 'invite-group-pane', role: 'tabpanel', class: ('active' if membership_locked?) }
- = render 'shared/members/invite_group', submit_url: project_group_links_path(@project), access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, group_link_field: 'link_group_id', group_access_field: 'link_group_access'
+ = render 'shared/members/invite_group', submit_url: project_group_links_path(@project), access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, group_link_field: 'link_group_id', group_access_field: 'link_group_access', groups_select_tag_data: { skip_groups: @skip_groups }
- elsif !membership_locked?
.invite-member= render 'shared/members/invite_member', submit_url: project_project_members_path(@project), access_levels: ProjectMember.access_level_roles, default_access_level: @project_member.access_level, can_import_members?: can_import_members?, import_path: import_project_project_members_path(@project)
- elsif @project.allowed_to_share_with_group?
- .invite-group= render 'shared/members/invite_group', access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, submit_url: project_group_links_path(@project), group_link_field: 'link_group_id', group_access_field: 'link_group_access'
- %ul.nav-links.mobile-separator.nav.nav-tabs
- %li.nav-item
- = link_to '#tab-members', class: ['nav-link', ('active' unless groups_tab_active?)], data: { toggle: 'tab' } do
- %span
- = _('Members')
- %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @project_members.total_count
- - if show_groups?(@group_links)
- %li.nav-item
- = link_to '#tab-groups', class: ['nav-link', ('active' if groups_tab_active?)] , data: { toggle: 'tab', qa_selector: 'groups_list_tab' } do
- %span
- = _('Groups')
- %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @group_links.count
- - if show_invited_members?(@project, @invited_members)
- %li.nav-item
- = link_to '#tab-invited-members', class: 'nav-link', data: { toggle: 'tab' } do
- %span
- = _('Invited')
- %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @invited_members.count
- - if show_access_requests?(@project, @requesters)
- %li.nav-item
- = link_to '#tab-access-requests', class: 'nav-link', data: { toggle: 'tab' } do
- %span
- = _('Access requests')
- %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @requesters.count
- .tab-content
- #tab-members.tab-pane{ class: ('active' unless groups_tab_active?) }
- .js-project-members-list{ data: { members_data: project_members_list_data_json(@project, @project_members, { param_name: :page, params: { search_groups: nil } }) } }
- .loading
- .gl-spinner.gl-spinner-md
- - if show_groups?(@group_links)
- #tab-groups.tab-pane{ class: ('active' if groups_tab_active?) }
- .js-project-group-links-list{ data: { members_data: project_group_links_list_data_json(@project, @group_links) } }
- .loading
- .gl-spinner.gl-spinner-md
- - if show_invited_members?(@project, @invited_members)
- #tab-invited-members.tab-pane
- .js-project-invited-members-list{ data: { members_data: project_members_list_data_json(@project, @invited_members) } }
- .loading
- .gl-spinner.gl-spinner-md
- - if show_access_requests?(@project, @requesters)
- #tab-access-requests.tab-pane
- .js-project-access-requests-list{ data: { members_data: project_members_list_data_json(@project, @requesters) } }
- .loading
- .gl-spinner.gl-spinner-md
+ .invite-group= render 'shared/members/invite_group', access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, submit_url: project_group_links_path(@project), group_link_field: 'link_group_id', group_access_field: 'link_group_access', groups_select_tag_data: { skip_groups: @skip_groups }
+ .js-project-members-list-app{ data: { members_data: project_members_app_data_json(@project,
+ members: @project_members,
+ group_links: @group_links,
+ invited: @invited_members,
+ access_requests: @requesters) } }
+ .loading
+ .gl-spinner.gl-spinner-md