Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-06-29 06:09:44 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-29 06:09:44 +0300
commit111f9a7cc6834edfeb81c4b91bcf43df332096a7 (patch)
tree76db22a425042d59c08d7bcecaed160cfdef885a /app
parent72278d5e10d7470b59b81c1e51379baa3a6cdab8 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/content_editor/components/suggestions_dropdown.vue23
-rw-r--r--app/assets/javascripts/sidebar/components/severity/sidebar_severity_widget.vue36
-rw-r--r--app/assets/stylesheets/page_bundles/wiki.scss2
-rw-r--r--app/helpers/application_settings_helper.rb3
-rw-r--r--app/models/organizations/organization_setting.rb2
-rw-r--r--app/validators/json_schemas/organization_settings.json14
-rw-r--r--app/views/admin/application_settings/_gitlab_shell_operation_limits.html.haml19
-rw-r--r--app/views/admin/application_settings/network.html.haml3
8 files changed, 70 insertions, 32 deletions
diff --git a/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue b/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue
index 947a952de3c..6535d9eaa5d 100644
--- a/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue
+++ b/app/assets/javascripts/content_editor/components/suggestions_dropdown.vue
@@ -215,13 +215,12 @@ export default {
<template>
<div class="gl-new-dropdown content-editor-suggestions-dropdown">
- <div class="gl-new-dropdown-panel gl-display-block! gl-absolute">
+ <div
+ v-if="!loading && items.length > 0"
+ class="gl-new-dropdown-panel gl-display-block! gl-absolute"
+ >
<div class="gl-new-dropdown-inner">
- <ul
- v-if="!loading && items.length > 0"
- class="gl-new-dropdown-contents"
- data-testid="content-editor-suggestions-dropdown"
- >
+ <ul class="gl-new-dropdown-contents" data-testid="content-editor-suggestions-dropdown">
<li
v-for="(item, index) in items"
:key="index"
@@ -287,12 +286,12 @@ export default {
</div>
</li>
</ul>
- <div v-if="loading" class="gl-new-dropdown show dropdown-menu gl-relative gl-m-0!">
- <div class="gl-new-dropdown-inner gl-overflow-y-auto">
- <div class="gl-px-5">
- <gl-loading-icon size="sm" class="gl-display-inline-block" /> {{ __('Loading...') }}
- </div>
- </div>
+ </div>
+ </div>
+ <div v-if="loading" class="gl-new-dropdown-panel gl-display-block! gl-absolute">
+ <div class="gl-new-dropdown-inner">
+ <div class="gl-px-4 gl-py-3">
+ <gl-loading-icon size="sm" class="gl-display-inline-block" /> {{ __('Loading...') }}
</div>
</div>
</div>
diff --git a/app/assets/javascripts/sidebar/components/severity/sidebar_severity_widget.vue b/app/assets/javascripts/sidebar/components/severity/sidebar_severity_widget.vue
index 55de0ceb388..e2a3efa096f 100644
--- a/app/assets/javascripts/sidebar/components/severity/sidebar_severity_widget.vue
+++ b/app/assets/javascripts/sidebar/components/severity/sidebar_severity_widget.vue
@@ -1,5 +1,5 @@
<script>
-import { GlDropdown, GlDropdownItem, GlTooltip, GlSprintf } from '@gitlab/ui';
+import { GlCollapsibleListbox, GlTooltip, GlSprintf } from '@gitlab/ui';
import { createAlert } from '~/alert';
import { TYPE_INCIDENT } from '~/issues/constants';
import SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';
@@ -12,8 +12,7 @@ export default {
components: {
GlTooltip,
GlSprintf,
- GlDropdown,
- GlDropdownItem,
+ GlCollapsibleListbox,
SeverityToken,
SidebarEditableItem,
},
@@ -57,6 +56,13 @@ export default {
return [];
}
},
+ dropdownItems() {
+ return this.severitiesList.map((severity) => ({
+ text: severity.label,
+ value: severity.value,
+ severity,
+ }));
+ },
selectedItem() {
return this.severitiesList.find((severity) => severity.value === this.severity);
},
@@ -99,7 +105,7 @@ export default {
});
},
showDropdown() {
- this.$refs.dropdown.show();
+ this.$refs.dropdown.open();
},
},
};
@@ -131,24 +137,20 @@ export default {
</template>
<template #default>
- <gl-dropdown
+ <gl-collapsible-listbox
ref="dropdown"
class="gl-mt-3"
block
:header-text="__('Assign severity')"
- :text="selectedItem.label"
+ :toggle-text="selectedItem.label"
+ :items="dropdownItems"
+ :selected="severity"
+ @select="updateSeverity"
>
- <gl-dropdown-item
- v-for="option in severitiesList"
- :key="option.value"
- data-testid="severityDropdownItem"
- is-check-item
- :is-checked="option.value === severity"
- @click="updateSeverity(option.value)"
- >
- <severity-token :severity="option" />
- </gl-dropdown-item>
- </gl-dropdown>
+ <template #list-item="{ item }">
+ <severity-token :severity="item.severity" />
+ </template>
+ </gl-collapsible-listbox>
</template>
</sidebar-editable-item>
</div>
diff --git a/app/assets/stylesheets/page_bundles/wiki.scss b/app/assets/stylesheets/page_bundles/wiki.scss
index 69a3ec94fda..447fd382c34 100644
--- a/app/assets/stylesheets/page_bundles/wiki.scss
+++ b/app/assets/stylesheets/page_bundles/wiki.scss
@@ -111,8 +111,6 @@
}
.wiki-list {
- height: $gl-spacing-scale-8;
-
&:hover {
background: $gray-10;
diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb
index adbf7ab7cf2..aa2466372e1 100644
--- a/app/helpers/application_settings_helper.rb
+++ b/app/helpers/application_settings_helper.rb
@@ -497,7 +497,8 @@ module ApplicationSettingsHelper
:projects_api_rate_limit_unauthenticated,
:gitlab_dedicated_instance,
:ci_max_includes,
- :allow_account_deletion
+ :allow_account_deletion,
+ :gitlab_shell_operation_limit
].tap do |settings|
next if Gitlab.com?
diff --git a/app/models/organizations/organization_setting.rb b/app/models/organizations/organization_setting.rb
index 5a5ace0cc06..108531e6701 100644
--- a/app/models/organizations/organization_setting.rb
+++ b/app/models/organizations/organization_setting.rb
@@ -4,6 +4,8 @@ module Organizations
class OrganizationSetting < ApplicationRecord
belongs_to :organization
+ validates :settings, json_schema: { filename: "organization_settings" }
+
jsonb_accessor :settings,
restricted_visibility_levels: [:integer, { array: true }]
diff --git a/app/validators/json_schemas/organization_settings.json b/app/validators/json_schemas/organization_settings.json
new file mode 100644
index 00000000000..350ce7d9066
--- /dev/null
+++ b/app/validators/json_schemas/organization_settings.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Settings for Organizations",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "restricted_visibility_levels": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+}
diff --git a/app/views/admin/application_settings/_gitlab_shell_operation_limits.html.haml b/app/views/admin/application_settings/_gitlab_shell_operation_limits.html.haml
new file mode 100644
index 00000000000..4bd44b922fa
--- /dev/null
+++ b/app/views/admin/application_settings/_gitlab_shell_operation_limits.html.haml
@@ -0,0 +1,19 @@
+%section.settings.no-animate#js-gitlab-shell-operation-limits-settings{ class: ('expanded' if expanded_by_default?), 'data-testid': 'gitlab-shell-operation-limits' }
+ .settings-header
+ %h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
+ = s_('ShellOperations|Git SSH operations rate limit')
+ = render Pajamas::ButtonComponent.new(button_options: { class: 'js-settings-toggle' }) do
+ = expanded_by_default? ? _('Collapse') : _('Expand')
+ %p
+ = s_('ShellOperations|Limit the number of Git operations a user can perform per minute, per repository.')
+ = link_to _('Learn more.'), help_page_path('user/admin_area/settings/rate_limits_on_git_ssh_operations.md'), target: '_blank', rel: 'noopener noreferrer'
+ .settings-content
+ = gitlab_ui_form_for @application_setting, url: network_admin_application_settings_path(anchor: 'js-gitlab-shell-operation-limits-settings'), html: { class: 'fieldset-form' } do |f|
+ = form_errors(@application_setting)
+
+ %fieldset
+ .form-group
+ = f.label :gitlab_shell_operation_limit, s_('ShellOperations|Maximum number of Git operations per minute'), class: 'gl-font-bold'
+ = f.number_field :gitlab_shell_operation_limit, class: 'form-control gl-form-input'
+
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/network.html.haml b/app/views/admin/application_settings/network.html.haml
index 18ce7c1ceba..3b9fb930fd7 100644
--- a/app/views/admin/application_settings/network.html.haml
+++ b/app/views/admin/application_settings/network.html.haml
@@ -84,6 +84,9 @@
.settings-content
= render 'git_lfs_limits'
+
+= render 'gitlab_shell_operation_limits'
+
%section.settings.as-outbound.no-animate#js-outbound-settings{ class: ('expanded' if expanded_by_default?), data: { qa_selector: 'outbound_requests_content' } }
.settings-header
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only