diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-09 00:07:12 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-09 00:07:12 +0300 |
commit | 58cad9b83fc4b319542586e2cab64e2fe7d12050 (patch) | |
tree | a5f94021664861ff5fdcbcfabc045c0a120d6133 /app/assets/javascripts | |
parent | bb0d99269b1bee11939e6a3ddfcefed8c6fd4874 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts')
17 files changed, 51 insertions, 43 deletions
diff --git a/app/assets/javascripts/ci/job_details/components/log/log.vue b/app/assets/javascripts/ci/job_details/components/log/log.vue index b8ad4801510..8b43739d7ef 100644 --- a/app/assets/javascripts/ci/job_details/components/log/log.vue +++ b/app/assets/javascripts/ci/job_details/components/log/log.vue @@ -12,6 +12,7 @@ export default { LogLineHeader, LogLine, }, + inject: ['pagePath'], props: { searchResults: { type: Array, @@ -20,7 +21,7 @@ export default { }, }, computed: { - ...mapState(['jobLogEndpoint', 'jobLog', 'jobLogSections', 'isJobLogComplete']), + ...mapState(['jobLog', 'jobLogSections', 'isJobLogComplete']), highlightedLines() { return this.searchResults.map((result) => result.lineNumber); }, @@ -73,7 +74,7 @@ export default { v-if="line.isHeader" :key="line.offset" :line="line" - :path="jobLogEndpoint" + :path="pagePath" :is-closed="jobLogSections[line.section].isClosed" :duration="jobLogSections[line.section].duration" :hide-duration="jobLogSections[line.section].hideDuration" @@ -84,7 +85,7 @@ export default { v-else :key="line.offset" :line="line" - :path="jobLogEndpoint" + :path="pagePath" :is-highlighted="isHighlighted(line)" /> </template> diff --git a/app/assets/javascripts/ci/job_details/index.js b/app/assets/javascripts/ci/job_details/index.js index 424ae698861..7748b6e83ef 100644 --- a/app/assets/javascripts/ci/job_details/index.js +++ b/app/assets/javascripts/ci/job_details/index.js @@ -20,13 +20,14 @@ export const initJobDetails = () => { } const { + jobEndpoint, + logEndpoint, + pagePath, + projectPath, artifactHelpUrl, deploymentHelpUrl, runnerSettingsUrl, subscriptionsMoreMinutesUrl, - endpoint, - pagePath, - projectPath, retryOutdatedJobDocsUrl, aiRootCauseAnalysisAvailable, testReportSummaryUrl, @@ -35,13 +36,14 @@ export const initJobDetails = () => { // init store to start fetching log const store = createStore(); - store.dispatch('init', { endpoint, pagePath, testReportSummaryUrl }); + store.dispatch('init', { jobEndpoint, logEndpoint, testReportSummaryUrl }); return new Vue({ el, apolloProvider, store, provide: { + pagePath, projectPath, retryOutdatedJobDocsUrl, aiRootCauseAnalysisAvailable: parseBoolean(aiRootCauseAnalysisAvailable), diff --git a/app/assets/javascripts/ci/job_details/store/actions.js b/app/assets/javascripts/ci/job_details/store/actions.js index 1a018c577ac..03323e51583 100644 --- a/app/assets/javascripts/ci/job_details/store/actions.js +++ b/app/assets/javascripts/ci/job_details/store/actions.js @@ -15,18 +15,12 @@ import { __ } from '~/locale'; import { reportToSentry } from '~/ci/utils'; import * as types from './mutation_types'; -export const init = ({ dispatch }, { endpoint, pagePath, testReportSummaryUrl }) => { - dispatch('setJobLogOptions', { - endpoint, - pagePath, - testReportSummaryUrl, - }); +export const init = ({ commit, dispatch }, { jobEndpoint, logEndpoint, testReportSummaryUrl }) => { + commit(types.SET_JOB_LOG_OPTIONS, { jobEndpoint, logEndpoint, testReportSummaryUrl }); return dispatch('fetchJob'); }; -export const setJobLogOptions = ({ commit }, options) => commit(types.SET_JOB_LOG_OPTIONS, options); - export const hideSidebar = ({ commit }) => commit(types.HIDE_SIDEBAR); export const showSidebar = ({ commit }) => commit(types.SHOW_SIDEBAR); @@ -155,10 +149,9 @@ export const requestJobLog = ({ commit }) => commit(types.REQUEST_JOB_LOG); export const fetchJobLog = ({ commit, dispatch, state }) => { let isScrolledToBottomBeforeReceivingJobLog; - // update trace endpoint once BE completes trace re-naming in #340626 return ( axios - .get(`${state.jobLogEndpoint}/trace.json`, { + .get(state.logEndpoint, { params: { state: state.jobLogState }, }) .then(({ data }) => { diff --git a/app/assets/javascripts/ci/job_details/store/mutations.js b/app/assets/javascripts/ci/job_details/store/mutations.js index bc679699012..e8e65d690d8 100644 --- a/app/assets/javascripts/ci/job_details/store/mutations.js +++ b/app/assets/javascripts/ci/job_details/store/mutations.js @@ -3,8 +3,8 @@ import { logLinesParser } from './utils'; export default { [types.SET_JOB_LOG_OPTIONS](state, options = {}) { - state.jobLogEndpoint = options.pagePath; - state.jobEndpoint = options.endpoint; + state.jobEndpoint = options.jobEndpoint; + state.logEndpoint = options.logEndpoint; state.testReportSummaryUrl = options.testReportSummaryUrl; }, diff --git a/app/assets/javascripts/ci/job_details/store/state.js b/app/assets/javascripts/ci/job_details/store/state.js index 3efbcc51d65..24736bedf56 100644 --- a/app/assets/javascripts/ci/job_details/store/state.js +++ b/app/assets/javascripts/ci/job_details/store/state.js @@ -1,6 +1,6 @@ export default () => ({ jobEndpoint: null, - jobLogEndpoint: null, + logEndpoint: null, testReportSummaryUrl: null, // sidebar diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue index c9fd25171aa..b2841172fe1 100644 --- a/app/assets/javascripts/diffs/components/diff_file.vue +++ b/app/assets/javascripts/diffs/components/diff_file.vue @@ -9,7 +9,7 @@ import DiffContent from 'jh_else_ce/diffs/components/diff_content.vue'; import { createAlert } from '~/alert'; import { hasDiff } from '~/helpers/diffs_helper'; import { diffViewerErrors } from '~/ide/constants'; -import { scrollToElement } from '~/lib/utils/common_utils'; +import { scrollToElement, isElementStuck } from '~/lib/utils/common_utils'; import { sprintf } from '~/locale'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import notesEventHub from '~/notes/event_hub'; @@ -295,8 +295,13 @@ export default { collapsed: collapsingNow, }); - if (collapsingNow && viaUserInteraction && contentElement) { - scrollToElement(contentElement, { duration: 1 }); + if ( + collapsingNow && + viaUserInteraction && + contentElement && + isElementStuck(this.$refs.header.$el) + ) { + scrollToElement(contentElement, { duration: 0 }); } if (!this.hasDiff && !collapsingNow) { @@ -381,6 +386,7 @@ export default { class="diff-file file-holder gl-border-none gl-mb-0! gl-pb-5" > <diff-file-header + ref="header" :can-current-user-fork="canCurrentUserFork" :diff-file="file" :collapsible="true" diff --git a/app/assets/javascripts/issues/list/constants.js b/app/assets/javascripts/issues/list/constants.js index 682c7629962..d6ff5c952c2 100644 --- a/app/assets/javascripts/issues/list/constants.js +++ b/app/assets/javascripts/issues/list/constants.js @@ -164,6 +164,12 @@ export const specialFilterValues = [ FILTER_STARTED, ]; +export const TYPE_TOKEN_EPIC_OPTION = { + icon: 'epic', + title: __('Epic'), + value: 'epic', +}; + export const TYPE_TOKEN_OBJECTIVE_OPTION = { icon: 'issue-type-objective', title: s__('WorkItem|Objective'), diff --git a/app/assets/javascripts/issues/list/index.js b/app/assets/javascripts/issues/list/index.js index 8c60ad6dc4e..5a836e3e40a 100644 --- a/app/assets/javascripts/issues/list/index.js +++ b/app/assets/javascripts/issues/list/index.js @@ -70,6 +70,7 @@ export async function mountIssuesListApp() { hasAnyIssues, hasAnyProjects, hasBlockedIssuesFeature, + hasEpicsFeature, hasIssuableHealthStatusFeature, hasIssueDateFilterFeature, hasIssueWeightsFeature, @@ -127,6 +128,7 @@ export async function mountIssuesListApp() { hasAnyIssues: parseBoolean(hasAnyIssues), hasAnyProjects: parseBoolean(hasAnyProjects), hasBlockedIssuesFeature: parseBoolean(hasBlockedIssuesFeature), + hasEpicsFeature: parseBoolean(hasEpicsFeature), hasIssuableHealthStatusFeature: parseBoolean(hasIssuableHealthStatusFeature), hasIssueDateFilterFeature: parseBoolean(hasIssueDateFilterFeature), hasIssueWeightsFeature: parseBoolean(hasIssueWeightsFeature), diff --git a/app/assets/javascripts/lib/utils/common_utils.js b/app/assets/javascripts/lib/utils/common_utils.js index b29c234338d..2c31e4c210c 100644 --- a/app/assets/javascripts/lib/utils/common_utils.js +++ b/app/assets/javascripts/lib/utils/common_utils.js @@ -740,3 +740,12 @@ export const isDefaultCiConfig = (path) => { export const hasCiConfigExtension = (path) => { return CI_CONFIG_PATH_EXTENSION.test(path); }; + +/** + * Checks if an element with position:sticky is stuck + * + * @param el + * @returns {boolean} + */ +export const isElementStuck = (el) => + el.getBoundingClientRect().top <= parseInt(getComputedStyle(el).top, 10); diff --git a/app/assets/javascripts/packages_and_registries/infrastructure_registry/details/components/app.vue b/app/assets/javascripts/packages_and_registries/infrastructure_registry/details/components/app.vue index a821a2483cd..b1729f07861 100644 --- a/app/assets/javascripts/packages_and_registries/infrastructure_registry/details/components/app.vue +++ b/app/assets/javascripts/packages_and_registries/infrastructure_registry/details/components/app.vue @@ -126,7 +126,6 @@ export default { attributes: { variant: 'danger', category: 'primary', - 'data-qa-selector': 'delete_modal_button', }, }, fileDeletePrimaryAction: { @@ -158,7 +157,6 @@ export default { class="js-delete-button" variant="danger" category="primary" - data-qa-selector="delete_button" > {{ __('Delete') }} </gl-button> diff --git a/app/assets/javascripts/packages_and_registries/settings/group/components/dependency_proxy_settings.vue b/app/assets/javascripts/packages_and_registries/settings/group/components/dependency_proxy_settings.vue index 59d4f5e24d0..9e6d55d71d3 100644 --- a/app/assets/javascripts/packages_and_registries/settings/group/components/dependency_proxy_settings.vue +++ b/app/assets/javascripts/packages_and_registries/settings/group/components/dependency_proxy_settings.vue @@ -129,7 +129,7 @@ export default { </script> <template> - <settings-block data-qa-selector="dependency_proxy_settings_content"> + <settings-block data-testid="dependency-proxy-settings-content"> <template #title> {{ $options.i18n.DEPENDENCY_PROXY_HEADER }} </template> <template #description> {{ $options.i18n.DEPENDENCY_PROXY_DESCRIPTION }} </template> <template #default> @@ -138,7 +138,6 @@ export default { v-model="enabled" :disabled="isLoading" :label="$options.i18n.enabledProxyLabel" - data-qa-selector="dependency_proxy_setting_toggle" data-testid="dependency-proxy-setting-toggle" > <template v-if="enabled" #help> diff --git a/app/assets/javascripts/packages_and_registries/settings/group/components/packages_settings.vue b/app/assets/javascripts/packages_and_registries/settings/group/components/packages_settings.vue index e15f204dc6e..a773a64c4fc 100644 --- a/app/assets/javascripts/packages_and_registries/settings/group/components/packages_settings.vue +++ b/app/assets/javascripts/packages_and_registries/settings/group/components/packages_settings.vue @@ -78,7 +78,6 @@ export default { exception: 'mavenDuplicateExceptionRegex', }, testid: 'maven-settings', - dataQaSelector: 'allow_duplicates_toggle', }, { id: 'generic-duplicated-settings-regex-input', @@ -154,7 +153,7 @@ export default { </script> <template> - <settings-block data-qa-selector="package_registry_settings_content"> + <settings-block data-testid="package-registry-settings-content"> <template #title> {{ $options.i18n.PACKAGE_SETTINGS_HEADER }}</template> <template #description> <span data-testid="description"> @@ -174,7 +173,7 @@ export default { </template> <template #cell(allowDuplicates)="{ item }"> <gl-toggle - :data-qa-selector="item.dataQaSelector" + :data-testid="item.dataTestid" :label="$options.i18n.DUPLICATES_TOGGLE_LABEL" :value="item.duplicatesAllowed" :disabled="isLoading" diff --git a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue index 2217792d7f3..9dfad16ae82 100644 --- a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue +++ b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue @@ -23,7 +23,7 @@ export default { type: Boolean, required: true, }, - dataQaSelector: { + dataTestId: { type: String, required: false, default: '', @@ -36,11 +36,7 @@ export default { <div> <input :name="name" type="hidden" :value="value ? '1' : '0'" data-testid="input" /> - <gl-form-checkbox - :checked="value" - :data-qa-selector="dataQaSelector" - @input="$emit('input', $event)" - > + <gl-form-checkbox :checked="value" :data-testid="dataTestId" @input="$emit('input', $event)"> <span data-testid="label">{{ label }}</span> <template v-if="helpText" #help> <span data-testid="helpText">{{ helpText }}</span> diff --git a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue index e99aceb2196..1d54dad43a9 100644 --- a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue +++ b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue @@ -93,7 +93,6 @@ export default { tableCell({ key: 'status', label: __('Status'), - tdAttr: { 'data-qa-selector': 'import_status_indicator' }, }), ], diff --git a/app/assets/javascripts/pages/import/history/components/import_history_app.vue b/app/assets/javascripts/pages/import/history/components/import_history_app.vue index 94fa40cc700..a0ff3ded3f5 100644 --- a/app/assets/javascripts/pages/import/history/components/import_history_app.vue +++ b/app/assets/javascripts/pages/import/history/components/import_history_app.vue @@ -65,10 +65,10 @@ export default { key: 'created_at', label: __('Date'), }), + tableCell({ key: 'status', label: __('Status'), - tdAttr: { 'data-qa-selector': 'import_status_indicator' }, }), ], diff --git a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue index e3d50e900ca..bfa2f2cc14f 100644 --- a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue +++ b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue @@ -423,7 +423,7 @@ export default { > <div> <gl-icon - data-qa-selector="fork_privacy_button" + data-testid="fork-privacy-button" :name="icon" :data-qa-privacy-level="`${value}`" /> @@ -440,8 +440,7 @@ export default { category="primary" variant="confirm" class="js-no-auto-disable" - data-testid="submit-button" - data-qa-selector="fork_project_button" + data-testid="fork-project-button" :loading="isSaving" > {{ s__('ForkProject|Fork project') }} diff --git a/app/assets/javascripts/pages/projects/forks/new/components/project_namespace.vue b/app/assets/javascripts/pages/projects/forks/new/components/project_namespace.vue index 84796954cf1..b4bb2176e26 100644 --- a/app/assets/javascripts/pages/projects/forks/new/components/project_namespace.vue +++ b/app/assets/javascripts/pages/projects/forks/new/components/project_namespace.vue @@ -90,8 +90,7 @@ export default { }}</gl-button> <gl-collapsible-listbox class="gl-flex-grow-1" - data-qa-selector="select_namespace_dropdown" - data-testid="select_namespace_dropdown" + data-testid="select-namespace-dropdown" :items="namespaceItems" :header-text="__('Namespaces')" :no-results-text="__('No matches found')" |