summaryrefslogtreecommitdiff
path: root/app/views/groups
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/groups')
-rw-r--r--app/views/groups/_import_group_from_file_panel.html.haml3
-rw-r--r--app/views/groups/_invite_members_modal.html.haml8
-rw-r--r--app/views/groups/dependency_proxies/_url.html.haml6
-rw-r--r--app/views/groups/dependency_proxies/show.html.haml2
-rw-r--r--app/views/groups/group_members/index.html.haml13
-rw-r--r--app/views/groups/runners/_group_runners.html.haml11
-rw-r--r--app/views/groups/runners/_settings.html.haml3
-rw-r--r--app/views/groups/runners/_sort_dropdown.html.haml10
-rw-r--r--app/views/groups/runners/index.html.haml6
-rw-r--r--app/views/groups/settings/_advanced.html.haml4
-rw-r--r--app/views/groups/settings/_lfs.html.haml9
-rw-r--r--app/views/groups/settings/_permissions.html.haml40
-rw-r--r--app/views/groups/settings/_project_access_token_creation.html.haml13
-rw-r--r--app/views/groups/settings/_two_factor_auth.html.haml14
-rw-r--r--app/views/groups/sidebar/_packages.html.haml27
-rw-r--r--app/views/groups/sidebar/_packages_settings.html.haml5
16 files changed, 73 insertions, 101 deletions
diff --git a/app/views/groups/_import_group_from_file_panel.html.haml b/app/views/groups/_import_group_from_file_panel.html.haml
index 3bc2146b313..8d6e043ebf7 100644
--- a/app/views/groups/_import_group_from_file_panel.html.haml
+++ b/app/views/groups/_import_group_from_file_panel.html.haml
@@ -30,7 +30,8 @@
id: 'import_group_path',
required: true,
pattern: Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX_JS,
- title: _('Please choose a group URL with no special characters.'),
+ title: group_url_error_message,
+ maxlength: ::Namespace::URL_MAX_LENGTH,
"data-bind-in" => "#{'create_chat_team' if Gitlab.config.mattermost.enabled}"
%p.validation-error.gl-field-error.field-validation.hide
= _("Group path is already taken. We've suggested one that is available.")
diff --git a/app/views/groups/_invite_members_modal.html.haml b/app/views/groups/_invite_members_modal.html.haml
index 3be1a142ca6..78f079df158 100644
--- a/app/views/groups/_invite_members_modal.html.haml
+++ b/app/views/groups/_invite_members_modal.html.haml
@@ -1,8 +1,6 @@
-- return unless can_manage_members?(group)
+- return unless can_admin_group_member?(group)
-.js-invite-members-modal{ data: { id: group.id,
- name: group.name,
- is_project: 'false',
+.js-invite-members-modal{ data: { is_project: 'false',
access_levels: GroupMember.access_level_roles.to_json,
default_access_level: Gitlab::Access::GUEST,
- help_link: help_page_url('user/permissions') }.merge(group_select_data(group)) }
+ help_link: help_page_url('user/permissions') }.merge(group_select_data(group)).merge(common_invite_modal_dataset(group)).merge(users_filter_data(group)) }
diff --git a/app/views/groups/dependency_proxies/_url.html.haml b/app/views/groups/dependency_proxies/_url.html.haml
index 785ad8f94fd..a8034c50ed8 100644
--- a/app/views/groups/dependency_proxies/_url.html.haml
+++ b/app/views/groups/dependency_proxies/_url.html.haml
@@ -1,6 +1,6 @@
-- proxy_url = group_dependency_proxy_url(@group)
+- proxy_url = group_dependency_proxy_image_prefix(@group)
-%h5.prepend-top-20= _('Dependency proxy URL')
+%h5.prepend-top-20= _('Dependency proxy image prefix')
.row
.col-lg-8.col-md-12.input-group
@@ -8,5 +8,5 @@
= clipboard_button(text: "#{proxy_url}", title: _("Copy %{proxy_url}") % { proxy_url: proxy_url })
.row
- .col-12.help-block.gl-mt-3
+ .col-12.help-block.gl-mt-3{ data: { qa_selector: 'dependency_proxy_count' } }
= _('Contains %{count} blobs of images (%{size})') % { count: @blobs_count, size: number_to_human_size(@blobs_total_size) }
diff --git a/app/views/groups/dependency_proxies/show.html.haml b/app/views/groups/dependency_proxies/show.html.haml
index 5cf4ff4bc26..177018af830 100644
--- a/app/views/groups/dependency_proxies/show.html.haml
+++ b/app/views/groups/dependency_proxies/show.html.haml
@@ -13,7 +13,7 @@
.form-group
%h5.prepend-top-20= _('Enable proxy')
.js-dependency-proxy-toggle-area
- = render "shared/buttons/project_feature_toggle", is_checked: @dependency_proxy.enabled?, label: s_("DependencyProxy|Toggle Dependency Proxy") do
+ = render "shared/buttons/project_feature_toggle", is_checked: @dependency_proxy.enabled?, label: s_("DependencyProxy|Toggle Dependency Proxy"), data: { qa_selector: 'dependency_proxy_setting_toggle' } do
= f.hidden_field :enabled, { class: 'js-project-feature-toggle-input'}
- if @dependency_proxy.enabled
diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml
index c5b8c5e25a3..97867e312af 100644
--- a/app/views/groups/group_members/index.html.haml
+++ b/app/views/groups/group_members/index.html.haml
@@ -2,11 +2,10 @@
- page_title _('Group members')
- groups_select_tag_data = group_select_data(@group).merge({ skip_groups: @skip_groups })
-.js-remove-member-modal
.row.gl-mt-3
.col-lg-12
.gl-display-flex.gl-flex-wrap
- - if can_manage_members?
+ - if can_admin_group_member?(@group)
.gl-w-half.gl-xs-w-full
%h4
= _('Group members')
@@ -21,7 +20,7 @@
trigger_source: 'group-members-page',
display_text: _('Invite members') } }
= render 'groups/invite_members_modal', group: @group
- - if can_manage_members? && Feature.disabled?(:invite_members_group_modal, @group)
+ - if can_admin_group_member?(@group) && Feature.disabled?(:invite_members_group_modal, @group)
%hr.gl-mt-4
%ul.nav-links.nav.nav-tabs.gitlab-tabs{ role: 'tablist' }
%li.nav-tab{ role: 'presentation' }
@@ -36,9 +35,9 @@
= render_if_exists 'groups/group_members/ldap_sync'
- .js-group-members-list-app{ data: { members_data: group_members_app_data_json(@group,
- members: @members,
- invited: @invited_members,
- access_requests: @requesters) } }
+ .js-group-members-list-app{ data: { members_data: group_members_app_data(@group,
+ members: @members,
+ invited: @invited_members,
+ access_requests: @requesters).to_json } }
.loading
.gl-spinner.gl-spinner-md
diff --git a/app/views/groups/runners/_group_runners.html.haml b/app/views/groups/runners/_group_runners.html.haml
index 49e297ee13d..1cccce9f59a 100644
--- a/app/views/groups/runners/_group_runners.html.haml
+++ b/app/views/groups/runners/_group_runners.html.haml
@@ -3,17 +3,14 @@
%h4
= _('Group runners')
-%p
- = _('These runners are shared across projects in this group.')
- = _('Group runners can be managed with the %{link}.').html_safe % { link: link }
-
-# Proper policies should be implemented per
-# https://gitlab.com/gitlab-org/gitlab-foss/issues/45894
.bs-callout.help-callout
+ %p
+ = _('These runners are shared across projects in this group.')
+ = _('Group runners can be managed with the %{link}.').html_safe % { link: link }
+
- if can?(current_user, :admin_pipeline, @group) && valid_runner_registrars.include?('group')
- = render partial: 'ci/runner/how_to_setup_runner_automatically',
- locals: { type: 'group',
- clusters_path: group_clusters_path(@group) }
- if params[:ci_runner_templates]
%hr
= render partial: 'ci/runner/setup_runner_in_aws',
diff --git a/app/views/groups/runners/_settings.html.haml b/app/views/groups/runners/_settings.html.haml
index 187588f5f11..55960703f9a 100644
--- a/app/views/groups/runners/_settings.html.haml
+++ b/app/views/groups/runners/_settings.html.haml
@@ -75,7 +75,7 @@
= button_tag class: 'clear-search hidden' do
= sprite_icon('close', size: 16, css_class: 'clear-search-icon')
.filter-dropdown-container
- = render 'admin/runners/sort_dropdown'
+ = render 'groups/runners/sort_dropdown'
.col-sm-3.text-right-lg
= _('Runners currently online: %{active_runners_count}') % { active_runners_count: limited_counter_with_delimiter(@all_group_runners.online) }
@@ -96,6 +96,7 @@
.table-section.section-10{ role: 'rowheader' }
- @group_runners.each do |runner|
+ - runner = runner.present(current_user: current_user)
= render 'groups/runners/runner', runner: runner
= paginate @group_runners, theme: 'gitlab', :params => { :anchor => 'runners-settings' }
- else
diff --git a/app/views/groups/runners/_sort_dropdown.html.haml b/app/views/groups/runners/_sort_dropdown.html.haml
new file mode 100644
index 00000000000..e914bd00dac
--- /dev/null
+++ b/app/views/groups/runners/_sort_dropdown.html.haml
@@ -0,0 +1,10 @@
+- sorted_by = sort_options_hash[@sort] || sort_title_created_date
+
+.dropdown.inline.gl-ml-3
+ %button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown', display: 'static' } }
+ = sorted_by
+ = sprite_icon('chevron-down', css_class: 'dropdown-menu-toggle-icon gl-top-3')
+ %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable.dropdown-menu-sort
+ %li
+ = sortable_item(sort_title_created_date, page_filter_path(sort: sort_value_created_date), sorted_by)
+ = sortable_item(sort_title_contacted_date, page_filter_path(sort: sort_value_contacted_date), sorted_by)
diff --git a/app/views/groups/runners/index.html.haml b/app/views/groups/runners/index.html.haml
new file mode 100644
index 00000000000..4e7bc99b1f0
--- /dev/null
+++ b/app/views/groups/runners/index.html.haml
@@ -0,0 +1,6 @@
+- page_title s_('Runners|Runners')
+
+%h2.page-title
+ = s_('Runners|Group Runners')
+
+#js-group-runners{ data: { registration_token: @group.runners_token, group_id: @group.id } }
diff --git a/app/views/groups/settings/_advanced.html.haml b/app/views/groups/settings/_advanced.html.haml
index fea0736ffc8..cdff533e3c7 100644
--- a/app/views/groups/settings/_advanced.html.haml
+++ b/app/views/groups/settings/_advanced.html.haml
@@ -20,10 +20,12 @@
= f.text_field :path, placeholder: 'open-source', class: 'form-control',
autofocus: local_assigns[:autofocus] || false, required: true,
pattern: Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX_JS,
- title: s_('GroupSettings|Please choose a group URL with no special characters.'),
+ title: group_url_error_message,
+ maxlength: ::Namespace::URL_MAX_LENGTH,
"data-bind-in" => "#{'create_chat_team' if Gitlab.config.mattermost.enabled}"
= f.submit s_('GroupSettings|Change group URL'), class: 'btn gl-button btn-warning'
= render 'groups/settings/transfer', group: @group
= render 'groups/settings/remove', group: @group
= render_if_exists 'groups/settings/restore', group: @group
+= render_if_exists 'groups/settings/immediately_remove', group: @group
diff --git a/app/views/groups/settings/_lfs.html.haml b/app/views/groups/settings/_lfs.html.haml
index b16c9faafa4..1255a2901ea 100644
--- a/app/views/groups/settings/_lfs.html.haml
+++ b/app/views/groups/settings/_lfs.html.haml
@@ -6,8 +6,7 @@
%p= s_('Check the %{docs_link_start}documentation%{docs_link_end}.').html_safe % { docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe }
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :lfs_enabled, checked: @group.lfs_enabled?, class: 'custom-control-input', data: { qa_selector: 'lfs_checkbox' }
- = f.label :lfs_enabled, class: 'custom-control-label' do
- = _('Allow projects within this group to use Git LFS')
- %p.help-text= _('This setting can be overridden in each project.')
+ = f.gitlab_ui_checkbox_component :lfs_enabled,
+ _('Allow projects within this group to use Git LFS'),
+ help_text: _('This setting can be overridden in each project.'),
+ checkbox_options: { checked: @group.lfs_enabled?, data: { qa_selector: 'lfs_checkbox' } }
diff --git a/app/views/groups/settings/_permissions.html.haml b/app/views/groups/settings/_permissions.html.haml
index d1f356ed665..683e70248b6 100644
--- a/app/views/groups/settings/_permissions.html.haml
+++ b/app/views/groups/settings/_permissions.html.haml
@@ -1,4 +1,4 @@
-= form_for @group, html: { multipart: true, class: 'gl-show-field-errors js-general-permissions-form' }, authenticity_token: true do |f|
+= gitlab_ui_form_for @group, html: { multipart: true, class: 'gl-show-field-errors js-general-permissions-form' }, authenticity_token: true do |f|
%input{ type: 'hidden', name: 'update_section', value: 'js-permissions-settings' }
= form_errors(@group)
@@ -9,34 +9,28 @@
- if @group.root?
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :prevent_sharing_groups_outside_hierarchy, disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group), class: 'custom-control-input'
- = f.label :prevent_sharing_groups_outside_hierarchy, class: 'custom-control-label' do
- %span
- = s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.').html_safe % { group: link_to_group(@group) }
- %p.js-descr.help-text= prevent_sharing_groups_outside_hierarchy_help_text(@group)
+ = f.gitlab_ui_checkbox_component :prevent_sharing_groups_outside_hierarchy,
+ s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.').html_safe % { group: link_to_group(@group) },
+ help_text: prevent_sharing_groups_outside_hierarchy_help_text(@group),
+ checkbox_options: { disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group) }
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :share_with_group_lock, disabled: !can_change_share_with_group_lock?(@group), class: 'custom-control-input'
- = f.label :share_with_group_lock, class: 'custom-control-label' do
- %span
- = s_('GroupSettings|Prevent sharing a project within %{group} with other groups').html_safe % { group: link_to_group(@group) }
- %p.js-descr.help-text= share_with_group_lock_help_text(@group)
+ = f.gitlab_ui_checkbox_component :share_with_group_lock,
+ s_('GroupSettings|Prevent sharing a project within %{group} with other groups').html_safe % { group: link_to_group(@group) },
+ checkbox_options: { disabled: !can_change_share_with_group_lock?(@group) },
+ help_text: share_with_group_lock_help_text(@group)
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :emails_disabled, checked: @group.emails_disabled?, disabled: !can_disable_group_emails?(@group), class: 'custom-control-input'
- = f.label :emails_disabled, class: 'custom-control-label' do
- %span= s_('GroupSettings|Disable email notifications')
- %p.help-text= s_('GroupSettings|This setting will override user notification preferences for all members of the group, subgroups, and projects.')
+ = f.gitlab_ui_checkbox_component :emails_disabled,
+ s_('GroupSettings|Disable email notifications'),
+ checkbox_options: { checked: @group.emails_disabled?, disabled: !can_disable_group_emails?(@group) },
+ help_text: s_('GroupSettings|This setting will override user notification preferences for all members of the group, subgroups, and projects.')
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :mentions_disabled, checked: @group.mentions_disabled?, class: 'custom-control-input'
- = f.label :mentions_disabled, class: 'custom-control-label' do
- %span= s_('GroupSettings|Disable group mentions')
- %p.help-text= s_('GroupSettings|This setting will prevent group members from being notified if the group is mentioned.')
+ = f.gitlab_ui_checkbox_component :mentions_disabled,
+ s_('GroupSettings|Disable group mentions'),
+ checkbox_options: { checked: @group.mentions_disabled? },
+ help_text: s_('GroupSettings|This setting will prevent group members from being notified if the group is mentioned.')
= render 'groups/settings/project_access_token_creation', f: f, group: @group
= render_if_exists 'groups/settings/delayed_project_removal', f: f, group: @group
diff --git a/app/views/groups/settings/_project_access_token_creation.html.haml b/app/views/groups/settings/_project_access_token_creation.html.haml
index 8be17c6cc30..948b25390ba 100644
--- a/app/views/groups/settings/_project_access_token_creation.html.haml
+++ b/app/views/groups/settings/_project_access_token_creation.html.haml
@@ -1,10 +1,9 @@
- return unless render_setting_to_allow_project_access_token_creation?(group)
.form-group.gl-mb-3
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :resource_access_token_creation_allowed, checked: group.namespace_settings.resource_access_token_creation_allowed?, class: 'custom-control-input', data: { qa_selector: 'resource_access_token_creation_allowed_checkbox' }
- = f.label :resource_access_token_creation_allowed, class: 'custom-control-label' do
- %span= s_('GroupSettings|Allow project access token creation')
- - project_access_tokens_link = help_page_path('user/project/settings/project_access_tokens')
- - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: project_access_tokens_link }
- %p.help-text= s_('GroupSettings|Users can create %{link_start}project access tokens%{link_end} for projects in this group.').html_safe % { link_start: link_start, link_end: '</a>'.html_safe }
+ - project_access_tokens_link = help_page_path('user/project/settings/project_access_tokens')
+ - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: project_access_tokens_link }
+ = f.gitlab_ui_checkbox_component :resource_access_token_creation_allowed,
+ s_('GroupSettings|Allow project access token creation'),
+ checkbox_options: { checked: group.namespace_settings.resource_access_token_creation_allowed?, data: { qa_selector: 'resource_access_token_creation_allowed_checkbox' } },
+ help_text: s_('GroupSettings|Users can create %{link_start}project access tokens%{link_end} for projects in this group.').html_safe % { link_start: link_start, link_end: '</a>'.html_safe }
diff --git a/app/views/groups/settings/_two_factor_auth.html.haml b/app/views/groups/settings/_two_factor_auth.html.haml
index bd3b3283288..9e5eeee2e2a 100644
--- a/app/views/groups/settings/_two_factor_auth.html.haml
+++ b/app/views/groups/settings/_two_factor_auth.html.haml
@@ -7,17 +7,15 @@
%p= s_('Check the %{docs_link_start}documentation%{docs_link_end}.').html_safe % { docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe }
.form-group
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :require_two_factor_authentication, class: 'custom-control-input', data: { qa_selector: 'require_2fa_checkbox' }
- = f.label :require_two_factor_authentication, class: 'custom-control-label' do
- = _('Require all users in this group to setup two-factor authentication')
+ = f.gitlab_ui_checkbox_component :require_two_factor_authentication,
+ _('Require all users in this group to setup two-factor authentication'),
+ checkbox_options: { data: { qa_selector: 'require_2fa_checkbox' } }
.form-group
= f.label :two_factor_grace_period, _('Time before enforced'), class: 'label-bold'
= f.text_field :two_factor_grace_period, class: 'form-control form-control-sm w-auto'
.form-text.text-muted= _('Amount of time (in hours) that users are allowed to skip forced configuration of two-factor authentication')
- unless group.has_parent?
.form-group
- .gl-form-checkbox.custom-control.custom-checkbox
- = f.check_box :allow_mfa_for_subgroups, class: 'custom-control-input', checked: group.namespace_settings&.allow_mfa_for_subgroups
- = f.label :allow_mfa_for_subgroups, class: 'custom-control-label' do
- = _('Allow subgroups to set up their own two-factor authentication rules')
+ = f.gitlab_ui_checkbox_component :allow_mfa_for_subgroups,
+ _('Allow subgroups to set up their own two-factor authentication rules'),
+ checkbox_options: { checked: group.namespace_settings&.allow_mfa_for_subgroups }
diff --git a/app/views/groups/sidebar/_packages.html.haml b/app/views/groups/sidebar/_packages.html.haml
deleted file mode 100644
index e0158e4bf22..00000000000
--- a/app/views/groups/sidebar/_packages.html.haml
+++ /dev/null
@@ -1,27 +0,0 @@
-- packages_link = group_packages_list_nav? ? group_packages_path(@group) : group_container_registries_path(@group)
-
-- if group_packages_nav?
- = nav_link(controller: ['groups/packages', 'groups/registry/repositories', 'groups/dependency_proxies']) do
- = link_to packages_link, title: _('Packages'), class: 'has-sub-items' do
- .nav-icon-container
- = sprite_icon('package')
- %span.nav-item-name
- = _('Packages & Registries')
- %ul.sidebar-sub-level-items
- = nav_link(controller: [:packages, :repositories], html_options: { class: "fly-out-top-item" } ) do
- = link_to packages_link, title: _('Packages & Registries') do
- %strong.fly-out-top-item-name
- = _('Packages & Registries')
- %li.divider.fly-out-top-item
- - if group_packages_list_nav?
- = nav_link(controller: 'groups/packages') do
- = link_to group_packages_path(@group), title: _('Packages') do
- %span= _('Package Registry')
- - if group_container_registry_nav?
- = nav_link(controller: 'groups/registry/repositories') do
- = link_to group_container_registries_path(@group), title: _('Container Registry') do
- %span= _('Container Registry')
- - if group_dependency_proxy_nav?
- = nav_link(controller: 'groups/dependency_proxies') do
- = link_to group_dependency_proxy_path(@group), title: _('Dependency Proxy') do
- %span= _('Dependency Proxy')
diff --git a/app/views/groups/sidebar/_packages_settings.html.haml b/app/views/groups/sidebar/_packages_settings.html.haml
deleted file mode 100644
index 78533aba75f..00000000000
--- a/app/views/groups/sidebar/_packages_settings.html.haml
+++ /dev/null
@@ -1,5 +0,0 @@
-- if group_packages_list_nav?
- = nav_link(controller: :packages_and_registries) do
- = link_to group_settings_packages_and_registries_path(@group), title: _('Packages & Registries'), data: { qa_selector: 'group_package_settings_link' } do
- %span
- = _('Packages & Registries')