diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
commit | 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch) | |
tree | 544930fb309b30317ae9797a9683768705d664c4 /app/assets/javascripts/issue.js | |
parent | 4b1de649d0168371549608993deac953eb692019 (diff) |
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'app/assets/javascripts/issue.js')
-rw-r--r-- | app/assets/javascripts/issue.js | 137 |
1 files changed, 11 insertions, 126 deletions
diff --git a/app/assets/javascripts/issue.js b/app/assets/javascripts/issue.js index f65d9259e7b..5d2880c3c10 100644 --- a/app/assets/javascripts/issue.js +++ b/app/assets/javascripts/issue.js @@ -1,41 +1,22 @@ -/* eslint-disable consistent-return */ - import $ from 'jquery'; import axios from './lib/utils/axios_utils'; import { addDelimiter } from './lib/utils/text_utility'; import { deprecatedCreateFlash as flash } from './flash'; import CreateMergeRequestDropdown from './create_merge_request_dropdown'; -import IssuablesHelper from './helpers/issuables_helper'; import { joinPaths } from '~/lib/utils/url_utility'; import { __ } from './locale'; export default class Issue { constructor() { - if ($('.btn-close, .btn-reopen').length) this.initIssueBtnEventListeners(); - - if ($('.js-close-blocked-issue-warning').length) this.initIssueWarningBtnEventListener(); - if ($('.js-alert-moved-from-service-desk-warning').length) { - const trimmedPathname = window.location.pathname.slice(1); - this.alertMovedFromServiceDeskDismissedKey = joinPaths( - trimmedPathname, - 'alert-issue-moved-from-service-desk-dismissed', - ); - - this.initIssueMovedFromServiceDeskDismissHandler(); + Issue.initIssueMovedFromServiceDeskDismissHandler(); } - Issue.$btnNewBranch = $('#new-branch'); - Issue.createMrDropdownWrap = document.querySelector('.create-mr-dropdown-wrap'); - if (document.querySelector('#related-branches')) { Issue.initRelatedBranches(); } - this.closeButtons = $('.btn-close'); - this.reopenButtons = $('.btn-reopen'); - - this.initCloseReopenReport(); + Issue.createMrDropdownWrap = document.querySelector('.create-mr-dropdown-wrap'); if (Issue.createMrDropdownWrap) { this.createMergeRequestDropdown = new CreateMergeRequestDropdown(Issue.createMrDropdownWrap); @@ -71,7 +52,6 @@ export default class Issue { isOpenBadge.toggleClass('hidden', isClosed); $(document).trigger('issuable:change', isClosed); - this.toggleCloseReopenButton(isClosed); let numProjectIssues = Number( projectIssuesCounter @@ -91,104 +71,16 @@ export default class Issue { } } - initIssueBtnEventListeners() { - const issueFailMessage = __('Unable to update this issue at this time.'); - - $('.report-abuse-link').on('click', e => { - // this is needed because of the implementation of - // the dropdown toggle and Report Abuse needing to be - // linked to another page. - e.stopPropagation(); - }); - - // NOTE: data attribute seems unnecessary but is actually necessary - return $('.js-issuable-buttons[data-action="close-reopen"]').on( - 'click', - '.btn-close, .btn-reopen, .btn-close-anyway', - e => { - e.preventDefault(); - e.stopImmediatePropagation(); - const $button = $(e.currentTarget); - const shouldSubmit = $button.hasClass('btn-comment'); - if (shouldSubmit) { - Issue.submitNoteForm($button.closest('form')); - } - - const shouldDisplayBlockedWarning = $button.hasClass('btn-issue-blocked'); - const warningBanner = $('.js-close-blocked-issue-warning'); - if (shouldDisplayBlockedWarning) { - this.toggleWarningAndCloseButton(); - } else { - this.disableCloseReopenButton($button); - - const url = $button.data('endpoint'); - - return axios - .put(url) - .then(({ data }) => { - const isClosed = $button.is('.btn-close, .btn-close-anyway'); - this.updateTopState(isClosed, data); - if ($button.hasClass('btn-close-anyway')) { - warningBanner.addClass('hidden'); - if (this.closeReopenReportToggle) - $('.js-issuable-close-dropdown').removeClass('hidden'); - } - }) - .catch(() => flash(issueFailMessage)) - .then(() => { - this.disableCloseReopenButton($button, false); - }); - } - }, - ); - } - - initCloseReopenReport() { - this.closeReopenReportToggle = IssuablesHelper.initCloseReopenReport(); - - if (this.closeButtons) this.closeButtons = this.closeButtons.not('.issuable-close-button'); - if (this.reopenButtons) this.reopenButtons = this.reopenButtons.not('.issuable-close-button'); - } - - disableCloseReopenButton($button, shouldDisable) { - if (this.closeReopenReportToggle) { - this.closeReopenReportToggle.setDisable(shouldDisable); - } else { - $button.prop('disabled', shouldDisable); - } - } - - toggleCloseReopenButton(isClosed) { - if (this.closeReopenReportToggle) this.closeReopenReportToggle.updateButton(isClosed); - this.closeButtons.toggleClass('hidden', isClosed); - this.reopenButtons.toggleClass('hidden', !isClosed); - } - - toggleWarningAndCloseButton() { - const warningBanner = $('.js-close-blocked-issue-warning'); - warningBanner.toggleClass('hidden'); - $('.btn-close').toggleClass('hidden'); - if (this.closeReopenReportToggle) { - $('.js-issuable-close-dropdown').toggleClass('hidden'); - } - } + static initIssueMovedFromServiceDeskDismissHandler() { + const alertMovedFromServiceDeskWarning = $('.js-alert-moved-from-service-desk-warning'); - initIssueWarningBtnEventListener() { - return $(document).on( - 'click', - '.js-close-blocked-issue-warning .js-cancel-blocked-issue-warning', - e => { - e.preventDefault(); - e.stopImmediatePropagation(); - this.toggleWarningAndCloseButton(); - }, + const trimmedPathname = window.location.pathname.slice(1); + const alertMovedFromServiceDeskDismissedKey = joinPaths( + trimmedPathname, + 'alert-issue-moved-from-service-desk-dismissed', ); - } - initIssueMovedFromServiceDeskDismissHandler() { - const alertMovedFromServiceDeskWarning = $('.js-alert-moved-from-service-desk-warning'); - - if (!localStorage.getItem(this.alertMovedFromServiceDeskDismissedKey)) { + if (!localStorage.getItem(alertMovedFromServiceDeskDismissedKey)) { alertMovedFromServiceDeskWarning.show(); } @@ -196,20 +88,13 @@ export default class Issue { e.preventDefault(); e.stopImmediatePropagation(); alertMovedFromServiceDeskWarning.remove(); - localStorage.setItem(this.alertMovedFromServiceDeskDismissedKey, true); + localStorage.setItem(alertMovedFromServiceDeskDismissedKey, true); }); } - static submitNoteForm(form) { - const noteText = form.find('textarea.js-note-text').val(); - if (noteText && noteText.trim().length > 0) { - return form.submit(); - } - } - static initRelatedBranches() { const $container = $('#related-branches'); - return axios + axios .get($container.data('url')) .then(({ data }) => { if ('html' in data) { |