diff options
Diffstat (limited to 'app/views/groups/group_members/index.html.haml')
-rw-r--r-- | app/views/groups/group_members/index.html.haml | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml index c8e58a50b18..ed7b201323a 100644 --- a/app/views/groups/group_members/index.html.haml +++ b/app/views/groups/group_members/index.html.haml @@ -3,6 +3,8 @@ - show_invited_members = can_manage_members && @invited_members.exists? - show_access_requests = can_manage_members && @requesters.exists? - invited_active = params[:search_invited].present? || params[:invited_members_page].present? +- vue_members_list_enabled = Feature.enabled?(:vue_group_members_list, @group) +- data_attributes = { group_id: @group.id } - form_item_label_css_class = 'label-bold gl-mr-2 gl-mb-0 gl-py-2 align-self-md-center' @@ -66,18 +68,24 @@ = render 'groups/group_members/tab_pane/form_item' do = label_tag :sort_by, _('Sort by'), class: form_item_label_css_class = render 'shared/members/sort_dropdown' - %ul.content-list.members-list{ data: { qa_selector: 'members_list' } } - = render partial: 'shared/members/member', collection: @members, as: :member - = paginate @members, theme: 'gitlab', params: { invited_members_page: nil, search_invited: nil } + - if vue_members_list_enabled + .js-group-members-list{ data: { members: members_data_json(@group, @members), **data_attributes } } + - else + %ul.content-list.members-list{ data: { qa_selector: 'members_list' } } + = render partial: 'shared/members/member', collection: @members, as: :member + = paginate @members, theme: 'gitlab', params: { invited_members_page: nil, search_invited: nil } - if @group.shared_with_group_links.any? #tab-groups.tab-pane .card.card-without-border = render 'groups/group_members/tab_pane/header' do = render 'groups/group_members/tab_pane/title' do = html_escape(_('Groups with access to %{strong_start}%{group_name}%{strong_end}')) % { group_name: @group.name, strong_start: '<strong>'.html_safe, strong_end: '</strong>'.html_safe } - %ul.content-list.members-list{ data: { qa_selector: 'groups_list' } } - - @group.shared_with_group_links.each do |group_link| - = render 'shared/members/group', group_link: group_link, can_admin_member: can_manage_members, group_link_path: group_group_link_path(@group, group_link) + - if vue_members_list_enabled + .js-group-linked-list{ data: { members: linked_groups_data_json(@group.shared_with_group_links), **data_attributes } } + - else + %ul.content-list.members-list{ data: { qa_selector: 'groups_list' } } + - @group.shared_with_group_links.each do |group_link| + = render 'shared/members/group', group_link: group_link, can_admin_member: can_manage_members, group_link_path: group_group_link_path(@group, group_link) - if show_invited_members #tab-invited-members.tab-pane{ class: ('active' if invited_active) } .card.card-without-border @@ -86,14 +94,20 @@ = html_escape(_('Members invited to %{strong_start}%{group_name}%{strong_end}')) % { group_name: @group.name, strong_start: '<strong>'.html_safe, strong_end: '</strong>'.html_safe } = form_tag group_group_members_path(@group), method: :get, class: 'user-search-form', data: { testid: 'user-search-form' } do = render 'shared/members/search_field', name: 'search_invited' - %ul.content-list.members-list - = render partial: 'shared/members/member', collection: @invited_members, as: :member - = paginate @invited_members, param_name: 'invited_members_page', theme: 'gitlab', params: { page: nil } + - if vue_members_list_enabled + .js-group-invited-members-list{ data: { members: members_data_json(@group, @invited_members), **data_attributes } } + - else + %ul.content-list.members-list + = render partial: 'shared/members/member', collection: @invited_members, as: :member + = paginate @invited_members, param_name: 'invited_members_page', theme: 'gitlab', params: { page: nil } - if show_access_requests #tab-access-requests.tab-pane .card.card-without-border = render 'groups/group_members/tab_pane/header' do = render 'groups/group_members/tab_pane/title' do = html_escape(_('Users requesting access to %{strong_start}%{group_name}%{strong_end}')) % { group_name: @group.name, strong_start: '<strong>'.html_safe, strong_end: '</strong>'.html_safe } - %ul.content-list.members-list - = render partial: 'shared/members/member', collection: @requesters, as: :member + - if vue_members_list_enabled + .js-group-access-requests-list{ data: { members: members_data_json(@group, @requesters), **data_attributes } } + - else + %ul.content-list.members-list + = render partial: 'shared/members/member', collection: @requesters, as: :member |