diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 4a9aecc0225..2d8e4d82053 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -332,7 +332,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/api/graphql/sample_issue_boards.md @msedlakjakubowski /doc/api/group_access_tokens.md @eread /doc/api/group_activity_analytics.md @fneill -/doc/api/group_badges.md @eread +/doc/api/group_badges.md @fneill /doc/api/group_boards.md @msedlakjakubowski /doc/api/group_clusters.md @sselhorn /doc/api/group_import_export.md @ngaskill @@ -344,7 +344,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/api/group_relations_export.md @ngaskill /doc/api/group_repository_storage_moves.md @aqualls /doc/api/group_wikis.md @aqualls -/doc/api/groups.md @eread +/doc/api/groups.md @fneill /doc/api/import.md @ngaskill /doc/api/index.md @kpaizee /doc/api/instance_clusters.md @sselhorn @@ -705,7 +705,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/group/epics/index.md @msedlakjakubowski /doc/user/group/epics/linked_epics.md @msedlakjakubowski /doc/user/group/epics/manage_epics.md @msedlakjakubowski -/doc/user/group/index.md @eread +/doc/user/group/index.md @fneill /doc/user/group/import/index.md @ngaskill /doc/user/group/insights/index.md @fneill /doc/user/group/issues_analytics/index.md @msedlakjakubowski @@ -718,7 +718,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/group/saml_sso/scim_setup.md @eread /doc/user/group/settings/group_access_tokens.md @eread /doc/user/group/settings/import_export.md @ngaskill -/doc/user/group/subgroups/index.md @eread +/doc/user/group/subgroups/index.md @fneill /doc/user/group/value_stream_analytics/index.md @fneill /doc/user/infrastructure/clusters/ @sselhorn /doc/user/infrastructure/clusters/manage/management_project_applications/apparmor.md @ngaskill @@ -761,7 +761,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/project/issues/ @msedlakjakubowski /doc/user/project/issues/csv_import.md @ngaskill /doc/user/project/labels.md @msedlakjakubowski -/doc/user/project/members/index.md @eread +/doc/user/project/members/index.md @fneill /doc/user/project/members/share_project_with_groups.md @fneill /doc/user/project/merge_requests/ @aqualls /doc/user/project/merge_requests/accessibility_testing.md @eread diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 001b3e376bb..a51e9cc1f7c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -113,17 +113,6 @@ Lint/RedundantCopDisableDirective: Lint/UselessMethodDefinition: Enabled: false -# Offense count: 11 -# Configuration parameters: EnforcedStyle. -# SupportedStyles: lowercase, uppercase -Naming/HeredocDelimiterCase: - Exclude: - - 'spec/lib/gitlab/diff/parser_spec.rb' - - 'spec/lib/json_web_token/rsa_token_spec.rb' - - 'spec/models/commit_spec.rb' - - 'spec/support/helpers/repo_helpers.rb' - - 'spec/support/helpers/seed_repo.rb' - # Offense count: 321 # Configuration parameters: ForbiddenDelimiters. # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$)) diff --git a/.rubocop_todo/naming/heredoc_delimiter_case.yml b/.rubocop_todo/naming/heredoc_delimiter_case.yml new file mode 100644 index 00000000000..8779831da21 --- /dev/null +++ b/.rubocop_todo/naming/heredoc_delimiter_case.yml @@ -0,0 +1,8 @@ +--- +Naming/HeredocDelimiterCase: + Exclude: + - 'spec/lib/gitlab/diff/parser_spec.rb' + - 'spec/lib/json_web_token/rsa_token_spec.rb' + - 'spec/models/commit_spec.rb' + - 'spec/support/helpers/repo_helpers.rb' + - 'spec/support/helpers/seed_repo.rb' diff --git a/app/assets/javascripts/access_tokens/graphql/queries/get_projects.query.graphql b/app/assets/javascripts/access_tokens/graphql/queries/get_projects.query.graphql index cdc8a952ead..a5fc70b9ca6 100644 --- a/app/assets/javascripts/access_tokens/graphql/queries/get_projects.query.graphql +++ b/app/assets/javascripts/access_tokens/graphql/queries/get_projects.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" query accessTokensGetProjects( $search: String = "" diff --git a/app/assets/javascripts/analytics/usage_trends/graphql/queries/usage_count.query.graphql b/app/assets/javascripts/analytics/usage_trends/graphql/queries/usage_count.query.graphql index 2a5546efb68..f9311626cc3 100644 --- a/app/assets/javascripts/analytics/usage_trends/graphql/queries/usage_count.query.graphql +++ b/app/assets/javascripts/analytics/usage_trends/graphql/queries/usage_count.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/count.fragment.graphql" query getCount($identifier: MeasurementIdentifier!, $first: Int, $after: String) { diff --git a/app/assets/javascripts/analytics/usage_trends/graphql/queries/users.query.graphql b/app/assets/javascripts/analytics/usage_trends/graphql/queries/users.query.graphql index 7c02ac49a42..d7638458b03 100644 --- a/app/assets/javascripts/analytics/usage_trends/graphql/queries/users.query.graphql +++ b/app/assets/javascripts/analytics/usage_trends/graphql/queries/users.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/count.fragment.graphql" query getUsersCount($first: Int, $after: String) { diff --git a/app/assets/javascripts/boards/graphql/group_projects.query.graphql b/app/assets/javascripts/boards/graphql/group_projects.query.graphql index 0da14d0b872..e0a3cb0ee21 100644 --- a/app/assets/javascripts/boards/graphql/group_projects.query.graphql +++ b/app/assets/javascripts/boards/graphql/group_projects.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" query boardsGetGroupProjects($fullPath: ID!, $search: String, $after: String) { group(fullPath: $fullPath) { diff --git a/app/assets/javascripts/clusters/agents/graphql/queries/get_cluster_agent.query.graphql b/app/assets/javascripts/clusters/agents/graphql/queries/get_cluster_agent.query.graphql index 3610662afc0..d7a8e447071 100644 --- a/app/assets/javascripts/clusters/agents/graphql/queries/get_cluster_agent.query.graphql +++ b/app/assets/javascripts/clusters/agents/graphql/queries/get_cluster_agent.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/cluster_agent_token.fragment.graphql" query getClusterAgent( diff --git a/app/assets/javascripts/clusters_list/graphql/queries/get_agents.query.graphql b/app/assets/javascripts/clusters_list/graphql/queries/get_agents.query.graphql index 7743ffba5de..76920a0aef4 100644 --- a/app/assets/javascripts/clusters_list/graphql/queries/get_agents.query.graphql +++ b/app/assets/javascripts/clusters_list/graphql/queries/get_agents.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/cluster_agent.fragment.graphql" query getAgents( diff --git a/app/assets/javascripts/graphql_shared/fragments/pageInfo.fragment.graphql b/app/assets/javascripts/graphql_shared/fragments/page_info.fragment.graphql similarity index 100% rename from app/assets/javascripts/graphql_shared/fragments/pageInfo.fragment.graphql rename to app/assets/javascripts/graphql_shared/fragments/page_info.fragment.graphql diff --git a/app/assets/javascripts/graphql_shared/fragments/pageInfoCursorsOnly.fragment.graphql b/app/assets/javascripts/graphql_shared/fragments/page_info_cursors_only.fragment.graphql similarity index 100% rename from app/assets/javascripts/graphql_shared/fragments/pageInfoCursorsOnly.fragment.graphql rename to app/assets/javascripts/graphql_shared/fragments/page_info_cursors_only.fragment.graphql diff --git a/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql b/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql index 58b7b4c898d..b59bd781537 100644 --- a/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql +++ b/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" +#import "~/graphql_shared/fragments/page_info.fragment.graphql" query getProjects( $search: String! diff --git a/app/assets/javascripts/header_search/components/app.vue b/app/assets/javascripts/header_search/components/app.vue index 36fc48a2ba8..4b9a87619aa 100644 --- a/app/assets/javascripts/header_search/components/app.vue +++ b/app/assets/javascripts/header_search/components/app.vue @@ -11,6 +11,7 @@ import { SEARCH_BOX_INDEX, SEARCH_INPUT_DESCRIPTION, SEARCH_RESULTS_DESCRIPTION, + SEARCH_SHORTCUTS_MIN_CHARACTERS, } from '../constants'; import HeaderSearchAutocompleteItems from './header_search_autocomplete_items.vue'; import HeaderSearchDefaultItems from './header_search_default_items.vue'; @@ -50,7 +51,7 @@ export default { }, computed: { ...mapState(['search', 'loading']), - ...mapGetters(['searchQuery', 'searchOptions']), + ...mapGetters(['searchQuery', 'searchOptions', 'autocompleteGroupedSearchOptions']), searchText: { get() { return this.search; @@ -66,14 +67,20 @@ export default { return this.currentFocusedOption?.html_id; }, isLoggedIn() { - return gon?.current_username; + return Boolean(gon?.current_username); }, showSearchDropdown() { - return this.showDropdown && this.isLoggedIn; + const hasResultsUnderMinCharacters = + this.searchText?.length === 1 ? this?.autocompleteGroupedSearchOptions?.length > 0 : true; + + return this.showDropdown && this.isLoggedIn && hasResultsUnderMinCharacters; }, showDefaultItems() { return !this.searchText; }, + showShortcuts() { + return this.searchText && this.searchText?.length >= SEARCH_SHORTCUTS_MIN_CHARACTERS; + }, defaultIndex() { if (this.showDefaultItems) { return SEARCH_BOX_INDEX; @@ -182,7 +189,10 @@ export default { :current-focused-option="currentFocusedOption" /> diff --git a/app/assets/javascripts/header_search/components/header_search_autocomplete_items.vue b/app/assets/javascripts/header_search/components/header_search_autocomplete_items.vue index c0e2c18bece..11b4f681b63 100644 --- a/app/assets/javascripts/header_search/components/header_search_autocomplete_items.vue +++ b/app/assets/javascripts/header_search/components/header_search_autocomplete_items.vue @@ -72,8 +72,8 @@ export default { diff --git a/app/assets/javascripts/snippets/components/snippet_header.vue b/app/assets/javascripts/snippets/components/snippet_header.vue index 9b24c8afe37..dd8f2897018 100644 --- a/app/assets/javascripts/snippets/components/snippet_header.vue +++ b/app/assets/javascripts/snippets/components/snippet_header.vue @@ -21,7 +21,7 @@ import { __, s__, sprintf } from '~/locale'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import createFlash, { FLASH_TYPES } from '~/flash'; -import DeleteSnippetMutation from '../mutations/deleteSnippet.mutation.graphql'; +import DeleteSnippetMutation from '../mutations/delete_snippet.mutation.graphql'; export const i18n = { snippetSpamSuccess: sprintf( @@ -294,9 +294,9 @@ export default { - - {{ errorMessage }} - + {{ + errorMessage + }}