diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-09 06:07:49 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-09 06:07:49 +0000 |
commit | c789d0002c97a00e262be992adfcc0d26b72910e (patch) | |
tree | f292cf7810c5c4b8318c29f6486e20e4a04277c2 /app | |
parent | 38ff3a81189c8323d323946afcf7dad62c84b9aa (diff) | |
download | gitlab-ce-c789d0002c97a00e262be992adfcc0d26b72910e.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
20 files changed, 52 insertions, 63 deletions
diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue index 4466a6a8081..9c79adffdae 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_group_variables.vue @@ -1,12 +1,8 @@ <script> +import { TYPENAME_GROUP } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; -import { - ADD_MUTATION_ACTION, - DELETE_MUTATION_ACTION, - GRAPHQL_GROUP_TYPE, - UPDATE_MUTATION_ACTION, -} from '../constants'; +import { ADD_MUTATION_ACTION, DELETE_MUTATION_ACTION, UPDATE_MUTATION_ACTION } from '../constants'; import getGroupVariables from '../graphql/queries/group_variables.query.graphql'; import addGroupVariable from '../graphql/mutations/group_add_variable.mutation.graphql'; import deleteGroupVariable from '../graphql/mutations/group_delete_variable.mutation.graphql'; @@ -24,7 +20,7 @@ export default { return this.glFeatures.groupScopedCiVariables; }, graphqlId() { - return convertToGraphQLId(GRAPHQL_GROUP_TYPE, this.groupId); + return convertToGraphQLId(TYPENAME_GROUP, this.groupId); }, }, mutationData: { diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue index 6326940148a..43938e9b88f 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_project_variables.vue @@ -1,12 +1,8 @@ <script> +import { TYPENAME_PROJECT } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; -import { - ADD_MUTATION_ACTION, - DELETE_MUTATION_ACTION, - GRAPHQL_PROJECT_TYPE, - UPDATE_MUTATION_ACTION, -} from '../constants'; +import { ADD_MUTATION_ACTION, DELETE_MUTATION_ACTION, UPDATE_MUTATION_ACTION } from '../constants'; import getProjectEnvironments from '../graphql/queries/project_environments.query.graphql'; import getProjectVariables from '../graphql/queries/project_variables.query.graphql'; import addProjectVariable from '../graphql/mutations/project_add_variable.mutation.graphql'; @@ -22,7 +18,7 @@ export default { inject: ['projectFullPath', 'projectId'], computed: { graphqlId() { - return convertToGraphQLId(GRAPHQL_PROJECT_TYPE, this.projectId); + return convertToGraphQLId(TYPENAME_PROJECT, this.projectId); }, }, mutationData: { diff --git a/app/assets/javascripts/ci/ci_variable_list/constants.js b/app/assets/javascripts/ci/ci_variable_list/constants.js index 2e781e3da0c..627ace1b28e 100644 --- a/app/assets/javascripts/ci/ci_variable_list/constants.js +++ b/app/assets/javascripts/ci/ci_variable_list/constants.js @@ -88,9 +88,6 @@ export const ADD_VARIABLE_ACTION = 'ADD_VARIABLE'; export const EDIT_VARIABLE_ACTION = 'EDIT_VARIABLE'; export const VARIABLE_ACTIONS = [ADD_VARIABLE_ACTION, EDIT_VARIABLE_ACTION]; -export const GRAPHQL_PROJECT_TYPE = 'Project'; -export const GRAPHQL_GROUP_TYPE = 'Group'; - export const ADD_MUTATION_ACTION = 'add'; export const UPDATE_MUTATION_ACTION = 'update'; export const DELETE_MUTATION_ACTION = 'delete'; diff --git a/app/assets/javascripts/ci/ci_variable_list/graphql/settings.js b/app/assets/javascripts/ci/ci_variable_list/graphql/settings.js index 10203383ba0..cafe3df35d0 100644 --- a/app/assets/javascripts/ci/ci_variable_list/graphql/settings.js +++ b/app/assets/javascripts/ci/ci_variable_list/graphql/settings.js @@ -3,14 +3,9 @@ import { convertObjectPropsToCamelCase, convertObjectPropsToSnakeCase, } from '~/lib/utils/common_utils'; +import { TYPENAME_CI_VARIABLE, TYPENAME_GROUP, TYPENAME_PROJECT } from '~/graphql_shared/constants'; import { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils'; -import { - GRAPHQL_GROUP_TYPE, - GRAPHQL_PROJECT_TYPE, - groupString, - instanceString, - projectString, -} from '../constants'; +import { groupString, instanceString, projectString } from '../constants'; import getProjectVariables from './queries/project_variables.query.graphql'; import getGroupVariables from './queries/group_variables.query.graphql'; import getAdminVariables from './queries/variables.query.graphql'; @@ -30,7 +25,7 @@ const mapVariableTypes = (variables = [], kind) => { return { __typename: `Ci${kind}Variable`, ...convertObjectPropsToCamelCase(ciVar), - id: convertToGraphQLId('Ci::Variable', ciVar.id), + id: convertToGraphQLId(TYPENAME_CI_VARIABLE, ciVar.id), variableType: ciVar.variable_type ? ciVar.variable_type.toUpperCase() : ciVar.variableType, }; }); @@ -40,10 +35,10 @@ const prepareProjectGraphQLResponse = ({ data, id, errors = [] }) => { return { errors, project: { - __typename: GRAPHQL_PROJECT_TYPE, - id: convertToGraphQLId(GRAPHQL_PROJECT_TYPE, id), + __typename: TYPENAME_PROJECT, + id: convertToGraphQLId(TYPENAME_PROJECT, id), ciVariables: { - __typename: `Ci${GRAPHQL_PROJECT_TYPE}VariableConnection`, + __typename: 'CiProjectVariableConnection', pageInfo: { __typename: 'PageInfo', hasNextPage: false, @@ -61,10 +56,10 @@ const prepareGroupGraphQLResponse = ({ data, id, errors = [] }) => { return { errors, group: { - __typename: GRAPHQL_GROUP_TYPE, - id: convertToGraphQLId(GRAPHQL_GROUP_TYPE, id), + __typename: TYPENAME_GROUP, + id: convertToGraphQLId(TYPENAME_GROUP, id), ciVariables: { - __typename: `Ci${GRAPHQL_GROUP_TYPE}VariableConnection`, + __typename: `CiGroupVariableConnection`, pageInfo: { __typename: 'PageInfo', hasNextPage: false, diff --git a/app/assets/javascripts/graphql_shared/constants.js b/app/assets/javascripts/graphql_shared/constants.js index c187f975073..3c4ca4c197e 100644 --- a/app/assets/javascripts/graphql_shared/constants.js +++ b/app/assets/javascripts/graphql_shared/constants.js @@ -1,7 +1,11 @@ export const MINIMUM_SEARCH_LENGTH = 3; export const TYPENAME_BOARD = 'Board'; +export const TYPENAME_CI_BUILD = 'Ci::Build'; +export const TYPENAME_CI_PIPELINE = 'Ci::Pipeline'; export const TYPENAME_CI_RUNNER = 'Ci::Runner'; +export const TYPENAME_CI_VARIABLE = 'Ci::Variable'; +export const TYPENAME_COMMIT_STATUS = 'CommitStatus'; export const TYPENAME_CRM_CONTACT = 'CustomerRelations::Contact'; export const TYPENAME_CRM_ORGANIZATION = 'CustomerRelations::Organization'; export const TYPENAME_DISCUSSION = 'Discussion'; @@ -19,5 +23,6 @@ export const TYPENAME_PROJECT = 'Project'; export const TYPENAME_SCANNER_PROFILE = 'DastScannerProfile'; export const TYPENAME_SITE_PROFILE = 'DastSiteProfile'; export const TYPENAME_USER = 'User'; +export const TYPENAME_VULNERABILITIES_SCANNER = 'Vulnerabilities::Scanner'; export const TYPENAME_VULNERABILITY = 'Vulnerability'; export const TYPENAME_WORK_ITEM = 'WorkItem'; diff --git a/app/assets/javascripts/jobs/components/job/manual_variables_form.vue b/app/assets/javascripts/jobs/components/job/manual_variables_form.vue index 734d3ca0d49..d079e91a4d0 100644 --- a/app/assets/javascripts/jobs/components/job/manual_variables_form.vue +++ b/app/assets/javascripts/jobs/components/job/manual_variables_form.vue @@ -13,8 +13,9 @@ import { cloneDeep, uniqueId } from 'lodash'; import { mapActions } from 'vuex'; import { fetchPolicies } from '~/lib/graphql'; import { createAlert } from '~/flash'; +import { TYPENAME_CI_BUILD, TYPENAME_COMMIT_STATUS } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; -import { JOB_GRAPHQL_ERRORS, GRAPHQL_ID_TYPES } from '~/jobs/constants'; +import { JOB_GRAPHQL_ERRORS } from '~/jobs/constants'; import { helpPagePath } from '~/helpers/help_page_helper'; import { redirectTo } from '~/lib/utils/url_utility'; import { s__ } from '~/locale'; @@ -45,7 +46,7 @@ export default { variables() { return { fullPath: this.projectPath, - id: convertToGraphQLId(GRAPHQL_ID_TYPES.commitStatus, this.jobId), + id: convertToGraphQLId(TYPENAME_COMMIT_STATUS, this.jobId), }; }, fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, @@ -157,7 +158,7 @@ export default { const { data } = await this.$apollo.mutate({ mutation: retryJobWithVariablesMutation, variables: { - id: convertToGraphQLId(GRAPHQL_ID_TYPES.ciBuild, this.jobId), + id: convertToGraphQLId(TYPENAME_CI_BUILD, this.jobId), // we need to ensure no empty variables are passed to the API variables: this.preparedVariables, }, diff --git a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_header.vue b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_header.vue index 40aec0b0536..8100bc2d87a 100644 --- a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_header.vue +++ b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_header.vue @@ -2,11 +2,11 @@ import { GlButton, GlTooltipDirective } from '@gitlab/ui'; import { mapActions } from 'vuex'; import { createAlert } from '~/flash'; +import { TYPENAME_COMMIT_STATUS } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue'; import { JOB_GRAPHQL_ERRORS, - GRAPHQL_ID_TYPES, JOB_SIDEBAR_COPY, forwardDeploymentFailureModalId, PASSED_STATUS, @@ -35,7 +35,7 @@ export default { variables() { return { fullPath: this.projectPath, - id: convertToGraphQLId(GRAPHQL_ID_TYPES.commitStatus, this.jobId), + id: convertToGraphQLId(TYPENAME_COMMIT_STATUS, this.jobId), }; }, update(data) { diff --git a/app/assets/javascripts/jobs/constants.js b/app/assets/javascripts/jobs/constants.js index 57f0caa06ac..027d896ba0e 100644 --- a/app/assets/javascripts/jobs/constants.js +++ b/app/assets/javascripts/jobs/constants.js @@ -5,11 +5,6 @@ const moreInfo = __('More information'); export const forwardDeploymentFailureModalId = 'forward-deployment-failure'; -export const GRAPHQL_ID_TYPES = { - commitStatus: 'CommitStatus', - ciBuild: 'Ci::Build', -}; - export const JOB_SIDEBAR_COPY = { cancel, cancelJobButtonLabel: s__('Job|Cancel'), diff --git a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue index 607f5c2af86..8f0efd5e74f 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue @@ -11,6 +11,7 @@ import { GlSprintf, } from '@gitlab/ui'; import { createAlert, VARIANT_SUCCESS, VARIANT_WARNING } from '~/flash'; +import { TYPENAME_PACKAGES_PACKAGE } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import { numberToHumanSize } from '~/lib/utils/number_utils'; import { objectToQuery } from '~/lib/utils/url_utility'; @@ -132,7 +133,7 @@ export default { }, queryVariables() { return { - id: convertToGraphQLId('Packages::Package', this.packageId), + id: convertToGraphQLId(TYPENAME_PACKAGES_PACKAGE, this.packageId), first: GRAPHQL_PAGE_SIZE, }; }, diff --git a/app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue b/app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue index 225706265c3..9b4e5d471d6 100644 --- a/app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue +++ b/app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue @@ -7,13 +7,13 @@ import { GlTooltip, GlTooltipDirective, } from '@gitlab/ui'; +import { TYPENAME_CI_PIPELINE } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants'; import { __, sprintf } from '~/locale'; import CancelPipelineMutation from '~/pipelines/graphql/mutations/cancel_pipeline.mutation.graphql'; import RetryPipelineMutation from '~/pipelines/graphql/mutations/retry_pipeline.mutation.graphql'; import CiStatus from '~/vue_shared/components/ci_icon.vue'; -import { PIPELINE_GRAPHQL_TYPE } from '../../constants'; import { reportToSentry } from '../../utils'; import { ACTION_FAILURE, DOWNSTREAM, UPSTREAM } from './constants'; @@ -118,7 +118,7 @@ export default { return this.isUpstream ? 'gl-flex-direction-row-reverse' : 'gl-flex-direction-row'; }, graphqlPipelineId() { - return convertToGraphQLId(PIPELINE_GRAPHQL_TYPE, this.pipeline.id); + return convertToGraphQLId(TYPENAME_CI_PIPELINE, this.pipeline.id); }, hasUpdatePipelinePermissions() { return Boolean(this.pipeline?.userPermissions?.updatePipeline); diff --git a/app/assets/javascripts/pipelines/constants.js b/app/assets/javascripts/pipelines/constants.js index 2f37f90e625..820501089ed 100644 --- a/app/assets/javascripts/pipelines/constants.js +++ b/app/assets/javascripts/pipelines/constants.js @@ -9,7 +9,6 @@ export const FILTER_TAG_IDENTIFIER = 'tag'; export const SCHEDULE_ORIGIN = 'schedule'; export const NEEDS_PROPERTY = 'needs'; export const EXPLICIT_NEEDS_PROPERTY = 'previousStageJobsOrNeeds'; -export const PIPELINE_GRAPHQL_TYPE = 'Ci::Pipeline'; export const ICONS = { TAG: 'tag', diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue index 77151ab4307..bb8990a48b1 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue @@ -15,6 +15,7 @@ import { isEmpty } from 'lodash'; import readyToMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/ready_to_merge'; import readyToMergeQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/ready_to_merge.query.graphql'; import { createAlert } from '~/flash'; +import { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants'; import { secondsToMilliseconds } from '~/lib/utils/datetime_utility'; import simplePoll from '~/lib/utils/simple_poll'; import { __, s__, n__ } from '~/locale'; @@ -98,7 +99,7 @@ export default { }, variables() { return { - issuableId: convertToGraphQLId('MergeRequest', this.mr?.id), + issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr?.id), }; }, updateQuery( diff --git a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue index 00024a594dc..ecbee6544ab 100644 --- a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue +++ b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue @@ -15,8 +15,9 @@ import notify from '~/lib/utils/notify'; import { sprintf, s__, __ } from '~/locale'; import Project from '~/pages/projects/project'; import SmartInterval from '~/smart_interval'; +import { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; -import { setFaviconOverlay } from '../lib/utils/favicon'; +import { setFaviconOverlay } from '~/lib/utils/favicon'; import Loading from './components/loading.vue'; import MrWidgetAlertMessage from './components/mr_widget_alert_message.vue'; import MrWidgetPipelineContainer from './components/mr_widget_pipeline_container.vue'; @@ -120,7 +121,7 @@ export default { }, variables() { return { - issuableId: convertToGraphQLId('MergeRequest', this.mr?.id), + issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr?.id), }; }, updateQuery( diff --git a/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue b/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue index 3c73f42b6b1..634b7da3def 100644 --- a/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue +++ b/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue @@ -34,7 +34,7 @@ export default { <template> <li :id="noteAnchorId" class="timeline-entry note system-note note-wrapper gl-p-0!"> - <div class="gl-display-inline-flex gl-align-items-center"> + <div class="gl-display-inline-flex gl-align-items-center gl-relative"> <div class="gl-display-inline gl-bg-white gl-text-gray-200 gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-full gl-box-sizing-content-box gl-p-3 gl-mt-n2 gl-mr-6" > diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_contact_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_contact_token.vue index e0fa06c159e..c8aeac75645 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_contact_token.vue +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_contact_token.vue @@ -2,6 +2,7 @@ import { GlFilteredSearchSuggestion } from '@gitlab/ui'; import { ITEM_TYPE } from '~/groups/constants'; +import { TYPENAME_CRM_CONTACT } from '~/graphql_shared/constants'; import { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils'; import { createAlert } from '~/flash'; import { isPositiveInteger } from '~/lib/utils/number_utils'; @@ -93,7 +94,7 @@ export default { return `${getIdFromGraphQLId(contact.id)}`; }, formatContactGraphQLId(id) { - return convertToGraphQLId('CustomerRelations::Contact', id); + return convertToGraphQLId(TYPENAME_CRM_CONTACT, id); }, }, }; diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_organization_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_organization_token.vue index 3f030c8698c..ff0571031b5 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_organization_token.vue +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_organization_token.vue @@ -2,6 +2,7 @@ import { GlFilteredSearchSuggestion } from '@gitlab/ui'; import { ITEM_TYPE } from '~/groups/constants'; +import { TYPENAME_CRM_ORGANIZATION } from '~/graphql_shared/constants'; import { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils'; import { createAlert } from '~/flash'; import { isPositiveInteger } from '~/lib/utils/number_utils'; @@ -90,7 +91,7 @@ export default { return `${getIdFromGraphQLId(organization.id)}`; }, formatOrganizationGraphQLId(id) { - return convertToGraphQLId('CustomerRelations::Organization', id); + return convertToGraphQLId(TYPENAME_CRM_ORGANIZATION, id); }, }, }; diff --git a/app/assets/javascripts/vue_shared/components/user_select/user_select.vue b/app/assets/javascripts/vue_shared/components/user_select/user_select.vue index 0c8cd7fd95c..3db48bf9cfb 100644 --- a/app/assets/javascripts/vue_shared/components/user_select/user_select.vue +++ b/app/assets/javascripts/vue_shared/components/user_select/user_select.vue @@ -14,6 +14,7 @@ import SidebarParticipant from '~/sidebar/components/assignees/sidebar_participa import { IssuableType } from '~/issues/constants'; import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants'; import { participantsQueries, userSearchQueries } from '~/sidebar/constants'; +import { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; export default { @@ -161,7 +162,7 @@ export default { } return { ...variables, - mergeRequestId: convertToGraphQLId('MergeRequest', this.issuableId), + mergeRequestId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.issuableId), }; }, isLoading() { diff --git a/app/finders/projects_finder.rb b/app/finders/projects_finder.rb index 7226a4c0d82..401bc473216 100644 --- a/app/finders/projects_finder.rb +++ b/app/finders/projects_finder.rb @@ -236,7 +236,7 @@ class ProjectsFinder < UnionFinder end def by_language(items) - if Feature.enabled?(:project_language_search, current_user) && params[:language].present? + if params[:language].present? items.with_programming_language_id(params[:language]) else items diff --git a/app/helpers/explore_helper.rb b/app/helpers/explore_helper.rb index 721126a4f14..2967501f628 100644 --- a/app/helpers/explore_helper.rb +++ b/app/helpers/explore_helper.rb @@ -15,7 +15,7 @@ module ExploreHelper namespace_id: params[:namespace_id] } - exist_opts[:language] = params[:language] if Feature.enabled?(:project_language_search, current_user) + exist_opts[:language] = params[:language] options = exist_opts.merge(options).delete_if { |key, value| value.blank? } request_path_with_options(options) diff --git a/app/views/shared/projects/_search_form.html.haml b/app/views/shared/projects/_search_form.html.haml index 10b6b9e8f27..47e0e165276 100644 --- a/app/views/shared/projects/_search_form.html.haml +++ b/app/views/shared/projects/_search_form.html.haml @@ -28,16 +28,15 @@ - if params[:language].present? = hidden_field_tag :language, params[:language] - - if Feature.enabled?(:project_language_search, current_user) - .dropdown{ class: 'gl-m-0!' } - = dropdown_toggle(search_language_placeholder, { toggle: 'dropdown', testid: 'project-language-dropdown' }) - %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable + .dropdown{ class: 'gl-m-0!' } + = dropdown_toggle(search_language_placeholder, { toggle: 'dropdown', testid: 'project-language-dropdown' }) + %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable + %li + = link_to _('Any'), filter_projects_path(language: nil, name: nil) + - programming_languages.each do |language| %li - = link_to _('Any'), filter_projects_path(language: nil, name: nil) - - programming_languages.each do |language| - %li - = link_to filter_projects_path(language: language.id, name: nil), class: language_state_class(language) do - = language.name + = link_to filter_projects_path(language: language.id, name: nil), class: language_state_class(language) do + = language.name = submit_tag nil, class: 'gl-display-none!' |