index.html.haml 3.68 KB
Newer Older
Martin Wortschack's avatar
Martin Wortschack committed
1
- page_title _("Members")
2
- can_manage_members = can?(current_user, :admin_group_member, @group)
3
- show_invited_members = can_manage_members && @invited_members.exists?
4
- pending_active = params[:search_invited].present?
5

6 7
.project-members-page.prepend-top-default
  %h4
Martin Wortschack's avatar
Martin Wortschack committed
8
    = _("Members")
9
  %hr
10
  - if can_manage_members
11
    .project-members-new.append-bottom-default
Phil Hughes's avatar
Phil Hughes committed
12
      %p.clearfix
13
        = _("Add new member to %{strongStart}%{group_name}%{strongEnd}").html_safe % { group_name: @group.name, strongStart: '<strong>'.html_safe, strongEnd: '</strong>'.html_safe }
14
      = render "new_group_member"
15

16
    = render 'shared/members/requests', membership_source: @group, requesters: @requesters
17

Donald Cook's avatar
Donald Cook committed
18 19
  = render_if_exists 'groups/group_members/ldap_sync'

20 21
  %ul.nav-links.mobile-separator.nav.nav-tabs.clearfix
    %li.nav-item
22
      = link_to "#existing_members", class: ["nav-link", ("active" unless pending_active)] , 'data-toggle' => 'tab' do
Stan Hu's avatar
Stan Hu committed
23
        %span
Martin Wortschack's avatar
Martin Wortschack committed
24
          = _("Existing")
Stan Hu's avatar
Stan Hu committed
25
        %span.badge.badge-pill= @members.total_count
26 27
    - if show_invited_members
      %li.nav-item
28
        = link_to "#invited_members", class: ["nav-link", ("active" if pending_active)], 'data-toggle' => 'tab' do
Stan Hu's avatar
Stan Hu committed
29
          %span
Martin Wortschack's avatar
Martin Wortschack committed
30
            = _("Pending")
Stan Hu's avatar
Stan Hu committed
31
          %span.badge.badge-pill= @invited_members.total_count
32 33

  .tab-content
34
    #existing_members.tab-pane{ :class => ("active" unless pending_active) }
George Tsiolis's avatar
George Tsiolis committed
35
      .card.card-without-border
36
        .d-flex.flex-column.flex-md-row.row-content-block.second-block
Martin Wortschack's avatar
Martin Wortschack committed
37
          %span.flex-grow-1.align-self-md-center.col-form-label
38
            = _("Members with access to %{strongStart}%{group_name}%{strongEnd}").html_safe % { group_name: @group.name, strongStart: '<strong>'.html_safe, strongEnd: '</strong>'.html_safe }
39
          = form_tag group_group_members_path(@group), method: :get, class: 'form-inline user-search-form' do
Martin Wortschack's avatar
Martin Wortschack committed
40
            .form-group.flex-grow
41
              .position-relative.mr-md-2
Martin Wortschack's avatar
Martin Wortschack committed
42
                = search_field_tag :search, params[:search], { placeholder: _('Search'), class: 'form-control', spellcheck: false }
43
                %button.user-search-btn.border-left{ type: "submit", "aria-label" => _("Submit search") }
44 45
                  = icon("search")
              - if can_manage_members
Martin Wortschack's avatar
Martin Wortschack committed
46
                = label_tag '2fa', '2FA', class: 'col-form-label label-bold pr-md-2'
47 48 49 50 51
                = render 'shared/members/filter_2fa_dropdown'
              = render 'shared/members/sort_dropdown'
        %ul.content-list.members-list
          = render partial: 'shared/members/member', collection: @members, as: :member
      = paginate @members, theme: 'gitlab'
52

53
    - if show_invited_members
54
      #invited_members.tab-pane{ :class => ("active" if pending_active) }
George Tsiolis's avatar
George Tsiolis committed
55
        .card.card-without-border
56 57
          .d-flex.flex-column.flex-md-row.row-content-block.second-block
            %span.flex-grow-1
58
              = _("Members with pending access to %{strongStart}%{group_name}%{strongEnd}").html_safe % { group_name: @group.name, strongStart: '<strong>'.html_safe, strongEnd: '</strong>'.html_safe }
59
            = form_tag group_group_members_path(@group), method: :get, class: 'form-inline user-search-form' do
60
              .form-group
61
                .position-relative.mr-md-2
Martin Wortschack's avatar
Martin Wortschack committed
62
                  = search_field_tag :search_invited, params[:search_invited], { placeholder: _('Search'), class: 'form-control', spellcheck: false }
63
                  %button.user-search-btn.border-left{ type: "submit", "aria-label" => _("Submit search") }
64
                    = icon("search")
Stan Hu's avatar
Stan Hu committed
65
          %ul.content-list.members-list
66 67
            = render partial: 'shared/members/member', collection: @invited_members, as: :member
        = paginate @invited_members, param_name: 'invited_members_page', theme: 'gitlab'