From 41c37d81e742c72fa90a9c3560adb93051aa02d6 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 2 Sep 2024 15:07:11 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/database.gitlab-ci.yml | 1 + GITLAB_KAS_VERSION | 2 +- .../components/ci_variable_drawer.vue | 11 +- .../javascripts/issues/list/constants.js | 14 ++ .../components/merge_requests_list_app.vue | 15 ++ .../queries/get_merge_requests.query.graphql | 2 + app/assets/javascripts/search/index.js | 19 ++- app/assets/javascripts/search/store/state.js | 4 + .../components/search_type_indicator.vue | 61 +++++--- .../super_sidebar/components/flyout_menu.vue | 26 +++- .../components/work_item_breadcrumb.vue | 22 ++- app/assets/javascripts/work_items/index.js | 1 + app/presenters/search_service_presenter.rb | 4 + app/views/search/show.html.haml | 12 +- .../prompt_migration_summarize_comments.yml | 9 ++ config/routes/user_settings.rb | 31 ---- .../18-0-rate-limit-by-default.yml | 24 +++ doc/subscriptions/gitlab_dedicated/index.md | 4 +- doc/topics/git/troubleshooting_git.md | 8 +- doc/topics/offline/quick_start_guide.md | 6 +- .../index.md | 16 +- .../index.md | 145 +++++++++--------- .../observability_java_tutorial.md | 72 ++++----- .../index.md | 60 ++++---- doc/update/deprecations.md | 23 +++ doc/user/free_user_limit.md | 59 ++++--- .../components/ci_variable_drawer_spec.js | 12 +- .../merge_requests_list_app_spec.js | 5 + .../components/search_type_indicator_spec.js | 69 +++++---- .../components/flyout_menu_spec.js | 7 +- .../components/work_item_breadcrumb_spec.js | 17 +- .../search_service_presenter_spec.rb | 6 + spec/requests/legacy_routes_spec.rb | 99 ------------ spec/views/search/show.html.haml_spec.rb | 18 ++- 34 files changed, 494 insertions(+), 390 deletions(-) create mode 100644 config/feature_flags/experiment/prompt_migration_summarize_comments.yml create mode 100644 data/deprecations/18-0-rate-limit-by-default.yml delete mode 100644 spec/requests/legacy_routes_spec.rb diff --git a/.gitlab/ci/database.gitlab-ci.yml b/.gitlab/ci/database.gitlab-ci.yml index d5a9c9bd91c..2697f1a8964 100644 --- a/.gitlab/ci/database.gitlab-ci.yml +++ b/.gitlab/ci/database.gitlab-ci.yml @@ -48,6 +48,7 @@ db:rollback single-db: # https://docs.gitlab.com/ee/development/database/dbmigrate_multi_version_upgrade_job.html db:migrate:multi-version-upgrade: extends: + - .single-db - .db-job-base - .rails:rules:db:migrate:multi-version-upgrade script: diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index c4addb94e10..dad4ea2e43f 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -a70abfad8ef4d4d1cb4b5d6667b8df8ccd772f3d +a2ca345cd681ef39094623d8f4b6ed65996de57d diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue index b9c95106242..ce7a29c85d2 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue @@ -8,7 +8,7 @@ import { GlFormCombobox, GlFormGroup, GlFormInput, - GlFormSelect, + GlCollapsibleListbox, GlFormTextarea, GlIcon, GlLink, @@ -120,7 +120,7 @@ export default { GlFormCombobox, GlFormGroup, GlFormInput, - GlFormSelect, + GlCollapsibleListbox, GlFormTextarea, GlIcon, GlLink, @@ -467,10 +467,11 @@ export default { '-gl-mb-1': hideEnvironmentScope, }" > - { const el = document.getElementById('js-search-sidebar'); if (!el) return {}; - const { navigationJson, searchType, searchLevel, groupInitialJson, projectInitialJson, ref } = - el.dataset; + const { + navigationJson, + searchType, + searchLevel, + advancedSearchAvailable, + zoektAvailable, + groupInitialJson, + projectInitialJson, + ref, + } = el.dataset; const navigationJsonParsed = JSON.parse(navigationJson); const groupInitialJsonParsed = JSON.parse(groupInitialJson); @@ -24,6 +33,8 @@ const sidebarInitState = () => { navigationJsonParsed, searchType, searchLevel, + advancedSearchAvailable: parseBoolean(advancedSearchAvailable), + zoektAvailable: parseBoolean(zoektAvailable), groupInitialJsonParsed, projectInitialJsonParsed, ref, @@ -48,6 +59,8 @@ export const initSearchApp = () => { navigationJsonParsed: navigation, searchType, searchLevel, + advancedSearchAvailable, + zoektAvailable, groupInitialJsonParsed: groupInitialJson, projectInitialJsonParsed: projectInitialJson, ref, @@ -60,6 +73,8 @@ export const initSearchApp = () => { navigation, searchType, searchLevel, + advancedSearchAvailable, + zoektAvailable, groupInitialJson, projectInitialJson, defaultBranchName, diff --git a/app/assets/javascripts/search/store/state.js b/app/assets/javascripts/search/store/state.js index 7dc4bc8a8bc..085f1715c4f 100644 --- a/app/assets/javascripts/search/store/state.js +++ b/app/assets/javascripts/search/store/state.js @@ -6,6 +6,8 @@ const createState = ({ navigation, searchType, searchLevel, + advancedSearchAvailable, + zoektAvailable, groupInitialJson, projectInitialJson, defaultBranchName, @@ -31,6 +33,8 @@ const createState = ({ searchLabelString: '', searchType, searchLevel, + advancedSearchAvailable, + zoektAvailable, groupInitialJson, projectInitialJson, defaultBranchName, diff --git a/app/assets/javascripts/search/topbar/components/search_type_indicator.vue b/app/assets/javascripts/search/topbar/components/search_type_indicator.vue index baa09379610..511fde603b2 100644 --- a/app/assets/javascripts/search/topbar/components/search_type_indicator.vue +++ b/app/assets/javascripts/search/topbar/components/search_type_indicator.vue @@ -46,7 +46,15 @@ export default { GlLink, }, computed: { - ...mapState(['searchType', 'defaultBranchName', 'query', 'searchLevel', 'query']), + ...mapState([ + 'searchType', + 'advancedSearchAvailable', + 'zoektAvailable', + 'defaultBranchName', + 'query', + 'searchLevel', + 'query', + ]), ...mapGetters(['currentScope']), isZoekt() { return this.searchType === ZOEKT_SEARCH_TYPE && this.currentScope === SCOPE_BLOB; @@ -67,7 +75,14 @@ export default { return BASIC_SEARCH_TYPE; }, - isEnabled() { + searchTypeAvailableTestId() { + if (this.zoektAvailable) { + return ZOEKT_SEARCH_TYPE; + } + + return ADVANCED_SEARCH_TYPE; + }, + useAdvancedOrZoekt() { const repoRef = this.query.repository_ref; switch (this.searchLevel) { case SEARCH_LEVEL_GLOBAL: @@ -83,11 +98,14 @@ export default { return false; } }, + isFallBacktoBasicSearch() { + return !this.useAdvancedOrZoekt && (this.advancedSearchAvailable || this.zoektAvailable); + }, isBasicSearch() { return this.searchType === BASIC_SEARCH_TYPE; }, disabledMessage() { - return this.isZoekt + return this.zoektAvailable ? this.$options.i18n.zoekt_disabled : this.$options.i18n.advanced_disabled; }, @@ -98,7 +116,7 @@ export default { return this.isZoekt ? this.$options.i18n.zoekt_enabled : this.$options.i18n.advanced_enabled; }, syntaxHelpUrl() { - return this.isZoekt + return this.zoektAvailable ? this.$options.zoektSyntaxHelpUrl : this.$options.advancedSearchSyntaxHelpUrl; }, @@ -108,28 +126,29 @@ export default { diff --git a/app/assets/javascripts/super_sidebar/components/flyout_menu.vue b/app/assets/javascripts/super_sidebar/components/flyout_menu.vue index e0cf63acb69..8ca482ff4e7 100644 --- a/app/assets/javascripts/super_sidebar/components/flyout_menu.vue +++ b/app/assets/javascripts/super_sidebar/components/flyout_menu.vue @@ -19,6 +19,11 @@ import NavItem from './nav_item.vue'; // triangles, one above the section title, one below, do listen to events, // keeping hover. +// The flyout menu gets some padding, to keep it open when the cursor goes out +// of bounds just a little bit. This padding is compensated with an offset, to +// not have any visual effect. +export const FLYOUT_PADDING = 12; + export default { name: 'FlyoutMenu', components: { NavItem }, @@ -59,6 +64,15 @@ export default { return `${x}, ${y} 100, ${y} 100, 100`; }, + flyoutStyle() { + return { + padding: `${FLYOUT_PADDING}px`, + // Add extra padding on the left, to completely overlap the scrollbar of + // the sidebar, which can be pretty wide, depending on the user's browser. + // See https://gitlab.com/gitlab-org/gitlab/-/issues/426023 + 'padding-left': `${FLYOUT_PADDING * 2}px`, + }; + }, }, created() { const target = document.querySelector(`#${this.targetId}`); @@ -71,7 +85,14 @@ export default { const updatePosition = () => computePosition(target, flyout, { - middleware: [offset({ alignmentAxis: -12 }), flip(), shift()], + middleware: [ + offset({ + mainAxis: -FLYOUT_PADDING, + alignmentAxis: -FLYOUT_PADDING, + }), + flip(), + shift(), + ], placement: 'right-start', strategy: 'fixed', }).then(({ x, y }) => { @@ -126,7 +147,8 @@ export default {