diff --git a/.eslint_todo/vue-no-unused-properties.mjs b/.eslint_todo/vue-no-unused-properties.mjs index 81f0b2cbcf8..8ecaa7f917c 100644 --- a/.eslint_todo/vue-no-unused-properties.mjs +++ b/.eslint_todo/vue-no-unused-properties.mjs @@ -262,12 +262,6 @@ export default { 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline_container.vue', 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue', 'app/assets/javascripts/vue_merge_request_widget/components/state_container.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue', - 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_missing_branch.vue', 'app/assets/javascripts/vue_merge_request_widget/components/widget/action_buttons.vue', 'app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue', 'app/assets/javascripts/vue_merge_request_widget/widgets/accessibility/index.vue', diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 868da6fb085..9b6a02ed077 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -da219155e5f13896b0427c536e5ff169b95ec558 +fb8fb7e475bc3693f1e45875d266c73d450fe58f diff --git a/app/assets/javascripts/behaviors/shortcuts/shortcuts_work_items.js b/app/assets/javascripts/behaviors/shortcuts/shortcuts_work_items.js index 71c67e025da..0de22bbada0 100644 --- a/app/assets/javascripts/behaviors/shortcuts/shortcuts_work_items.js +++ b/app/assets/javascripts/behaviors/shortcuts/shortcuts_work_items.js @@ -1,17 +1,13 @@ import ClipboardJS from 'clipboard'; import toast from '~/vue_shared/plugins/global_toast'; -import { getSelectedFragment } from '~/lib/utils/common_utils'; -import { isElementVisible } from '~/lib/utils/dom_utils'; import { s__ } from '~/locale'; import { DEBOUNCE_DROPDOWN_DELAY } from '~/sidebar/components/labels/labels_select_widget/constants'; -import { CopyAsGFM } from '../markdown/copy_as_gfm'; import { ISSUE_MR_CHANGE_ASSIGNEE, ISSUE_MR_CHANGE_MILESTONE, ISSUABLE_CHANGE_LABEL, ISSUABLE_EDIT_DESCRIPTION, ISSUABLE_COPY_REF, - ISSUABLE_COMMENT_OR_REPLY, WORK_ITEM_TOGGLE_SIDEBAR, } from './keybindings'; @@ -33,7 +29,6 @@ export default class ShortcutsWorkItem { [ISSUABLE_EDIT_DESCRIPTION, ShortcutsWorkItem.editDescription], [WORK_ITEM_TOGGLE_SIDEBAR, ShortcutsWorkItem.toggleSidebar], [ISSUABLE_COPY_REF, () => this.copyReference()], - [ISSUABLE_COMMENT_OR_REPLY, ShortcutsWorkItem.replyWithSelectedText], ]); /** @@ -106,84 +101,4 @@ export default class ShortcutsWorkItem { this.refInMemoryButton.dispatchEvent(new CustomEvent('click')); } } - - static replyWithSelectedText() { - const gfmSelector = '.js-vue-markdown-field .js-gfm-input'; - let replyField = - document.querySelector(`.gl-drawer ${gfmSelector}`) || - document.querySelector(`.modal ${gfmSelector}`) || - document.querySelector(gfmSelector); - - // Ensure that markdown input is still present in the DOM - // otherwise fall back to main comment input field. - if ( - ShortcutsWorkItem.lastFocusedReplyField && - isElementVisible(ShortcutsWorkItem.lastFocusedReplyField) - ) { - replyField = ShortcutsWorkItem.lastFocusedReplyField; - } - - if (!replyField || !isElementVisible(replyField)) { - return false; - } - - const documentFragment = getSelectedFragment(document.querySelector('#content-body')); - - if (!documentFragment) { - replyField.focus(); - return false; - } - - // Sanity check: Make sure the selected text comes from a discussion : it can either contain a message... - let foundMessage = Boolean(documentFragment.querySelector('.md')); - - // ... Or come from a message - if (!foundMessage) { - if (documentFragment.originalNodes) { - documentFragment.originalNodes.forEach((e) => { - let node = e; - do { - // Text nodes don't define the `matches` method - if (node.matches && node.matches('.md')) { - foundMessage = true; - } - node = node.parentNode; - } while (node && !foundMessage); - }); - } - - // If there is no message, just select the reply field - if (!foundMessage) { - replyField.focus(); - return false; - } - } - - const el = CopyAsGFM.transformGFMSelection(documentFragment.cloneNode(true)); - const blockquoteEl = document.createElement('blockquote'); - blockquoteEl.appendChild(el); - CopyAsGFM.nodeToGFM(blockquoteEl) - .then((text) => { - if (text.trim() === '') { - return false; - } - - // If replyField already has some content, add a newline before our quote - const separator = (replyField.value.trim() !== '' && '\n\n') || ''; - replyField.value = `${replyField.value}${separator}${text}\n\n`; - - // Trigger autosize - const event = document.createEvent('Event'); - event.initEvent('autosize:update', true, false); - replyField.dispatchEvent(event); - - // Focus the input field - replyField.focus(); - - return false; - }) - .catch(() => {}); - - return false; - } } diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue index eaa21702077..5f42ea0239a 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue @@ -14,12 +14,6 @@ export default { BoldText, StateContainer, }, - props: { - mr: { - type: Object, - required: true, - }, - }, }; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue index 39d89e4718c..5156efd09b3 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue @@ -3,10 +3,8 @@ import { GlSkeletonLoader, GlSprintf } from '@gitlab/ui'; import autoMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/auto_merge'; import autoMergeEnabledQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/auto_merge_enabled.query.graphql'; import { createAlert } from '~/alert'; -import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { fetchPolicies } from '~/lib/graphql'; import { __ } from '~/locale'; -import { AUTO_MERGE_STRATEGIES } from '../../constants'; import eventHub from '../../event_hub'; import mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables'; import MrWidgetAuthor from '../mr_widget_author.vue'; @@ -45,30 +43,12 @@ export default { return { state: null, isCancellingAutoMerge: false, - isRemovingSourceBranch: false, }; }, computed: { loading() { return this.$apollo.queries.state.loading || !this.state; }, - stateRemoveSourceBranch() { - if (!this.state.mergeRequest.shouldRemoveSourceBranch) return false; - - return ( - this.state.mergeRequest.shouldRemoveSourceBranch || - this.state.mergeRequest.forceRemoveSourceBranch - ); - }, - canRemoveSourceBranch() { - const { currentUserId } = this.mr; - const mergeUserId = getIdFromGraphQLId(this.state.mergeRequest.mergeUser?.id); - const canRemoveSourceBranch = this.state.mergeRequest.userPermissions.removeSourceBranch; - - return ( - !this.stateRemoveSourceBranch && canRemoveSourceBranch && mergeUserId === currentUserId - ); - }, actions() { const actions = []; @@ -105,32 +85,6 @@ export default { }); }); }, - removeSourceBranch() { - const options = { - sha: this.mr.sha, - auto_merge_strategy: this.state.mergeRequest.autoMergeStrategy, - should_remove_source_branch: true, - }; - - this.isRemovingSourceBranch = true; - this.service - .merge(options) - .then((res) => res.data) - .then((data) => { - if (AUTO_MERGE_STRATEGIES.includes(data.status)) { - eventHub.$emit('MRWidgetUpdateRequested'); - } - }) - .then(() => { - this.$apollo.queries.state.refetch(); - }) - .catch(() => { - this.isRemovingSourceBranch = false; - createAlert({ - message: __('Something went wrong. Please try again.'), - }); - }); - }, }, }; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue index 8ca5613ab86..f66314f8148 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue @@ -21,6 +21,7 @@ export default { }, }, props: { + // eslint-disable-next-line vue/no-unused-properties -- `mr` is used in the `mergeRequestQueryVariables` computed property mr: { type: Object, required: true, diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue index eaa3b7c8abc..fff37cdde7e 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue @@ -6,12 +6,6 @@ export default { components: { StateContainer, }, - props: { - mr: { - type: Object, - required: true, - }, - }, };