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-07-21 12:10:13 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-07-21 12:10:13 +0300
commitc1cea595b6a9b4d85424e9afd2cb765101ee04bf (patch)
treeb018f6244b8491815f70a7d32ee8087a0f37d1cd /app
parent3aca7e52f313182275fea4576c2e0a30483dedb5 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/deploy_keys/components/app.vue2
-rw-r--r--app/assets/javascripts/deploy_keys/components/key.vue8
-rw-r--r--app/assets/javascripts/search/sidebar/components/confidentiality_filter/data.js (renamed from app/assets/javascripts/search/sidebar/constants/confidential_filter_data.js)0
-rw-r--r--app/assets/javascripts/search/sidebar/components/confidentiality_filter/index.vue (renamed from app/assets/javascripts/search/sidebar/components/confidentiality_filter.vue)7
-rw-r--r--app/assets/javascripts/search/sidebar/components/issues_filters.vue15
-rw-r--r--app/assets/javascripts/search/sidebar/components/results_filters.vue10
-rw-r--r--app/assets/javascripts/search/sidebar/components/status_filter.vue25
-rw-r--r--app/assets/javascripts/search/sidebar/components/status_filter/data.js (renamed from app/assets/javascripts/search/sidebar/constants/state_filter_data.js)2
-rw-r--r--app/assets/javascripts/search/sidebar/components/status_filter/index.vue24
-rw-r--r--app/assets/javascripts/search/store/constants.js6
-rw-r--r--app/controllers/jira_connect/app_descriptor_controller.rb7
-rw-r--r--app/controllers/projects/pipeline_schedules_controller.rb24
-rw-r--r--app/graphql/mutations/ci/pipeline_schedule/create.rb32
-rw-r--r--app/services/ci/create_pipeline_schedule_service.rb16
-rw-r--r--app/views/search/show.html.haml2
-rw-r--r--app/views/shared/deploy_keys/_form.html.haml4
-rw-r--r--app/views/shared/deploy_keys/_index.html.haml2
-rw-r--r--app/views/shared/deploy_keys/_project_group_form.html.haml8
18 files changed, 76 insertions, 118 deletions
diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue
index 5fc15578827..4860215d8f2 100644
--- a/app/assets/javascripts/deploy_keys/components/app.vue
+++ b/app/assets/javascripts/deploy_keys/components/app.vue
@@ -155,7 +155,7 @@ export default {
:keys="keys[currentTab]"
:store="store"
:endpoint="endpoint"
- data-qa-selector="project_deploy_keys_container"
+ data-testid="project-deploy-keys-container"
/>
</template>
</div>
diff --git a/app/assets/javascripts/deploy_keys/components/key.vue b/app/assets/javascripts/deploy_keys/components/key.vue
index 94f27dbf048..d35cf35d624 100644
--- a/app/assets/javascripts/deploy_keys/components/key.vue
+++ b/app/assets/javascripts/deploy_keys/components/key.vue
@@ -113,18 +113,18 @@ export default {
<div class="gl-responsive-table-row deploy-key">
<div class="table-section section-40">
<div role="rowheader" class="table-mobile-header">{{ s__('DeployKeys|Deploy key') }}</div>
- <div class="table-mobile-content" data-qa-selector="key_container">
- <strong class="title" data-qa-selector="key_title_content"> {{ deployKey.title }} </strong>
+ <div class="table-mobile-content" data-testid="key-container">
+ <strong class="title" data-testid="key-title-content"> {{ deployKey.title }} </strong>
<dl>
<dt>{{ __('SHA256') }}</dt>
- <dd class="fingerprint" data-qa-selector="key_sha256_fingerprint_content">
+ <dd class="fingerprint" data-testid="key-sha256-fingerprint-content">
{{ deployKey.fingerprint_sha256 }}
</dd>
<template v-if="deployKey.fingerprint">
<dt>
{{ __('MD5') }}
</dt>
- <dd class="fingerprint" data-qa-selector="key_md5_fingerprint_content">
+ <dd class="fingerprint" data-testid="key-md5-fingerprint-content">
{{ deployKey.fingerprint }}
</dd>
</template>
diff --git a/app/assets/javascripts/search/sidebar/constants/confidential_filter_data.js b/app/assets/javascripts/search/sidebar/components/confidentiality_filter/data.js
index ecb63ed9eea..ecb63ed9eea 100644
--- a/app/assets/javascripts/search/sidebar/constants/confidential_filter_data.js
+++ b/app/assets/javascripts/search/sidebar/components/confidentiality_filter/data.js
diff --git a/app/assets/javascripts/search/sidebar/components/confidentiality_filter.vue b/app/assets/javascripts/search/sidebar/components/confidentiality_filter/index.vue
index 2a7988cd4c6..7909aa9234b 100644
--- a/app/assets/javascripts/search/sidebar/components/confidentiality_filter.vue
+++ b/app/assets/javascripts/search/sidebar/components/confidentiality_filter/index.vue
@@ -1,8 +1,8 @@
<script>
import { mapState } from 'vuex';
-import { confidentialFilterData } from '../constants/confidential_filter_data';
-import { HR_DEFAULT_CLASSES } from '../constants';
-import RadioFilter from './radio_filter.vue';
+import { HR_DEFAULT_CLASSES } from '../../constants';
+import RadioFilter from '../radio_filter.vue';
+import { confidentialFilterData } from './data';
export default {
name: 'ConfidentialityFilter',
@@ -20,6 +20,5 @@ export default {
<template>
<div>
<radio-filter :filter-data="$options.confidentialFilterData" />
- <hr v-if="!useNewNavigation" :class="$options.HR_DEFAULT_CLASSES" />
</div>
</template>
diff --git a/app/assets/javascripts/search/sidebar/components/issues_filters.vue b/app/assets/javascripts/search/sidebar/components/issues_filters.vue
index 8928f80d83a..3eb025327a2 100644
--- a/app/assets/javascripts/search/sidebar/components/issues_filters.vue
+++ b/app/assets/javascripts/search/sidebar/components/issues_filters.vue
@@ -10,12 +10,12 @@ import {
TRACKING_CATEGORY,
TRACKING_LABEL_RESET,
} from '../constants/index';
-import { confidentialFilterData } from '../constants/confidential_filter_data';
-import { stateFilterData } from '../constants/state_filter_data';
-import ConfidentialityFilter from './confidentiality_filter.vue';
+import { confidentialFilterData } from './confidentiality_filter/data';
+import { statusFilterData } from './status_filter/data';
+import ConfidentialityFilter from './confidentiality_filter/index.vue';
import { labelFilterData } from './label_filter/data';
import LabelFilter from './label_filter/index.vue';
-import StatusFilter from './status_filter.vue';
+import StatusFilter from './status_filter/index.vue';
export default {
name: 'IssuesFilters',
@@ -37,7 +37,7 @@ export default {
return Object.values(confidentialFilterData.scopes).includes(this.currentScope);
},
showStatusFilter() {
- return Object.values(stateFilterData.scopes).includes(this.currentScope);
+ return Object.values(statusFilterData.scopes).includes(this.currentScope);
},
showLabelFilter() {
return (
@@ -71,7 +71,12 @@ export default {
<form class="issue-filters gl-px-5 gl-pt-0" @submit.prevent="applyQueryWithTracking">
<hr v-if="!useNewNavigation" :class="hrClasses" />
<status-filter v-if="showStatusFilter" class="gl-mb-5" />
+ <hr v-if="!useNewNavigation" :class="hrClasses" />
<confidentiality-filter v-if="showConfidentialityFilter" class="gl-mb-5" />
+ <hr
+ v-if="!useNewNavigation && showConfidentialityFilter && showLabelFilter"
+ :class="hrClasses"
+ />
<label-filter v-if="showLabelFilter" />
<div class="gl-display-flex gl-align-items-center gl-mt-4">
<gl-button category="primary" variant="confirm" type="submit" :disabled="!sidebarDirty">
diff --git a/app/assets/javascripts/search/sidebar/components/results_filters.vue b/app/assets/javascripts/search/sidebar/components/results_filters.vue
index 24804baef44..a9addb87f7b 100644
--- a/app/assets/javascripts/search/sidebar/components/results_filters.vue
+++ b/app/assets/javascripts/search/sidebar/components/results_filters.vue
@@ -2,10 +2,10 @@
import { GlButton, GlLink } from '@gitlab/ui';
import { mapActions, mapState, mapGetters } from 'vuex';
import { HR_DEFAULT_CLASSES } from '../constants/index';
-import { confidentialFilterData } from '../constants/confidential_filter_data';
-import { stateFilterData } from '../constants/state_filter_data';
-import ConfidentialityFilter from './confidentiality_filter.vue';
-import StatusFilter from './status_filter.vue';
+import { confidentialFilterData } from './confidentiality_filter/data';
+import { statusFilterData } from './status_filter/data';
+import ConfidentialityFilter from './confidentiality_filter/index.vue';
+import StatusFilter from './status_filter/index.vue';
export default {
name: 'ResultsFilters',
@@ -25,7 +25,7 @@ export default {
return Object.values(confidentialFilterData.scopes).includes(this.currentScope);
},
showStatusFilter() {
- return Object.values(stateFilterData.scopes).includes(this.currentScope);
+ return Object.values(statusFilterData.scopes).includes(this.currentScope);
},
hrClasses() {
return [...HR_DEFAULT_CLASSES, 'gl-display-none', 'gl-md-display-block'];
diff --git a/app/assets/javascripts/search/sidebar/components/status_filter.vue b/app/assets/javascripts/search/sidebar/components/status_filter.vue
deleted file mode 100644
index 2a3d9ede982..00000000000
--- a/app/assets/javascripts/search/sidebar/components/status_filter.vue
+++ /dev/null
@@ -1,25 +0,0 @@
-<script>
-import { mapState } from 'vuex';
-import { stateFilterData } from '../constants/state_filter_data';
-import { HR_DEFAULT_CLASSES } from '../constants';
-import RadioFilter from './radio_filter.vue';
-
-export default {
- name: 'StatusFilter',
- components: {
- RadioFilter,
- },
- computed: {
- ...mapState(['useNewNavigation']),
- },
- stateFilterData,
- HR_DEFAULT_CLASSES,
-};
-</script>
-
-<template>
- <div>
- <radio-filter :filter-data="$options.stateFilterData" />
- <hr v-if="!useNewNavigation" :class="$options.HR_DEFAULT_CLASSES" />
- </div>
-</template>
diff --git a/app/assets/javascripts/search/sidebar/constants/state_filter_data.js b/app/assets/javascripts/search/sidebar/components/status_filter/data.js
index 2f9f8a7cb46..1e3cd59214b 100644
--- a/app/assets/javascripts/search/sidebar/constants/state_filter_data.js
+++ b/app/assets/javascripts/search/sidebar/components/status_filter/data.js
@@ -33,7 +33,7 @@ const filterByScope = {
const filterParam = 'state';
-export const stateFilterData = {
+export const statusFilterData = {
header,
filters,
scopes,
diff --git a/app/assets/javascripts/search/sidebar/components/status_filter/index.vue b/app/assets/javascripts/search/sidebar/components/status_filter/index.vue
new file mode 100644
index 00000000000..494d75db6ce
--- /dev/null
+++ b/app/assets/javascripts/search/sidebar/components/status_filter/index.vue
@@ -0,0 +1,24 @@
+<script>
+import { mapState } from 'vuex';
+import { HR_DEFAULT_CLASSES } from '../../constants';
+import RadioFilter from '../radio_filter.vue';
+import { statusFilterData } from './data';
+
+export default {
+ name: 'StatusFilter',
+ components: {
+ RadioFilter,
+ },
+ computed: {
+ ...mapState(['useNewNavigation']),
+ },
+ statusFilterData,
+ HR_DEFAULT_CLASSES,
+};
+</script>
+
+<template>
+ <div>
+ <radio-filter :filter-data="$options.statusFilterData" />
+ </div>
+</template>
diff --git a/app/assets/javascripts/search/store/constants.js b/app/assets/javascripts/search/store/constants.js
index bb112c122ae..311aa599e68 100644
--- a/app/assets/javascripts/search/store/constants.js
+++ b/app/assets/javascripts/search/store/constants.js
@@ -1,5 +1,5 @@
-import { stateFilterData } from '~/search/sidebar/constants/state_filter_data';
-import { confidentialFilterData } from '~/search/sidebar/constants/confidential_filter_data';
+import { statusFilterData } from '~/search/sidebar/components/status_filter/data';
+import { confidentialFilterData } from '~/search/sidebar/components/confidentiality_filter/data';
import { languageFilterData } from '~/search/sidebar/components/language_filter/data';
import { labelFilterData } from '~/search/sidebar/components/label_filter/data';
@@ -12,7 +12,7 @@ export const GROUPS_LOCAL_STORAGE_KEY = 'global-search-frequent-groups';
export const PROJECTS_LOCAL_STORAGE_KEY = 'global-search-frequent-projects';
export const SIDEBAR_PARAMS = [
- stateFilterData.filterParam,
+ statusFilterData.filterParam,
confidentialFilterData.filterParam,
languageFilterData.filterParam,
labelFilterData.filterParam,
diff --git a/app/controllers/jira_connect/app_descriptor_controller.rb b/app/controllers/jira_connect/app_descriptor_controller.rb
index 2c498820a1e..3c50d54fa10 100644
--- a/app/controllers/jira_connect/app_descriptor_controller.rb
+++ b/app/controllers/jira_connect/app_descriptor_controller.rb
@@ -8,7 +8,7 @@ class JiraConnect::AppDescriptorController < JiraConnect::ApplicationController
skip_before_action :verify_atlassian_jwt!
def show
- result = {
+ render json: {
name: Atlassian::JiraConnect.app_name,
description: 'Integrate commits, branches and merge requests from GitLab into Jira',
key: Atlassian::JiraConnect.app_key,
@@ -36,15 +36,10 @@ class JiraConnect::AppDescriptorController < JiraConnect::ApplicationController
gdpr: true
}
}
-
- result[:links][:feedback] = URI.join(HOME_URL, FEEDBACK_URL) if Feature.enabled?(:jira_for_cloud_app_feedback_link)
-
- render json: result
end
private
- FEEDBACK_URL = '/gitlab-org/gitlab/-/issues/413652'
HOME_URL = 'https://gitlab.com'
DOC_URL = 'https://docs.gitlab.com/ee/integration/jira/'
diff --git a/app/controllers/projects/pipeline_schedules_controller.rb b/app/controllers/projects/pipeline_schedules_controller.rb
index 4fd307b5105..7d69f3459fb 100644
--- a/app/controllers/projects/pipeline_schedules_controller.rb
+++ b/app/controllers/projects/pipeline_schedules_controller.rb
@@ -25,25 +25,13 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController
end
def create
- if ::Feature.enabled?(:ci_refactoring_pipeline_schedule_create_service, @project)
- response = Ci::PipelineSchedules::CreateService.new(@project, current_user, schedule_params).execute
- @schedule = response.payload
-
- if response.success?
- redirect_to pipeline_schedules_path(@project)
- else
- render :new
- end
+ response = Ci::PipelineSchedules::CreateService.new(@project, current_user, schedule_params).execute
+ @schedule = response.payload
+
+ if response.success?
+ redirect_to pipeline_schedules_path(@project)
else
- @schedule = Ci::CreatePipelineScheduleService
- .new(@project, current_user, schedule_params)
- .execute
-
- if @schedule.persisted?
- redirect_to pipeline_schedules_path(@project)
- else
- render :new
- end
+ render :new
end
end
diff --git a/app/graphql/mutations/ci/pipeline_schedule/create.rb b/app/graphql/mutations/ci/pipeline_schedule/create.rb
index 71a366ed342..d21ac6fd727 100644
--- a/app/graphql/mutations/ci/pipeline_schedule/create.rb
+++ b/app/graphql/mutations/ci/pipeline_schedule/create.rb
@@ -51,28 +51,16 @@ module Mutations
params = pipeline_schedule_attrs.merge(variables_attributes: variables.map(&:to_h))
- if ::Feature.enabled?(:ci_refactoring_pipeline_schedule_create_service, project)
- response = ::Ci::PipelineSchedules::CreateService
- .new(project, current_user, params)
- .execute
-
- schedule = response.payload
-
- unless response.success?
- return {
- pipeline_schedule: nil, errors: response.errors
- }
- end
- else
- schedule = ::Ci::CreatePipelineScheduleService
- .new(project, current_user, params)
- .execute
-
- unless schedule.persisted?
- return {
- pipeline_schedule: nil, errors: schedule.errors.full_messages
- }
- end
+ response = ::Ci::PipelineSchedules::CreateService
+ .new(project, current_user, params)
+ .execute
+
+ schedule = response.payload
+
+ unless response.success?
+ return {
+ pipeline_schedule: nil, errors: response.errors
+ }
end
{
diff --git a/app/services/ci/create_pipeline_schedule_service.rb b/app/services/ci/create_pipeline_schedule_service.rb
deleted file mode 100644
index 4fdd65bcdb4..00000000000
--- a/app/services/ci/create_pipeline_schedule_service.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-# frozen_string_literal: true
-
-module Ci
- # This class is deprecated and will be removed with the FF ci_refactoring_pipeline_schedule_create_service
- class CreatePipelineScheduleService < BaseService
- def execute
- project.pipeline_schedules.create(pipeline_schedule_params)
- end
-
- private
-
- def pipeline_schedule_params
- params.merge(owner: current_user)
- end
- end
-end
diff --git a/app/views/search/show.html.haml b/app/views/search/show.html.haml
index 934f59ea586..16ca829a6d4 100644
--- a/app/views/search/show.html.haml
+++ b/app/views/search/show.html.haml
@@ -8,7 +8,7 @@
= hidden_field_tag :project_id, params[:project_id]
- group_attributes = @group&.attributes&.slice('id', 'name')&.merge(full_name: @group&.full_name)
- project_attributes = @project&.attributes&.slice('id', 'namespace_id', 'name')&.merge(name_with_namespace: @project&.name_with_namespace)
-- search_bar_classes = 'search-sidebar gl-display-flex gl-flex-direction-column gl-mr-4'
+- search_bar_classes = !show_super_sidebar? ? 'search-sidebar gl-display-flex gl-flex-direction-column gl-mr-4' : ''
- if @search_results && !(@search_results.respond_to?(:failed?) && @search_results.failed?)
- if @search_service_presenter.without_count?
diff --git a/app/views/shared/deploy_keys/_form.html.haml b/app/views/shared/deploy_keys/_form.html.haml
index 584d0758c76..280362a12a9 100644
--- a/app/views/shared/deploy_keys/_form.html.haml
+++ b/app/views/shared/deploy_keys/_form.html.haml
@@ -6,7 +6,7 @@
.form-group
= form.label :title, class: 'col-form-label col-sm-2'
- .col-sm-10= form.text_field :title, class: 'form-control gl-form-input', data: { qa_selector: 'deploy_key_title_field' }, readonly: ('readonly' unless can?(current_user, :update_deploy_key, deploy_key))
+ .col-sm-10= form.text_field :title, class: 'form-control gl-form-input', data: { testid: 'deploy-key-title-field' }, readonly: ('readonly' unless can?(current_user, :update_deploy_key, deploy_key))
.form-group
- if deploy_key.new_record?
@@ -16,7 +16,7 @@
- link_start = "<a href='#{help_page_path('user/ssh')}' target='_blank' rel='noreferrer noopener'>".html_safe
- link_end = '</a>'
= _('Paste a public key here. %{link_start}How do I generate it?%{link_end}').html_safe % { link_start: link_start, link_end: link_end.html_safe }
- = form.text_area :key, class: 'form-control gl-form-input thin_area', rows: 5, data: { qa_selector: 'deploy_key_field' }
+ = form.text_area :key, class: 'form-control gl-form-input thin_area', rows: 5, data: { testid: 'deploy-key-field' }
- else
- if deploy_key.fingerprint_sha256.present?
= form.label :fingerprint, _('Fingerprint (SHA256)'), class: 'col-form-label col-sm-2'
diff --git a/app/views/shared/deploy_keys/_index.html.haml b/app/views/shared/deploy_keys/_index.html.haml
index 1cd2a590653..32720d0353b 100644
--- a/app/views/shared/deploy_keys/_index.html.haml
+++ b/app/views/shared/deploy_keys/_index.html.haml
@@ -1,5 +1,5 @@
- expanded = expanded_by_default?
-%section.rspec-deploy-keys-settings.settings.no-animate#js-deploy-keys-settings{ class: ('expanded' if expanded), data: { qa_selector: 'deploy_keys_settings_content' } }
+%section.rspec-deploy-keys-settings.settings.no-animate#js-deploy-keys-settings{ class: ('expanded' if expanded), data: { testid: 'deploy-keys-settings-content' } }
.settings-header
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only= _('Deploy keys')
= render Pajamas::ButtonComponent.new(button_options: { class: 'js-settings-toggle' }) do
diff --git a/app/views/shared/deploy_keys/_project_group_form.html.haml b/app/views/shared/deploy_keys/_project_group_form.html.haml
index c9e17b18264..2f90345ed12 100644
--- a/app/views/shared/deploy_keys/_project_group_form.html.haml
+++ b/app/views/shared/deploy_keys/_project_group_form.html.haml
@@ -2,10 +2,10 @@
= form_errors(@deploy_keys.new_key)
.form-group.row
= f.label :title, class: "label-bold"
- = f.text_field :title, class: 'form-control gl-form-input', required: true, data: { qa_selector: 'deploy_key_title_field' }
+ = f.text_field :title, class: 'form-control gl-form-input', required: true, data: { testid: 'deploy-key-title-field' }
.form-group.row
= f.label :key, class: "label-bold"
- = f.text_area :key, class: 'form-control gl-form-input', rows: 5, required: true, data: { qa_selector: 'deploy_key_field' }
+ = f.text_area :key, class: 'form-control gl-form-input', rows: 5, required: true, data: { testid: 'deploy-key-field' }
.form-group.row
%p.light.gl-mb-0
= _('Paste a public key here.')
@@ -17,8 +17,8 @@
help_text: _('Allow this key to push to this repository')
.form-group.row
= f.label :expires_at, _('Expiration date (optional)'), class: 'label-bold'
- = f.gitlab_ui_datepicker :expires_at, data: { qa_selector: 'deploy_key_expires_at_field' }, value: f.object.expires_at
+ = f.gitlab_ui_datepicker :expires_at, data: { testid: 'deploy-key-expires-at-field' }, value: f.object.expires_at
%p.form-text.text-muted= ssh_key_expires_field_description
.form-group.row
- = f.submit _("Add key"), data: { qa_selector: "add_deploy_key_button"}, pajamas_button: true
+ = f.submit _("Add key"), data: { testid: "add-deploy-key-button"}, pajamas_button: true