diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-15 18:10:04 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-15 18:10:04 +0000 |
commit | 5ff1f808adf841bca979cb2fac6bdfa9c449d028 (patch) | |
tree | c95cfbbcb400684b2bc89fee4fc7b614315ba909 /app/assets | |
parent | f8a5275c45ed2276daf843764113476749e680d2 (diff) | |
download | gitlab-ce-5ff1f808adf841bca979cb2fac6bdfa9c449d028.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets')
46 files changed, 221 insertions, 140 deletions
diff --git a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue index 4f3be0e3a59..5d42caa75ab 100644 --- a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue +++ b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue @@ -2,7 +2,7 @@ import { GlDisclosureDropdown, GlModal } from '@gitlab/ui'; import axios from '~/lib/utils/axios_utils'; import { __, sprintf } from '~/locale'; -import { redirectTo, refreshCurrentPage } from '~/lib/utils/url_utility'; +import { redirectTo, refreshCurrentPage } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { createAlert, VARIANT_SUCCESS } from '~/alert'; import { ACTIONS_I18N } from '../constants'; @@ -126,6 +126,7 @@ export default { .catch(this.handleError); }, handleRemoveReportResponse() { + // eslint-disable-next-line import/no-deprecated if (this.report.redirectPath) redirectTo(this.report.redirectPath); else refreshCurrentPage(); }, diff --git a/app/assets/javascripts/admin/abuse_reports/components/abuse_reports_filtered_search_bar.vue b/app/assets/javascripts/admin/abuse_reports/components/abuse_reports_filtered_search_bar.vue index e1989cadd86..b1eb5371a35 100644 --- a/app/assets/javascripts/admin/abuse_reports/components/abuse_reports_filtered_search_bar.vue +++ b/app/assets/javascripts/admin/abuse_reports/components/abuse_reports_filtered_search_bar.vue @@ -1,5 +1,5 @@ <script> -import { setUrlParams, redirectTo, queryToObject, updateHistory } from '~/lib/utils/url_utility'; +import { setUrlParams, redirectTo, queryToObject, updateHistory } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { FILTERED_SEARCH_TERM } from '~/vue_shared/components/filtered_search_bar/constants'; import FilteredSearchBar from '~/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue'; import { @@ -80,12 +80,12 @@ export default { params = { ...params, sort }; } - redirectTo(setUrlParams(params, window.location.href, true)); + redirectTo(setUrlParams(params, window.location.href, true)); // eslint-disable-line import/no-deprecated }, handleSort(sort) { const { page, ...query } = queryToObject(window.location.search); - redirectTo(setUrlParams({ ...query, sort }, window.location.href, true)); + redirectTo(setUrlParams({ ...query, sort }, window.location.href, true)); // eslint-disable-line import/no-deprecated }, }, filteredSearchNamespace: 'abuse_reports', diff --git a/app/assets/javascripts/admin/broadcast_messages/components/base.vue b/app/assets/javascripts/admin/broadcast_messages/components/base.vue index c28cd266617..667ab4c34f5 100644 --- a/app/assets/javascripts/admin/broadcast_messages/components/base.vue +++ b/app/assets/javascripts/admin/broadcast_messages/components/base.vue @@ -1,6 +1,6 @@ <script> import { GlPagination } from '@gitlab/ui'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { buildUrlWithCurrentLocation } from '~/lib/utils/common_utils'; import { createAlert, VARIANT_DANGER } from '~/alert'; import { s__ } from '~/locale'; @@ -66,7 +66,7 @@ export default { // stranded on page 2 when deleting the last message. // Force a page reload to avoid this edge case. if (newVal === PER_PAGE && oldVal === PER_PAGE + 1) { - redirectTo(this.buildPageUrl(1)); + redirectTo(this.buildPageUrl(1)); // eslint-disable-line import/no-deprecated } }, }, diff --git a/app/assets/javascripts/admin/broadcast_messages/components/message_form.vue b/app/assets/javascripts/admin/broadcast_messages/components/message_form.vue index 789cf77a88a..022f5df9c96 100644 --- a/app/assets/javascripts/admin/broadcast_messages/components/message_form.vue +++ b/app/assets/javascripts/admin/broadcast_messages/components/message_form.vue @@ -14,7 +14,7 @@ import { import axios from '~/lib/utils/axios_utils'; import { s__ } from '~/locale'; import { createAlert, VARIANT_DANGER } from '~/alert'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants'; import SafeHtml from '~/vue_shared/directives/safe_html'; import { THEMES, TYPES, TYPE_BANNER } from '../constants'; @@ -143,7 +143,7 @@ export default { const success = await this.submitForm(); if (success) { - redirectTo(this.messagesPath); + redirectTo(this.messagesPath); // eslint-disable-line import/no-deprecated } else { this.loading = false; } diff --git a/app/assets/javascripts/analytics/shared/components/metric_tile.vue b/app/assets/javascripts/analytics/shared/components/metric_tile.vue index 845a3386f6c..54dbe329c7a 100644 --- a/app/assets/javascripts/analytics/shared/components/metric_tile.vue +++ b/app/assets/javascripts/analytics/shared/components/metric_tile.vue @@ -1,6 +1,6 @@ <script> import { GlSingleStat } from '@gitlab/ui/dist/charts'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import MetricPopover from './metric_popover.vue'; export default { @@ -27,7 +27,7 @@ export default { methods: { clickHandler({ links }) { if (this.hasLinks) { - redirectTo(links[0].url); + redirectTo(links[0].url); // eslint-disable-line import/no-deprecated } }, }, diff --git a/app/assets/javascripts/authentication/password/components/password_input.vue b/app/assets/javascripts/authentication/password/components/password_input.vue index 9b3c4a692a6..fa9a7782b74 100644 --- a/app/assets/javascripts/authentication/password/components/password_input.vue +++ b/app/assets/javascripts/authentication/password/components/password_input.vue @@ -32,6 +32,11 @@ export default { required: false, default: '', }, + testid: { + type: String, + required: false, + default: '', + }, autocomplete: { type: String, required: false, @@ -76,6 +81,7 @@ export default { :name="name" :minlength="minimumPasswordLength" :data-qa-selector="qaSelector" + :data-testid="testid" :title="title" :type="type" /> diff --git a/app/assets/javascripts/authentication/password/index.js b/app/assets/javascripts/authentication/password/index.js index 4a73e0975ca..a4f2d038cf7 100644 --- a/app/assets/javascripts/authentication/password/index.js +++ b/app/assets/javascripts/authentication/password/index.js @@ -2,14 +2,14 @@ import Vue from 'vue'; import GlFieldErrors from '~/gl_field_errors'; import PasswordInput from './components/password_input.vue'; -export const initTogglePasswordVisibility = () => { +export const initPasswordInput = () => { document.querySelectorAll('.js-password').forEach((el) => { if (!el) { return null; } const { form } = el; - const { title, id, minimumPasswordLength, qaSelector, autocomplete, name } = el.dataset; + const { title, id, minimumPasswordLength, qaSelector, testid, autocomplete, name } = el.dataset; // eslint-disable-next-line no-new new Vue({ @@ -22,6 +22,7 @@ export const initTogglePasswordVisibility = () => { id, minimumPasswordLength, qaSelector, + testid, autocomplete, name, }, diff --git a/app/assets/javascripts/behaviors/shortcuts/keybindings.js b/app/assets/javascripts/behaviors/shortcuts/keybindings.js index d58e02e7983..a88cc1834ac 100644 --- a/app/assets/javascripts/behaviors/shortcuts/keybindings.js +++ b/app/assets/javascripts/behaviors/shortcuts/keybindings.js @@ -240,7 +240,7 @@ export const REPO_GRAPH_SCROLL_BOTTOM = { export const GO_TO_PROJECT_OVERVIEW = { id: 'project.goToOverview', description: __("Go to the project's overview page"), - defaultKeys: ['g p'], // eslint-disable-line @gitlab/require-i18n-strings + defaultKeys: ['g o'], // eslint-disable-line @gitlab/require-i18n-strings }; export const GO_TO_PROJECT_ACTIVITY_FEED = { @@ -309,6 +309,12 @@ export const GO_TO_PROJECT_MERGE_REQUESTS = { defaultKeys: ['g m'], // eslint-disable-line @gitlab/require-i18n-strings }; +export const GO_TO_PROJECT_PIPELINES = { + id: 'project.goToPipelines', + description: __('Go to pipelines'), + defaultKeys: ['g p'], // eslint-disable-line @gitlab/require-i18n-strings +}; + export const GO_TO_PROJECT_JOBS = { id: 'project.goToJobs', description: __('Go to jobs'), @@ -598,6 +604,7 @@ const PROJECT_SHORTCUTS_GROUP = { NEW_ISSUE, GO_TO_PROJECT_ISSUE_BOARDS, GO_TO_PROJECT_MERGE_REQUESTS, + GO_TO_PROJECT_PIPELINES, GO_TO_PROJECT_JOBS, ...(gon.features?.removeMonitorMetrics ? [] : [GO_TO_PROJECT_METRICS]), GO_TO_PROJECT_ENVIRONMENTS, diff --git a/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js b/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js index bd08dc28f7a..9e6c9c2e08e 100644 --- a/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js +++ b/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js @@ -6,6 +6,7 @@ import { GO_TO_PROJECT_RELEASES, GO_TO_PROJECT_FILES, GO_TO_PROJECT_COMMITS, + GO_TO_PROJECT_PIPELINES, GO_TO_PROJECT_JOBS, GO_TO_PROJECT_REPO_GRAPH, GO_TO_PROJECT_REPO_CHARTS, @@ -32,6 +33,7 @@ export default class ShortcutsNavigation extends Shortcuts { [GO_TO_PROJECT_RELEASES, () => findAndFollowLink('.shortcuts-deployments-releases')], [GO_TO_PROJECT_FILES, () => findAndFollowLink('.shortcuts-tree')], [GO_TO_PROJECT_COMMITS, () => findAndFollowLink('.shortcuts-commits')], + [GO_TO_PROJECT_PIPELINES, () => findAndFollowLink('.shortcuts-pipelines')], [GO_TO_PROJECT_JOBS, () => findAndFollowLink('.shortcuts-builds')], [GO_TO_PROJECT_REPO_GRAPH, () => findAndFollowLink('.shortcuts-network')], [GO_TO_PROJECT_REPO_CHARTS, () => findAndFollowLink('.shortcuts-repository-charts')], diff --git a/app/assets/javascripts/ci/pipeline_editor/pipeline_editor_app.vue b/app/assets/javascripts/ci/pipeline_editor/pipeline_editor_app.vue index ff848a973e3..de8e5a1a284 100644 --- a/app/assets/javascripts/ci/pipeline_editor/pipeline_editor_app.vue +++ b/app/assets/javascripts/ci/pipeline_editor/pipeline_editor_app.vue @@ -1,7 +1,7 @@ <script> import { GlLoadingIcon, GlModal } from '@gitlab/ui'; import { fetchPolicies } from '~/lib/graphql'; -import { mergeUrlParams, queryToObject, redirectTo } from '~/lib/utils/url_utility'; +import { mergeUrlParams, queryToObject, redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __, s__ } from '~/locale'; import { unwrapStagesWithNeeds } from '~/pipelines/components/unwrapping_utils'; @@ -325,7 +325,7 @@ export default { }, this.newMergeRequestPath, ); - redirectTo(url); + redirectTo(url); // eslint-disable-line import/no-deprecated }, async refetchContent() { this.$apollo.queries.initialCiFileContent.skip = false; diff --git a/app/assets/javascripts/ci/pipeline_new/components/pipeline_new_form.vue b/app/assets/javascripts/ci/pipeline_new/components/pipeline_new_form.vue index 4c4c0ce24f2..6fd5c8130ad 100644 --- a/app/assets/javascripts/ci/pipeline_new/components/pipeline_new_form.vue +++ b/app/assets/javascripts/ci/pipeline_new/components/pipeline_new_form.vue @@ -18,7 +18,7 @@ import { uniqueId } from 'lodash'; import Vue from 'vue'; import { fetchPolicies } from '~/lib/graphql'; import SafeHtml from '~/vue_shared/directives/safe_html'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__, __, n__ } from '~/locale'; import { CC_VALIDATION_REQUIRED_ERROR, @@ -339,7 +339,7 @@ export default { const { id, errors, totalWarnings, warnings } = data.createPipeline; if (id) { - redirectTo(`${this.pipelinesPath}/${id}`); + redirectTo(`${this.pipelinesPath}/${id}`); // eslint-disable-line import/no-deprecated return; } diff --git a/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue index d344fb248cf..e4d47fba464 100644 --- a/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue +++ b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue @@ -1,6 +1,6 @@ <script> import { createAlert, VARIANT_SUCCESS } from '~/alert'; -import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; +import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import RegistrationCompatibilityAlert from '~/ci/runner/components/registration/registration_compatibility_alert.vue'; @@ -32,7 +32,7 @@ export default { message: s__('Runners|Runner created.'), variant: VARIANT_SUCCESS, }); - redirectTo(ephemeralRegisterUrl); + redirectTo(ephemeralRegisterUrl); // eslint-disable-line import/no-deprecated }, onError(error) { createAlert({ message: error.message }); diff --git a/app/assets/javascripts/ci/runner/admin_runner_show/admin_runner_show_app.vue b/app/assets/javascripts/ci/runner/admin_runner_show/admin_runner_show_app.vue index 36fb1cee525..668a55d2437 100644 --- a/app/assets/javascripts/ci/runner/admin_runner_show/admin_runner_show_app.vue +++ b/app/assets/javascripts/ci/runner/admin_runner_show/admin_runner_show_app.vue @@ -2,7 +2,7 @@ import { createAlert, VARIANT_SUCCESS } from '~/alert'; import { TYPENAME_CI_RUNNER } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import RunnerDeleteButton from '../components/runner_delete_button.vue'; import RunnerEditButton from '../components/runner_edit_button.vue'; @@ -71,7 +71,7 @@ export default { }, onDeleted({ message }) { saveAlertToLocalStorage({ message, variant: VARIANT_SUCCESS }); - redirectTo(this.runnersPath); + redirectTo(this.runnersPath); // eslint-disable-line import/no-deprecated }, }, }; diff --git a/app/assets/javascripts/ci/runner/components/runner_update_form.vue b/app/assets/javascripts/ci/runner/components/runner_update_form.vue index dd8e965cecd..2d34c551d6d 100644 --- a/app/assets/javascripts/ci/runner/components/runner_update_form.vue +++ b/app/assets/javascripts/ci/runner/components/runner_update_form.vue @@ -14,7 +14,7 @@ import { runnerToModel, } from 'ee_else_ce/ci/runner/runner_update_form_utils'; import { createAlert, VARIANT_SUCCESS } from '~/alert'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __ } from '~/locale'; import { captureException } from '~/ci/runner/sentry_utils'; import { ACCESS_LEVEL_NOT_PROTECTED, ACCESS_LEVEL_REF_PROTECTED, PROJECT_TYPE } from '../constants'; @@ -101,7 +101,7 @@ export default { }, onSuccess() { saveAlertToLocalStorage({ message: __('Changes saved.'), variant: VARIANT_SUCCESS }); - redirectTo(this.runnerPath); + redirectTo(this.runnerPath); // eslint-disable-line import/no-deprecated }, onError(message) { this.saving = false; diff --git a/app/assets/javascripts/ci/runner/group_new_runner/group_new_runner_app.vue b/app/assets/javascripts/ci/runner/group_new_runner/group_new_runner_app.vue index c2622d720bf..67d29daf66f 100644 --- a/app/assets/javascripts/ci/runner/group_new_runner/group_new_runner_app.vue +++ b/app/assets/javascripts/ci/runner/group_new_runner/group_new_runner_app.vue @@ -1,6 +1,6 @@ <script> import { createAlert, VARIANT_SUCCESS } from '~/alert'; -import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; +import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import RegistrationCompatibilityAlert from '~/ci/runner/components/registration/registration_compatibility_alert.vue'; @@ -38,7 +38,7 @@ export default { message: s__('Runners|Runner created.'), variant: VARIANT_SUCCESS, }); - redirectTo(ephemeralRegisterUrl); + redirectTo(ephemeralRegisterUrl); // eslint-disable-line import/no-deprecated }, onError(error) { createAlert({ message: error.message }); diff --git a/app/assets/javascripts/ci/runner/group_runner_show/group_runner_show_app.vue b/app/assets/javascripts/ci/runner/group_runner_show/group_runner_show_app.vue index 2db3a2f42a7..1318bf5a2e6 100644 --- a/app/assets/javascripts/ci/runner/group_runner_show/group_runner_show_app.vue +++ b/app/assets/javascripts/ci/runner/group_runner_show/group_runner_show_app.vue @@ -2,7 +2,7 @@ import { createAlert, VARIANT_SUCCESS } from '~/alert'; import { TYPENAME_CI_RUNNER } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import RunnerDeleteButton from '../components/runner_delete_button.vue'; import RunnerEditButton from '../components/runner_edit_button.vue'; @@ -76,7 +76,7 @@ export default { }, onDeleted({ message }) { saveAlertToLocalStorage({ message, variant: VARIANT_SUCCESS }); - redirectTo(this.runnersPath); + redirectTo(this.runnersPath); // eslint-disable-line import/no-deprecated }, }, }; diff --git a/app/assets/javascripts/ci/runner/project_new_runner/project_new_runner_app.vue b/app/assets/javascripts/ci/runner/project_new_runner/project_new_runner_app.vue index a3661e08497..f0ae54c0232 100644 --- a/app/assets/javascripts/ci/runner/project_new_runner/project_new_runner_app.vue +++ b/app/assets/javascripts/ci/runner/project_new_runner/project_new_runner_app.vue @@ -1,6 +1,6 @@ <script> import { createAlert, VARIANT_SUCCESS } from '~/alert'; -import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; +import { redirectTo, setUrlParams } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import RegistrationCompatibilityAlert from '~/ci/runner/components/registration/registration_compatibility_alert.vue'; @@ -38,7 +38,7 @@ export default { message: s__('Runners|Runner created.'), variant: VARIANT_SUCCESS, }); - redirectTo(ephemeralRegisterUrl); + redirectTo(ephemeralRegisterUrl); // eslint-disable-line import/no-deprecated }, onError(error) { createAlert({ message: error.message }); diff --git a/app/assets/javascripts/editor/schema/ci.json b/app/assets/javascripts/editor/schema/ci.json index 1fb6f606b6b..d240ad7353a 100644 --- a/app/assets/javascripts/editor/schema/ci.json +++ b/app/assets/javascripts/editor/schema/ci.json @@ -1092,6 +1092,14 @@ "on_failure", "always" ] + }, + "fallback_keys": { + "type": "array", + "markdownDescription": "List of keys to download cache from if no cache hit occurred for key", + "items": { + "type": "string" + }, + "maxItems": 5 } } }, diff --git a/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue b/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue index bf71f682048..f19e047061f 100644 --- a/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue +++ b/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue @@ -5,7 +5,7 @@ import PipelineWizard from '~/pipeline_wizard/pipeline_wizard.vue'; import PagesWizardTemplate from '~/pipeline_wizard/templates/pages.yml?raw'; import { logError } from '~/lib/logger'; import { s__ } from '~/locale'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import pagesMarkOnboardingComplete from '../queries/mark_onboarding_complete.graphql'; export const i18n = { @@ -57,7 +57,7 @@ export default { async onDone() { this.loading = true; await this.updateOnboardingState(); - redirectTo(this.redirectToWhenDone); + redirectTo(this.redirectToWhenDone); // eslint-disable-line import/no-deprecated }, }, }; diff --git a/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue b/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue index a867a1695b9..1c830d8c2c5 100644 --- a/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue +++ b/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue @@ -58,7 +58,7 @@ export default { data() { return { optionalStagesSelection: Object.fromEntries( - this.optionalStages.map(({ name }) => [name, false]), + this.optionalStages.map(({ name, selected }) => [name, selected]), ), }; }, 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 19a75ffaa85..d3b2ddc5422 100644 --- a/app/assets/javascripts/jobs/components/job/manual_variables_form.vue +++ b/app/assets/javascripts/jobs/components/job/manual_variables_form.vue @@ -16,7 +16,7 @@ import { TYPENAME_CI_BUILD, TYPENAME_COMMIT_STATUS } from '~/graphql_shared/cons import { convertToGraphQLId } from '~/graphql_shared/utils'; import { JOB_GRAPHQL_ERRORS } from '~/jobs/constants'; import { helpPagePath } from '~/helpers/help_page_helper'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import { reportMessageToSentry } from '~/jobs/utils'; import GetJob from './graphql/queries/get_job.query.graphql'; @@ -186,7 +186,7 @@ export default { return `${this.$options.inputTypes[type]}-${id}`; }, navigateToJob(path) { - redirectTo(path); + redirectTo(path); // eslint-disable-line import/no-deprecated }, runJob() { this.runBtnDisabled = true; diff --git a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_detail_row.vue b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_detail_row.vue index 05567328660..0ba34eafa58 100644 --- a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_detail_row.vue +++ b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_detail_row.vue @@ -22,6 +22,11 @@ export default { required: false, default: '', }, + path: { + type: String, + required: false, + default: '', + }, }, computed: { hasTitle() { @@ -35,10 +40,19 @@ export default { </script> <template> <p class="gl-display-flex gl-justify-content-space-between gl-mb-2"> - <span v-if="hasTitle" - ><b>{{ title }}:</b> {{ value }}</span - > - <gl-link v-if="hasHelpURL" :href="helpUrl" target="_blank"> + <span v-if="hasTitle"> + <b>{{ title }}:</b> + <gl-link + v-if="path" + :href="path" + class="gl-text-blue-600!" + data-testid="job-sidebar-value-link" + > + {{ value }} + </gl-link> + <span v-else>{{ value }}</span> + </span> + <gl-link v-if="hasHelpURL" :href="helpUrl" target="_blank" data-testid="job-sidebar-help-link"> <gl-icon name="question-o" /> </gl-link> </p> diff --git a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_job_details_container.vue b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_job_details_container.vue index 8300a22cb67..3cd90eb3bca 100644 --- a/app/assets/javascripts/jobs/components/job/sidebar/sidebar_job_details_container.vue +++ b/app/assets/javascripts/jobs/components/job/sidebar/sidebar_job_details_container.vue @@ -70,6 +70,9 @@ export default { timeoutSource: this.job.metadata.timeout_source, }); }, + runnerAdminPath() { + return this.job?.runner?.admin_path || ''; + }, }, i18n: { COVERAGE: __('Coverage'), @@ -104,7 +107,12 @@ export default { data-testid="job-timeout" :title="$options.i18n.TIMEOUT" /> - <detail-row v-if="job.runner" :value="runnerId" :title="$options.i18n.RUNNER" /> + <detail-row + v-if="job.runner" + :value="runnerId" + :title="$options.i18n.RUNNER" + :path="runnerAdminPath" + /> <detail-row v-if="job.coverage" :value="coverage" :title="$options.i18n.COVERAGE" /> <p v-if="hasTags" class="build-detail-row" data-testid="job-tags"> diff --git a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue index f4061f3d375..d97f6f6ff8c 100644 --- a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue +++ b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue @@ -8,7 +8,7 @@ import { GlTooltipDirective, } from '@gitlab/ui'; import GlCountdown from '~/vue_shared/components/gl_countdown.vue'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { ACTIONS_DOWNLOAD_ARTIFACTS, ACTIONS_START_NOW, @@ -138,7 +138,7 @@ export default { } else if (redirect) { // Retry and Play actions redirect to job detail view // we don't need to refetch with jobActionPerformed event - redirectTo(job.detailedStatus.detailsPath); + redirectTo(job.detailedStatus.detailsPath); // eslint-disable-line import/no-deprecated } else { eventHub.$emit('jobActionPerformed'); } diff --git a/app/assets/javascripts/lib/utils/url_utility.js b/app/assets/javascripts/lib/utils/url_utility.js index 6c1495b8468..f16ff188edb 100644 --- a/app/assets/javascripts/lib/utils/url_utility.js +++ b/app/assets/javascripts/lib/utils/url_utility.js @@ -272,6 +272,11 @@ export const setUrlFragment = (url, fragment) => { return `${rootUrl}#${encodedFragment}`; }; +/** + * Navigates to a URL + * @param {*} url - url to navigate to + * @param {*} external - if true, open a new page or tab + */ export function visitUrl(url, external = false) { if (external) { // Simulate `target="_blank" rel="noopener noreferrer"` @@ -284,6 +289,19 @@ export function visitUrl(url, external = false) { } } +export function refreshCurrentPage() { + visitUrl(window.location.href); +} + +/** + * Navigates to a URL + * @deprecated Use visitUrl from ~/lib/utils/url_utility.js instead + * @param {*} url + */ +export function redirectTo(url) { + return window.location.assign(url); +} + export function updateHistory({ state = {}, title = '', url, replace = false, win = window } = {}) { if (win.history) { if (replace) { @@ -294,14 +312,6 @@ export function updateHistory({ state = {}, title = '', url, replace = false, wi } } -export function refreshCurrentPage() { - visitUrl(window.location.href); -} - -export function redirectTo(url) { - return window.location.assign(url); -} - export const escapeFileUrl = (fileUrl) => encodeURIComponent(fileUrl).replace(/%2F/g, '/'); export function webIDEUrl(route = undefined) { diff --git a/app/assets/javascripts/listbox/redirect_behavior.js b/app/assets/javascripts/listbox/redirect_behavior.js index 38d9d84f889..28b0892d126 100644 --- a/app/assets/javascripts/listbox/redirect_behavior.js +++ b/app/assets/javascripts/listbox/redirect_behavior.js @@ -1,5 +1,5 @@ import { initListbox } from '~/listbox'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated /** * Instantiates GlCollapsibleListbox components with redirect behavior for tags created @@ -15,7 +15,7 @@ export function initRedirectListboxBehavior() { return elements.map((el) => initListbox(el, { onChange({ href }) { - redirectTo(href); + redirectTo(href); // eslint-disable-line import/no-deprecated }, }), ); diff --git a/app/assets/javascripts/members/components/filter_sort/members_filtered_search_bar.vue b/app/assets/javascripts/members/components/filter_sort/members_filtered_search_bar.vue index 685482a76de..8cdaa76e673 100644 --- a/app/assets/javascripts/members/components/filter_sort/members_filtered_search_bar.vue +++ b/app/assets/javascripts/members/components/filter_sort/members_filtered_search_bar.vue @@ -5,7 +5,7 @@ import { getParameterByName, setUrlParams, queryToObject, - redirectTo, + redirectTo, // eslint-disable-line import/no-deprecated } from '~/lib/utils/url_utility'; import { SORT_QUERY_PARAM_NAME, @@ -119,6 +119,7 @@ export default { const sortParamValue = getParameterByName(SORT_QUERY_PARAM_NAME); const activeTabParamValue = getParameterByName(ACTIVE_TAB_QUERY_PARAM_NAME); + // eslint-disable-next-line import/no-deprecated redirectTo( setUrlParams( { diff --git a/app/assets/javascripts/milestones/components/delete_milestone_modal.vue b/app/assets/javascripts/milestones/components/delete_milestone_modal.vue index 8e7428089e2..c13bf50eba7 100644 --- a/app/assets/javascripts/milestones/components/delete_milestone_modal.vue +++ b/app/assets/javascripts/milestones/components/delete_milestone_modal.vue @@ -3,7 +3,7 @@ import { GlSprintf, GlModal } from '@gitlab/ui'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_NOT_FOUND } from '~/lib/utils/http_status'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __, n__, s__, sprintf } from '~/locale'; import eventHub from '../event_hub'; @@ -76,7 +76,7 @@ Once deleted, it cannot be undone or recovered.`), }); // follow the rediect to milestones overview page - redirectTo(response.request.responseURL); + redirectTo(response.request.responseURL); // eslint-disable-line import/no-deprecated }) .catch((error) => { eventHub.$emit('deleteMilestoneModal.requestFinished', { diff --git a/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/components/candidate_detail_row.vue b/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/components/candidate_detail_row.vue new file mode 100644 index 00000000000..20c5248052b --- /dev/null +++ b/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/components/candidate_detail_row.vue @@ -0,0 +1,41 @@ +<script> +import { GlLink } from '@gitlab/ui'; + +export default { + name: 'CandidateDetailRow', + components: { + GlLink, + }, + props: { + label: { + type: String, + required: true, + }, + text: { + type: [String, Number], + required: true, + }, + href: { + type: String, + required: false, + default: '', + }, + sectionLabel: { + type: String, + required: false, + default: '', + }, + }, +}; +</script> + +<template> + <tr> + <td class="gl-text-secondary gl-font-weight-bold">{{ sectionLabel }}</td> + <td class="gl-font-weight-bold">{{ label }}</td> + <td> + <gl-link v-if="href" :href="href">{{ text }}</gl-link> + <template v-else>{{ text }}</template> + </td> + </tr> +</template> diff --git a/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/ml_candidates_show.vue b/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/ml_candidates_show.vue index cef5da726f3..3ef73e7c874 100644 --- a/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/ml_candidates_show.vue +++ b/app/assets/javascripts/ml/experiment_tracking/routes/candidates/show/ml_candidates_show.vue @@ -1,7 +1,8 @@ <script> -import { GlLink } from '@gitlab/ui'; import ModelExperimentsHeader from '~/ml/experiment_tracking/components/model_experiments_header.vue'; import DeleteButton from '~/ml/experiment_tracking/components/delete_button.vue'; +import DetailRow from './components/candidate_detail_row.vue'; + import { TITLE_LABEL, INFO_LABEL, @@ -23,7 +24,7 @@ export default { components: { ModelExperimentsHeader, DeleteButton, - GlLink, + DetailRow, }, props: { candidate: { @@ -38,27 +39,27 @@ export default { STATUS_LABEL, EXPERIMENT_LABEL, ARTIFACTS_LABEL, - PARAMETERS_LABEL, - METRICS_LABEL, - METADATA_LABEL, DELETE_CANDIDATE_CONFIRMATION_MESSAGE, DELETE_CANDIDATE_PRIMARY_ACTION_LABEL, DELETE_CANDIDATE_MODAL_TITLE, MLFLOW_ID_LABEL, }, computed: { + info() { + return Object.freeze(this.candidate.info); + }, sections() { return [ { - sectionName: this.$options.i18n.PARAMETERS_LABEL, + sectionName: PARAMETERS_LABEL, sectionValues: this.candidate.params, }, { - sectionName: this.$options.i18n.METRICS_LABEL, + sectionName: METRICS_LABEL, sectionValues: this.candidate.metrics, }, { - sectionName: this.$options.i18n.METADATA_LABEL, + sectionName: METADATA_LABEL, sectionValues: this.candidate.metadata, }, ]; @@ -71,7 +72,7 @@ export default { <div> <model-experiments-header :page-title="$options.i18n.TITLE_LABEL"> <delete-button - :delete-path="candidate.info.path" + :delete-path="info.path" :delete-confirmation-text="$options.i18n.DELETE_CANDIDATE_CONFIRMATION_MESSAGE" :action-primary-text="$options.i18n.DELETE_CANDIDATE_PRIMARY_ACTION_LABEL" :modal-title="$options.i18n.DELETE_CANDIDATE_MODAL_TITLE" @@ -82,55 +83,39 @@ export default { <tbody> <tr class="divider"></tr> - <tr> - <td class="gl-text-secondary gl-font-weight-bold">{{ $options.i18n.INFO_LABEL }}</td> - <td class="gl-font-weight-bold">{{ $options.i18n.ID_LABEL }}</td> - <td>{{ candidate.info.iid }}</td> - </tr> + <detail-row + :label="$options.i18n.ID_LABEL" + :section-label="$options.i18n.INFO_LABEL" + :text="info.iid" + /> - <tr> - <td></td> - <td class="gl-font-weight-bold">{{ $options.i18n.MLFLOW_ID_LABEL }}</td> - <td>{{ candidate.info.eid }}</td> - </tr> + <detail-row :label="$options.i18n.MLFLOW_ID_LABEL" :text="info.eid" /> - <tr> - <td></td> - <td class="gl-font-weight-bold">{{ $options.i18n.STATUS_LABEL }}</td> - <td>{{ candidate.info.status }}</td> - </tr> + <detail-row :label="$options.i18n.STATUS_LABEL" :text="info.status" /> - <tr> - <td></td> - <td class="gl-font-weight-bold">{{ $options.i18n.EXPERIMENT_LABEL }}</td> - <td> - <gl-link :href="candidate.info.path_to_experiment">{{ - candidate.info.experiment_name - }}</gl-link> - </td> - </tr> + <detail-row + :label="$options.i18n.EXPERIMENT_LABEL" + :text="info.experiment_name" + :href="info.path_to_experiment" + /> - <tr v-if="candidate.info.path_to_artifact"> - <td></td> - <td class="gl-font-weight-bold">{{ $options.i18n.ARTIFACTS_LABEL }}</td> - <td> - <gl-link :href="candidate.info.path_to_artifact">{{ - $options.i18n.ARTIFACTS_LABEL - }}</gl-link> - </td> - </tr> + <detail-row + v-if="info.path_to_artifact" + :label="$options.i18n.ARTIFACTS_LABEL" + :href="info.path_to_artifact" + :text="$options.i18n.ARTIFACTS_LABEL" + /> <template v-for="{ sectionName, sectionValues } in sections"> - <tr :key="sectionName" class="divider"></tr> + <tr v-if="sectionValues" :key="sectionName" class="divider"></tr> - <tr v-for="(item, index) in sectionValues" :key="item.name"> - <td v-if="index === 0" class="gl-text-secondary gl-font-weight-bold"> - {{ sectionName }} - </td> - <td v-else></td> - <td class="gl-font-weight-bold">{{ item.name }}</td> - <td>{{ item.value }}</td> - </tr> + <detail-row + v-for="(item, index) in sectionValues" + :key="item.name" + :label="item.name" + :section-label="index === 0 ? sectionName : ''" + :text="item.value" + /> </template> </tbody> </table> diff --git a/app/assets/javascripts/monitoring/components/dashboard_actions_menu.vue b/app/assets/javascripts/monitoring/components/dashboard_actions_menu.vue index d67154b7697..29ce8572e9a 100644 --- a/app/assets/javascripts/monitoring/components/dashboard_actions_menu.vue +++ b/app/assets/javascripts/monitoring/components/dashboard_actions_menu.vue @@ -12,7 +12,7 @@ import { import { mapState, mapGetters, mapActions } from 'vuex'; import CustomMetricsFormFields from '~/custom_metrics/components/custom_metrics_form_fields.vue'; import invalidUrl from '~/lib/utils/invalid_url'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import TrackEventDirective from '~/vue_shared/directives/track_event'; import { PANEL_NEW_PAGE } from '../router/constants'; @@ -113,7 +113,7 @@ export default { const dashboardPath = encodeURIComponent( dashboard.out_of_the_box_dashboard ? dashboard.path : dashboard.display_name, ); - redirectTo(`${baseURL}/${dashboardPath}`); + redirectTo(`${baseURL}/${dashboardPath}`); // eslint-disable-line import/no-deprecated }, }, diff --git a/app/assets/javascripts/monitoring/components/dashboard_header.vue b/app/assets/javascripts/monitoring/components/dashboard_header.vue index 7bb0d3874d1..44dde454983 100644 --- a/app/assets/javascripts/monitoring/components/dashboard_header.vue +++ b/app/assets/javascripts/monitoring/components/dashboard_header.vue @@ -13,7 +13,7 @@ import { import { debounce } from 'lodash'; import { mapActions, mapState, mapGetters } from 'vuex'; import invalidUrl from '~/lib/utils/invalid_url'; -import { mergeUrlParams, redirectTo } from '~/lib/utils/url_utility'; +import { mergeUrlParams, redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import DateTimePicker from '~/vue_shared/components/date_time_picker/date_time_picker.vue'; @@ -137,13 +137,13 @@ export default { const dashboardPath = encodeURIComponent( dashboard.out_of_the_box_dashboard ? dashboard.path : dashboard.display_name, ); - redirectTo(`${baseURL}/${dashboardPath}`); + redirectTo(`${baseURL}/${dashboardPath}`); // eslint-disable-line import/no-deprecated }, debouncedEnvironmentsSearch: debounce(function environmentsSearchOnInput(searchTerm) { this.filterEnvironments(searchTerm); }, 500), onDateTimePickerInput(timeRange) { - redirectTo(timeRangeToUrl(timeRange)); + redirectTo(timeRangeToUrl(timeRange)); // eslint-disable-line import/no-deprecated }, onDateTimePickerInvalid() { this.$emit('dateTimePickerInvalid'); diff --git a/app/assets/javascripts/pages/admin/jobs/components/cancel_jobs_modal.vue b/app/assets/javascripts/pages/admin/jobs/components/cancel_jobs_modal.vue index 3bc785ee1b6..b2c5326fefd 100644 --- a/app/assets/javascripts/pages/admin/jobs/components/cancel_jobs_modal.vue +++ b/app/assets/javascripts/pages/admin/jobs/components/cancel_jobs_modal.vue @@ -2,7 +2,7 @@ import { GlModal } from '@gitlab/ui'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { CANCEL_TEXT, CANCEL_JOBS_FAILED_TEXT, @@ -31,7 +31,7 @@ export default { .post(this.url) .then((response) => { // follow the rediect to refresh the page - redirectTo(response.request.responseURL); + redirectTo(response.request.responseURL); // eslint-disable-line import/no-deprecated }) .catch((error) => { createAlert({ 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 50e34f4e4f8..9f7a7b436df 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 @@ -15,7 +15,7 @@ import { buildApiUrl } from '~/api/api_utils'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import csrf from '~/lib/utils/csrf'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__, __ } from '~/locale'; import validation from '~/vue_shared/directives/validation'; import { @@ -261,7 +261,7 @@ export default { try { const { data } = await axios.post(url, postParams); - redirectTo(data.web_url); + redirectTo(data.web_url); // eslint-disable-line import/no-deprecated return; } catch (error) { createAlert({ diff --git a/app/assets/javascripts/pages/registrations/new/index.js b/app/assets/javascripts/pages/registrations/new/index.js index 00f7c5d60d1..84050c3cb0f 100644 --- a/app/assets/javascripts/pages/registrations/new/index.js +++ b/app/assets/javascripts/pages/registrations/new/index.js @@ -5,7 +5,7 @@ import LengthValidator from '~/validators/length_validator'; import UsernameValidator from '~/pages/sessions/new/username_validator'; import EmailFormatValidator from '~/pages/sessions/new/email_format_validator'; import { initLanguageSwitcher } from '~/language_switcher'; -import { initTogglePasswordVisibility } from '~/authentication/password'; +import { initPasswordInput } from '~/authentication/password'; import Tracking from '~/tracking'; new UsernameValidator(); // eslint-disable-line no-new @@ -20,4 +20,4 @@ Tracking.enableFormTracking({ }); initLanguageSwitcher(); -initTogglePasswordVisibility(); +initPasswordInput(); diff --git a/app/assets/javascripts/pages/sessions/index.js b/app/assets/javascripts/pages/sessions/index.js index 8d8534ec556..fdd846a9476 100644 --- a/app/assets/javascripts/pages/sessions/index.js +++ b/app/assets/javascripts/pages/sessions/index.js @@ -1,3 +1,5 @@ import { mount2faAuthentication } from '~/authentication/mount_2fa'; +import { initPasswordInput } from '~/authentication/password'; mount2faAuthentication(); +initPasswordInput(); diff --git a/app/assets/javascripts/pipelines/components/header_component.vue b/app/assets/javascripts/pipelines/components/header_component.vue index 065e40bd3ea..27119419060 100644 --- a/app/assets/javascripts/pipelines/components/header_component.vue +++ b/app/assets/javascripts/pipelines/components/header_component.vue @@ -7,7 +7,7 @@ import { GlModalDirective, GlTooltipDirective, } from '@gitlab/ui'; -import { setUrlFragment, redirectTo } from '~/lib/utils/url_utility'; +import { setUrlFragment, redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __ } from '~/locale'; import CiHeader from '~/vue_shared/components/header_ci_component.vue'; import { @@ -233,7 +233,7 @@ export default { this.reportFailure(DELETE_FAILURE, errors); this.isDeleting = false; } else { - redirectTo(setUrlFragment(this.paths.pipelinesPath, 'delete_success')); + redirectTo(setUrlFragment(this.paths.pipelinesPath, 'delete_success')); // eslint-disable-line import/no-deprecated } } catch { this.$apollo.queries.pipeline.startPolling(POLL_INTERVAL); diff --git a/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue b/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue index 80c08d7c613..ec7000120f1 100644 --- a/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue +++ b/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue @@ -3,7 +3,7 @@ import { GlButton, GlLink, GlTableLite } from '@gitlab/ui'; import SafeHtml from '~/vue_shared/directives/safe_html'; import { __, s__ } from '~/locale'; import { createAlert } from '~/alert'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue'; import RetryFailedJobMutation from '../../graphql/mutations/retry_failed_job.mutation.graphql'; import { DEFAULT_FIELDS } from '../../constants'; @@ -40,7 +40,7 @@ export default { if (errors.length > 0) { this.showErrorMessage(); } else { - redirectTo(job.detailedStatus.detailsPath); + redirectTo(job.detailedStatus.detailsPath); // eslint-disable-line import/no-deprecated } } catch { this.showErrorMessage(); diff --git a/app/assets/javascripts/projects/commits/components/author_select.vue b/app/assets/javascripts/projects/commits/components/author_select.vue index f85be67d4b3..2966214e051 100644 --- a/app/assets/javascripts/projects/commits/components/author_select.vue +++ b/app/assets/javascripts/projects/commits/components/author_select.vue @@ -9,7 +9,7 @@ import { } from '@gitlab/ui'; import { debounce } from 'lodash'; import { mapState, mapActions } from 'vuex'; -import { redirectTo, queryToObject } from '~/lib/utils/url_utility'; +import { redirectTo, queryToObject } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __ } from '~/locale'; const tooltipMessage = __('Searching by both author and message is currently not supported.'); @@ -89,10 +89,10 @@ export default { commitListElement.style.transition = 'opacity 200ms'; if (!user) { - return redirectTo(this.commitsPath); + return redirectTo(this.commitsPath); // eslint-disable-line import/no-deprecated } - return redirectTo(`${this.commitsPath}?author=${user}`); + return redirectTo(`${this.commitsPath}?author=${user}`); // eslint-disable-line import/no-deprecated }, searchAuthors() { this.fetchAuthors(this.authorInput); diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js index 2ea31518dd0..2e3cf3bf9b8 100644 --- a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js +++ b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js @@ -1,6 +1,6 @@ import { getTag } from '~/rest_api'; import { createAlert } from '~/alert'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { s__ } from '~/locale'; import createReleaseMutation from '~/releases/graphql/mutations/create_release.mutation.graphql'; import deleteReleaseMutation from '~/releases/graphql/mutations/delete_release.mutation.graphql'; @@ -95,7 +95,7 @@ export const removeAssetLink = ({ commit }, linkIdToRemove) => { export const receiveSaveReleaseSuccess = ({ commit }, urlToRedirectTo) => { commit(types.RECEIVE_SAVE_RELEASE_SUCCESS); - redirectTo(urlToRedirectTo); + redirectTo(urlToRedirectTo); // eslint-disable-line import/no-deprecated }; export const saveRelease = ({ commit, dispatch, state }) => { diff --git a/app/assets/javascripts/repository/components/blob_content_viewer.vue b/app/assets/javascripts/repository/components/blob_content_viewer.vue index 2878d4324c8..e056a822c8b 100644 --- a/app/assets/javascripts/repository/components/blob_content_viewer.vue +++ b/app/assets/javascripts/repository/components/blob_content_viewer.vue @@ -8,7 +8,7 @@ import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import { isLoggedIn, handleLocationHash } from '~/lib/utils/common_utils'; import { __ } from '~/locale'; -import { redirectTo, getLocationHash } from '~/lib/utils/url_utility'; +import { redirectTo, getLocationHash } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import WebIdeLink from '~/vue_shared/components/web_ide_link.vue'; import CodeIntelligence from '~/code_navigation/components/app.vue'; @@ -305,7 +305,7 @@ export default { } const { ideEditPath, editBlobPath } = this.blobInfo; - redirectTo(target === 'ide' ? ideEditPath : editBlobPath); + redirectTo(target === 'ide' ? ideEditPath : editBlobPath); // eslint-disable-line import/no-deprecated }, setForkTarget(target) { this.forkTarget = target; diff --git a/app/assets/javascripts/snippets/components/edit.vue b/app/assets/javascripts/snippets/components/edit.vue index 1678e51a29d..5e2f194e133 100644 --- a/app/assets/javascripts/snippets/components/edit.vue +++ b/app/assets/javascripts/snippets/components/edit.vue @@ -3,7 +3,7 @@ import { GlButton, GlLoadingIcon, GlFormInput, GlFormGroup } from '@gitlab/ui'; import eventHub from '~/blob/components/eventhub'; import { createAlert } from '~/alert'; -import { redirectTo, joinPaths } from '~/lib/utils/url_utility'; +import { redirectTo, joinPaths } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { __, sprintf } from '~/locale'; import { SNIPPET_MARK_EDIT_APP_START, @@ -192,7 +192,7 @@ export default { if (errors?.length) { this.alertAPIFailure(errors[0]); } else { - redirectTo(baseObj.snippet.webUrl); + redirectTo(baseObj.snippet.webUrl); // eslint-disable-line import/no-deprecated } }) .catch((e) => { diff --git a/app/assets/javascripts/user_lists/store/edit/actions.js b/app/assets/javascripts/user_lists/store/edit/actions.js index 6db2e65cf04..6f5d483a4c7 100644 --- a/app/assets/javascripts/user_lists/store/edit/actions.js +++ b/app/assets/javascripts/user_lists/store/edit/actions.js @@ -1,5 +1,5 @@ import Api from '~/api'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { getErrorMessages } from '../utils'; import * as types from './mutation_types'; @@ -17,6 +17,6 @@ export const updateUserList = ({ commit, state }, userList) => { iid: userList.iid, name: userList.name, }) - .then(({ data }) => redirectTo(data.path)) + .then(({ data }) => redirectTo(data.path)) // eslint-disable-line import/no-deprecated .catch((response) => commit(types.RECEIVE_USER_LIST_ERROR, getErrorMessages(response))); }; diff --git a/app/assets/javascripts/user_lists/store/new/actions.js b/app/assets/javascripts/user_lists/store/new/actions.js index 478fca40142..030f1f59212 100644 --- a/app/assets/javascripts/user_lists/store/new/actions.js +++ b/app/assets/javascripts/user_lists/store/new/actions.js @@ -1,5 +1,5 @@ import Api from '~/api'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { getErrorMessages } from '../utils'; import * as types from './mutation_types'; @@ -10,6 +10,6 @@ export const createUserList = ({ commit, state }, userList) => { ...state.userList, ...userList, }) - .then(({ data }) => redirectTo(data.path)) + .then(({ data }) => redirectTo(data.path)) // eslint-disable-line import/no-deprecated .catch((response) => commit(types.RECEIVE_CREATE_USER_LIST_ERROR, getErrorMessages(response))); }; diff --git a/app/assets/javascripts/vue_shared/security_configuration/components/manage_via_mr.vue b/app/assets/javascripts/vue_shared/security_configuration/components/manage_via_mr.vue index c2ff2eec9fa..fe408354f66 100644 --- a/app/assets/javascripts/vue_shared/security_configuration/components/manage_via_mr.vue +++ b/app/assets/javascripts/vue_shared/security_configuration/components/manage_via_mr.vue @@ -2,7 +2,7 @@ import { GlButton } from '@gitlab/ui'; import { featureToMutationMap } from 'ee_else_ce/security_configuration/components/constants'; import { parseErrorMessage } from '~/lib/utils/error_message'; -import { redirectTo } from '~/lib/utils/url_utility'; +import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { sprintf, s__ } from '~/locale'; import apolloProvider from '../provider'; @@ -77,7 +77,7 @@ export default { ); } - redirectTo(successPath); + redirectTo(successPath); // eslint-disable-line import/no-deprecated } catch (e) { this.$emit('error', parseErrorMessage(e, this.$options.i18n.genericErrorText)); this.isLoading = false; diff --git a/app/assets/stylesheets/page_bundles/login.scss b/app/assets/stylesheets/page_bundles/login.scss index 6175bba6ba7..98fa45e0e3d 100644 --- a/app/assets/stylesheets/page_bundles/login.scss +++ b/app/assets/stylesheets/page_bundles/login.scss @@ -96,11 +96,6 @@ .login-body { font-size: 13px; - input + p, - input ~ p.field-validation { - margin-top: 5px; - } - .username .validation-success { color: $green-600; } |